아두이노 나노로 만드는 오디오 반응형 책상 무드등 (주소 지정 LED)
부품 및 준비물
| 부품 | 수량 |
| 아두이노 나노 R3 | 1 |
| 사운드 감지 모듈 (아날로그 출력) | 1 |
| 브레드보드 | 1 |
| 점퍼 와이어 | 1세트 |
| 주소 지정 LED 스트립 (WS2812B 등, 60LED/m) | 1m |
| IKEA DROPPAR 유리병 (가장 큰 것) | 1 |
| PVC 파이프 (짧은 길이) | 1 |
필요 도구
사용 소프트웨어
프로젝트 개요
소리와 음악에 반응하여 빛이 춤추는 책상 무드등을 만듭니다. Natural Nerd 유튜버의 프로젝트를 참고하여 제작했습니다. 게임, 음악 감상 등 소리가 나는 모든 상황에서 멋진 시각 효과를 제공합니다.
1단계: 주요 부품 및 비용
- 아두이노 나노 (또는 동급 소형 보드) - 약 $3
- 사운드 감지 모듈 - 약 $1.5
- 5V 전원 공급 (USB 또는 12V+스텝다운 모듈)
- 주소 지정 LED 스트립 (60LED/m) - 가장 비쌈, 약 $10
- IKEA DROPPAR 병, PVC 파이프, 폼보드, 글루건
총 비용 약 $22 (약 2만 8천 원) 수준.
2단계: 전원 회로 구성
- 아두이노 나노 USB로 PC 연결 시 별도 전원 불필요
- 외부 전원 사용 시: 12V → 스텝다운 모듈 → 5V 출력 → 아두이노 VIN, LED 스트립 VCC, 사운드 모듈 VCC 공통 연결
- 모든 GND 공통 연결
- 주의: 스텝다운 모듈 없이 12V 직접 연결 시 부품 손상 위험
3단계: 신호 연결
- 사운드 모듈 OUT → 아두이노 A0 (아날로그 입력)
- LED 스트립 DIN → 아두이노 D6 (디지털 출력)
- 수축 튜브로 케이블 정리
4단계: 코드 업로드
핵심 원리: 사운드 모듈 아날로그 값을 읽어 이동 평균으로 노이즈 제거 후, 음량에 비례해 점등할 LED 개수 결정. 비트 감지 시 'HIGH 모드'로 전환하여 색상 변화 속도 증가.
#include <FastLED.h>
#define NUM_LEDS 60
#define LED_PIN 6
#define ANALOG_READ A0
#define MIC_LOW 0.0
#define MIC_HIGH 200.0
#define AVGLEN 5
#define LONG_SECTOR 20
#define HIGH_MODE 3
#define NORMAL_MODE 2
#define MSECS 30000
#define CYCLES (MSECS / DELAY)
#define DEV_THRESH 0.8
#define DELAY 1
// fscale, insert, compute_average, visualize_music, check_high, draw 등 함수들
// (전체 코드는 원본 참조 - FastLED 라이브러리 필요)
void setup() {
Serial.begin(9600);
FastLED.addLeds<NEOPIXEL, LED_PIN>(leds, NUM_LEDS);
// 초기화: 파란색으로 전체 점등 테스트
for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB(0, 0, 255);
FastLED.show(); delay(1000);
// 이동 평균 버퍼 초기화
for (int i = 0; i < AVGLEN; i++) insert(250, avgs, AVGLEN);
}
void loop() {
visualize_music();
delay(DELAY);
}
전체 코드는 원본 프로젝트 참조 (길이상 생략). FastLED 라이브러리 매니저에서 설치 필요.
5단계: 케이스 제작 (IKEA 병 활용)
- 뚜껑 가공: 병 뚜껑의 유리를 두꺼운 비닐로 감싸고 깨서 제거 (안전 주의). 폼보드로 원형 커버 제작하여 뚜껑에 고정.
- 부품 장착: 폼보드 커버에 미니 브레드보드 중앙 고정. 사운드 모듈 케이블용 구멍, USB 케이블용 구멍 뚫기.
- PVC 파이프 + LED 스트립: 파이프 길이는 병 높이에 맞게 절단. 마스킹 테이프로 절단선 표시 후 자르기. LED 스트립을 파이프에 나선형으로 감기 (약간 경사지게). 여분 케이블은 파이프 내부로 수납.
- 고정 및 배선: 핫글루/양면테이프로 파이프를 브레드보드 여분 공간에 고정. 회로도대로 배선 연결 (브레드보드 좌측 +, 우측 -).
- 사운드 모듈 배치: 병 뚜껑 바깥쪽에 부착 (외부 소리 잘 감지되도록).
- 아두이노 수직 장착: USB 케이블 연결 용이하게 수직으로 세움.
6단계: 완성 및 테스트
음악을 틀거나 소리를 내면 LED가 실시간으로 반응합니다. 시행착오 끝에 만족스러운 결과물을 얻었습니다.
회로도
참고
- 원본 튜토리얼: Natural Nerd 유튜브 채널
- LED 스트립은 전류 소모가 크므로 충분한 전원 공급 필수 (60개 LED 최대 ~3.6A)
- 사운드 모듈 감도 조절 나사로 민도 조정 가능