mp3 모듈은 산업용 모듈인 NA-MP3A로 사용하였습니다.
출처는 해당 링크로 들어가시면 구매가능 합니다.
메뉴얼을 항상 참고하세요 ^^;
1. usb나 sd카드에 mp3파일을 저장
00001.mp3
00002.mp3
00003.mp3
:
:
2. 하드웨어 연결방법
NA-MP3A = rxd, txd, 5v, gnd, play(busy) 중요!, 스피커 L -> 스피커로 연결! (추후 수정)
▽ ▽ ▽
아두이노 = txd, rxd, 5v, gnd, 인터럽트핀(2)
* play(busy)핀은 mp3파일의 실행과 끝을 알려줍니다.
실행중일때 HIGH 끝나면 LOW
3. UART를 통한 아두이노(다른 atmega시리즈도 무관)로 프로토콜 전송 아두이노 -> NA-MP3A
(프로토콜은 메뉴얼 참조)
baudrate = 57600 주의!
play / pause 0x55 0xAA 0x00 0x03 0x06 0xFB
한번 보내면 play 다시 한번 보내면 pause
샘플코드 (소프트웨어 시리얼을 통해서 작성하였습니다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <SoftwareSerial.h> SoftwareSerial mySerial(4, 5); // RX, TX unsigned int zero = 0x00; // 0x00 은 입력이 안됨! void setup() { Serial.begin(57600); mySerial.begin(57600); attachInterrupt(digitalPinToInterrupt(2), NextMusic, FALLING); // 1번 트랙 시작 후 끊기면 다음꺼 시작 select_Music(0x01); // 00001번 트랙 } void loop() { } void select_Music(unsigned int selectNum) { mySerial.write(0x55); mySerial.write(0xAA); mySerial.write(0x04); mySerial.write(0x03); mySerial.write(0x0D); mySerial.write(zero); mySerial.write(0x01); mySerial.write(zero); mySerial.write(selectNum); mySerial.write(0xF5); } void Start_Pause_Music() { mySerial.write(0x55); mySerial.write(0xAA); mySerial.write(zero); mySerial.write(0x03); mySerial.write(0x06); mySerial.write(0xFB); } void next_Music() { mySerial.write(0x55); mySerial.write(0xAA); mySerial.write(zero); mySerial.write(0x03); mySerial.write(0x04); mySerial.write(0xFB); } void NextMusic() { next_Music(); } | cs |
** 스피커는 NA-MP3A에 바로 연결하면 소리가 작지만 들리긴 함!
디지털 방식 스테레오 오디오 앰프 모듈 볼륨장착형 (Class-D, Max 3W) (NA-DAMP3V Ver 7.1)
앰프 장착하고 스피커까지 장착하면 그냥 mp3랑 똑같이 사용 가능합니다.
참 쉽죠?
물론! 더 저렴한 MP3모듈도 있습니다. 이건 추후에 진행해보겠습니다. ^^;
'b. 임베디드 > 아두이노' 카테고리의 다른 글
[아두이노] DFPlayerMini mp3모듈 사용(1) (0) | 2018.08.02 |
---|---|
[아두이노] HX711 로드셀을 이용한 무게측정하기 (0) | 2018.08.02 |
[아두이노] #define _DEBUG_ 사용하기 (0) | 2018.08.02 |
[아두이노] String문자를 int형으로 변환하기 (0) | 2018.08.02 |
[아두이노] 소수점 표현하기 (0) | 2018.08.02 |
[아두이노] OLED 12864 I2C 동작 (Adafruit 라이브러리) (0) | 2018.08.02 |
[아두이노] OLED 12864 I2C 동작 (u8glib 라이브러리) (0) | 2018.08.02 |
[아두이노] MAX30100 맥박, 산소포화도 센서 사용하기 (0) | 2018.08.01 |