안녕하세요. 오늘은 회로도를 작성해보고 SD카드에있는 WAV파일을 버튼으로 재생해보겠습니다.
2편에서 사용했던 회로에서 버튼2개만 추가하였습니다.

회로도에는 SD카드소켓기준으로 작성하였는데, 실제로는 SD카드 모듈을 이용했습니다. 핀 연결 구성에는 차이가 없습니다.
원래는 브레드보드에 연결하여 테스트를 진행하려고 했으나, 스피커 출력에서 잡음이 많이 발생하여 만능기판으로 변경하였습니다.
GPT 의견에 따르면, 브레드보드는 접촉 구조와 배선 특성으로 인해 노이즈에 취약합니다.

버튼위의 남은공간은 OLED를 추가해서 SD카드에있는 WAV파일을 보여주고 버튼을 이용해서 클릭한 WAV파일을 재생하는 형식으로 할 예정입니다. 현재 글 에서는 버튼1개당 wav파일 1개가 매칭되어있어서 버튼을 클릭하면 정해둔 wav파일이 재생합니다.
동작은 버튼의 상태를 읽어, 버튼이 클릭되면 WAV 파일을 재생하는 방식입니다.
WAV 파일 재생 중에는 파일이 끝날 때까지 다른 동작을 수행할 수 없습니다.
playWavOnce() 함수에서는 SD.open()이 실패할 경우 SD 카드를 다시 초기화하도록 구현하였습니다.
이는 전원이 인가된 상태에서 SD 카드를 제거한 후 다시 삽입하는 경우, SD.begin()을 다시 호출해야 하기 때문입니다.
SD 카드는 초기 삽입 시 Idle 상태이며, SD.begin()을 수행하면 Transfer 상태로 전환됩니다.
따라서 SD 카드를 제거 후 재삽입하면 다시 Idle 상태가 되므로, 정상적인 읽기 동작을 위해 SD.begin()을 재호출합니다.
소스코드(COMMIT : Initial commit)
https://github.com/yhunterr/speaker_esp32
'PROJECT > Speaker' 카테고리의 다른 글
| Speaker 만들기 2편 (SD카드에 있는 wav파일 재생) (0) | 2025.10.12 |
|---|---|
| Speaker 만들기 1편 (ESP32, MAX98357A, I2S) (1) | 2025.08.29 |