
클릭하면 유튜브 시연 영상으로 이동합니다.
Arduino Mega 2560 기반의 WAV 파일 플레이어입니다.
SD 카드에서 WAV 파일을 읽어 PWM 방식으로 스피커에 출력하며, LCD와 Rotary Encoder를 통해 UI를 구성합니다.
| Arduino 핀 |
LCD 신호 |
| A0 (PF0) |
D0 |
| A1 (PF1) |
D1 |
| A2 (PF2) |
D2 |
| A3 (PF3) |
D3 |
| A4 (PF4) |
D4 |
| A5 (PF5) |
D5 |
| A6 (PF6) |
D6 |
| A7 (PF7) |
D7 |
| 12 |
RS |
| 11 |
E |
| Arduino 핀 |
신호 |
| 18 (PD3, INT3) |
PH_A |
| 19 (PD2) |
PH_B |
| 20 (PD1, INT1) |
ENC_SW (버튼) |
| Arduino 핀 |
신호 |
| 50 (PB3, MISO) |
MISO |
| 51 (PB2, MOSI) |
MOSI |
| 52 (PB1, SCK) |
SCK |
| 53 (PB0, SS) |
SD_CS |
| Arduino 핀 |
LED |
| 37 (PC0) |
LED1 |
| 36 (PC1) |
LED2 |
| 35 (PC2) |
LED3 |
| 34 (PC3) |
LED4 |
| 33 (PC4) |
LED5 |
| 32 (PC5) |
LED6 |
| 31 (PC6) |
LED7 |
| 30 (PC7) |
LED8 |
| Arduino 핀 |
연결 |
| 21 (PD0, INT0) |
SW1 (뒤로 이동) |
| 3 (PE5, INT5) |
SW2 (앞으로 이동) |
| A9 (PK1, ADC9) |
VR1 (가변저항, 이동 시간 조절) |
| Arduino 핀 |
신호 |
| 10 (PB4, OC2A) |
PWM_H LEFT |
| 9 (PH6, OC2B) |
PWM_L LEFT |
| 6 (PH3, OC4A) |
PWM_H RIGHT |
| 7 (PH4, OC4B) |
PWM_L RIGHT |
- SD 카드 내 폴더 및 WAV 파일 탐색 (SdFat 라이브러리 사용)
- Rotary Encoder로 곡 선택, 버튼으로 재생/정지
- LCD 1행: 현재 파일/폴더명 표시 (16자 초과 시 스크롤)
- LCD 2행: PLAYING / STOPPED 상태 및 재생 진행률 표시
- 폴더는
[폴더명] 형식으로 표시, [<-]로 상위 폴더 이동
- 재생 완료 시 다음 곡 자동 재생
- SW1 / SW2로 지정 시간만큼 앞뒤 이동
- VR1 (가변저항)으로 이동 시간 1~7초 조절, LED로 시간 표시
- 지원 형식: Stereo/Mono, 16-bit/8-bit, 44.1kHz/22.05kHz
- LCD 제어: LiquidCrystal 라이브러리 미사용, 직접 레지스터 제어
- PWM 출력: Timer/Counter 2 (LEFT), Timer/Counter 4 (RIGHT)
- 샘플링 인터럽트: Timer/Counter 3으로 44.1kHz / 22.05kHz 타이머 인터럽트
- 이중 버퍼:
unsigned char buf[2][3000] 구조로 끊김 없는 재생
- Rotary Encoder: INT3 인터럽트 활용
- SdFat — 긴 파일명 지원 SD 카드 라이브러리
- SPI.h — Arduino 기본 내장