Skip to content

Pochomo/Arduino_Wav_player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Arduino 2560 WAVE Player

시연 영상

클릭하면 유튜브 시연 영상으로 이동합니다.


프로젝트 개요

Arduino Mega 2560 기반의 WAV 파일 플레이어입니다.
SD 카드에서 WAV 파일을 읽어 PWM 방식으로 스피커에 출력하며, LCD와 Rotary Encoder를 통해 UI를 구성합니다.


하드웨어 구성

LCD 연결

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

Rotary Encoder 연결

Arduino 핀 신호
18 (PD3, INT3) PH_A
19 (PD2) PH_B
20 (PD1, INT1) ENC_SW (버튼)

SD 카드 (SPI 통신)

Arduino 핀 신호
50 (PB3, MISO) MISO
51 (PB2, MOSI) MOSI
52 (PB1, SCK) SCK
53 (PB0, SS) SD_CS

LED

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

버튼 및 ADC

Arduino 핀 연결
21 (PD0, INT0) SW1 (뒤로 이동)
3 (PE5, INT5) SW2 (앞으로 이동)
A9 (PK1, ADC9) VR1 (가변저항, 이동 시간 조절)

앰프 보드 (PWM 출력)

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 기본 내장

About

Arduino2560_Wav_player

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages