본문 바로가기

아두이노우노 R4

DF Player Mini를 사용한 Arduino와 함께 오디오 플레이어 프로젝트

반응형

 

안녕하세요, 이 튜토리얼에 오신 것을 환영합니다. 오늘은 아두이노와 DF플레이어 미니 MP3 모듈을 사용하여 mp3 플레이어를 제작해 보겠습니다.DF플레이어 미니는 스피커나 이어폰 잭에 직접 연결할 수 있는 간단한 오디오 출력을 갖춘 작고 저렴한 mp3 모듈입니다.

 

이 모듈은 배터리, 스피커, 푸시 버튼이 부착된 독립형 모듈로 사용하거나 RX/TX(시리얼) 통신이 가능한 아두이노와 같은 마이크로 컨트롤러 또는 개발 보드와 함께 사용할 수 있으므로 간단한 시리얼 명령을 통해 음악을 재생하고 다음 및 이전 곡 재생, 셔플, 현재 재생 중인 곡 일시 정지 등과 같은 다른 기능을 수행할 수 있습니다. 

 

 

 

DF Player Mini 

 

 

DF 플레이어 미니의 일부 기능은 다음과 같습니다.8KHz, 11.025KHz, 12KHz, 16KHz, 22의 샘플링 속도 지원.05KHz, 최대 48KHz24비트 DAC 출력, 다이나믹 레인지 지원 90dB, SNR 지원 85dBFAT16, FAT32 파일 시스템 지원, 최대 지원 32GB TF 카드다양한 제어 모드, 직렬 모드, AD 키 제어 모드방송 언어 스팟 기능, 재생 중인 배경 음악 일시 중지 가능3W 앰프 내장 오디오 데이터는 폴더별로 정렬되며 최대 100개 폴더 지원, 각 폴더에 1000곡 가까이 할당 가능30단계 볼륨 조절 가능, 10단계 EQ 조절 가능입니다. 

 

 

Schmatics 

 

 

위에서 볼 수 있듯이 아두이노와 DF플레이어 미니의 연결은 VCC와 GND를 제외한 두 개의 핀만 연결하면 되기 때문에 매우 간단합니다. 모듈의 Rx 핀과 아두이노 사이에 추가된 1k 저항은 노이즈를 줄이기 위해 추가된 것이지만, 모듈 설정에 Rx 라인에 노이즈가 동반되지 않는 경우에는 필요하지 않습니다. 연결을 명확하게 하기 위해 아래에 설명되어 있습니다. 

 

코드 

 

#include "SoftwareSerial.h"
SoftwareSerial mySerial(10, 11);
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00 //Returns info with command 0x41 [0x01: info, 0x00: no info]
# define ACTIVATED LOW
int buttonNext = 2;
int buttonPause = 3;
int buttonPrevious = 4;
boolean isPlaying = false;
void setup () {
pinMode(buttonPause, INPUT);
digitalWrite(buttonPause,HIGH);
pinMode(buttonNext, INPUT);
digitalWrite(buttonNext,HIGH);
pinMode(buttonPrevious, INPUT);
digitalWrite(buttonPrevious,HIGH);
mySerial.begin (9600);
delay(1000);
playFirst();
isPlaying = true;
}
void loop () {
if (digitalRead(buttonPause) == ACTIVATED)
{
if(isPlaying)
{
pause();
isPlaying = false;
}else
{
isPlaying = true;
play();
}
}
if (digitalRead(buttonNext) == ACTIVATED)
{
if(isPlaying)
{
playNext();
}
}
if (digitalRead(buttonPrevious) == ACTIVATED)
{
if(isPlaying)
{
playPrevious();
}
}
}
void playFirst()
{
execute_CMD(0x3F, 0, 0);
delay(500);
setVolume(20);
delay(500);
execute_CMD(0x11,0,1);
delay(500);
}
void pause()
{
execute_CMD(0x0E,0,0);
delay(500);
}
void play()
{
execute_CMD(0x0D,0,1);
delay(500);
}
void playNext()
{
execute_CMD(0x01,0,1);
delay(500);
}
void playPrevious()
{
execute_CMD(0x02,0,1);
delay(500);
}
void setVolume(int volume)
{
execute_CMD(0x06, 0, volume); // Set the volume (0x00~0x30)
delay(2000);
}
void execute_CMD(byte CMD, byte Par1, byte Par2)
// Excecute the command and parameters
{
// Calculate the checksum (2 bytes)
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2);
// Build the command line
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge,
Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte};
//Send the command line to the module
for (byte k=0; k<10; k++)
{
mySerial.write( Command_line[k]);
}
}

 

 

노래가 담긴 SD 카드를 불러와 DF플레이어 미니에 삽입한 다음 코드를 아두이노에 업로드하고 스피커의 전선을 DF플레이어 미니의 스피커 핀에 연결합니다. 연결된 스피커에서 노래가 스트리밍되기 시작하는 소리가 들릴 것입니다. 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^