Catalex 시리얼 MP3 플레이어: Arduino UNO로 간편 제어하기
부품 및 소모품
| 부품 |
수량 |
| Arduino UNO |
1 |
| Catalex 시리얼 MP3 플레이어 모듈 |
1 |
| 마이크로 SD 카드 (음악 파일 저장용) |
1 |
앱 및 온라인 서비스
프로젝트 소개
Catalex 시리얼 MP3 플레이어 V1.0 사용법
이 모듈은 간단한 시리얼 명령어로 MP3/WAV 파일을 재생할 수 있는 저렴한 오디오 모듈입니다.
1. 라이브러리 및 핀 설정
#include <SoftwareSerial.h>
#define ARDUINO_RX 5 // MP3 모듈 TX에 연결
#define ARDUINO_TX 6 // MP3 모듈 RX에 연결
SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);
2. 주요 명령어 정의 (데이터시트 기반)
#define NEXT_SONG 0X01
#define PREV_SONG 0X02
#define CMD_PLAY_W_INDEX 0X03 // 트랙 번호 필요
#define VOLUME_UP_ONE 0X04
#define VOLUME_DOWN_ONE 0X05
#define CMD_SET_VOLUME 0X06 // 볼륨 0-30 (0x1E)
#define CMD_SEL_DEV 0X09 // 저장 장치 선택
#define DEV_TF 0X02 // 마이크로 SD 카드
#define CMD_PLAY 0X0D
#define CMD_PAUSE 0X0E
#define CMD_PLAY_WITHVOLUME 0X22 // 볼륨 + 트랙 지정
#define STOP_PLAY 0X16
3. 명령 전송 함수
모듈은 8바이트 패킷을 사용합니다: 0x7E FF 06 명령 00 데이터상 데이터하 0xEF
void sendCommand(int8_t command, int16_t dat) {
delay(20);
static int8_t Send_buf[8] = {0};
Send_buf[0] = 0x7E;
Send_buf[1] = 0xFF;
Send_buf[2] = 0x06;
Send_buf[3] = command;
Send_buf[4] = 0x00; // 피드백 없음
Send_buf[5] = (int8_t)(dat >> 8);
Send_buf[6] = (int8_t)(dat);
Send_buf[7] = 0xEF;
for (uint8_t i = 0; i < 8; i++) {
mySerial.write(Send_buf[i]);
}
}
4. 초기화 및 재생 예제
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
delay(500); // 칩 초기화 대기
sendCommand(CMD_SEL_DEV, DEV_TF); // TF 카드 선택
delay(200);
}
void loop() {
// 첫 번째 트랙을 볼륨 15로 재생 (0x0F01 = 볼륨 15, 트랙 1)
sendCommand(CMD_PLAY_WITHVOLUME, 0x0F01);
delay(100000); // 100초마다 반복 전송
}
SD 카드에 음악 파일 올리기
모듈은 파일명을 알파벳순으로 인덱싱합니다. 폴더를 01, 02 등으로 만들고, 파일명을 001노래.mp3, 002노래.mp3 형식으로 저장하면 확실하게 제어할 수 있습니다.
회로도
데이터시트 기준 전원 전압: 3.2V ~ 5V, 소비 전류: 약 200mA. Arduino 5V 핀과 GND에 연결하고, RX/TX는 소프트웨어 시리얼 핀(기본 5, 6번)에 연결합니다.
참고
하드웨어 시리얼을 사용하는 버전도 가능합니다 (STM32 등에서 테스트됨). GitHub 저장소에서 전체 코드 확인 가능.