본문 바로가기

아두이노 DF Player 사용

반응형

아두이노로 만들 프로젝트를 위해

DF Player를 사용해봤다.


알리익스프레스에서 1.3달러 정도로 구입할수 있다.


위의 모듈로 쉽게 mp3를 만들수도 있지만

이번에는 그냥 기본적인 노래를 틀고 볼륨 조절등만 해봤다.





Vcc에다가 아두이노 5v쪽에 연결하고

Rx와Tx에 각각 1K옴을 연결후 아두이노에 연결한다.

저항이 없으면 잡음이 발생한다고 한다.


SPK_1에 스피커 한쪽을 연결하고

SPK_2에 스피커 다른 한쪽을 연결한다.

그리고 당연한거지만 GND는 GND로 연결한다.


아래의 사진을 보면 좀더 쉽게 이해 될 것이다.



출처 : http://deneb21.tistory.com/418


마이크로 SD카드에 mp3라는 폴더를 만들어서

그 안에다가 노래를 넣으면 되는데


곡 앞에다가 0001, 0002, 0003과 같이

번호를 붙여야 한다.



위와 같이 그냥 앞에 번호만 부여하면 된다.



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

void setup () {
    Serial.begin (9600);
    mp3_set_serial (Serial);      // DFPlayer-mini mp3 module 시리얼 세팅
    delay(1);                     // 볼륨값 적용을 위한 delay
    mp3_set_volume (30);          // 볼륨조절 값 0~30
}
 
void loop () {        
    mp3_play (1);    //0001 파일 플레이
    delay (6000);
    mp3_next ();    //0002 파일 플레이 , next
    delay (6000);
    mp3_prev ();    //0001 파일 플레이 , prev
    delay (6000);
    mp3_play (4);    //0004 파일 플레이
    delay (6000);
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


play라는 함수는 이름 그대로 곡을 재생하는 함수로 곡 앞에있는 번호를 넣으면 그 번호에 해당하는 곡을 실행 시킨다.


next라는 함수는 다음 곡을 재생하는 함수이다.


prev라는 함수는 이전곡을 재생하는 함수이다.



위의 순서대로면 1번 -> 2번 -> 1번 -> 4번순으로 각각 6초 동안 재생한다.



참고로 SD카드는 FAT32로 포맷 되어져 있어야 한다.




위의 처럼 곡을 재생하는것도 상관없지만 모든곡을 순차적으로 재생 하고 싶을땐

아래의 소스코드를 이용하면 된다.



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



#include <SoftwareSerial.h>

#include <DFPlayer_Mini_Mp3.h>


SoftwareSerial mySerial(10, 11);  //RX, TX


void setup() {

  Serial.begin(9600);

  mySerial.begin(9600);

  mp3_set_serial(mySerial);       //mp3 모듈을 위한 SoftwareSerial 설정

  delay(1);                                   //볼륨 설정을 위한 시간

  mp3_set_volume(15);              //0 ~ 30

}


void loop() {

  boolean play_state = digitalRead(3);//3번핀을 BUSY핀에 연결

 

  if(play_state == HIGH) {

    mp3_next();

  }

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



mp3모듈중 BUSY라는 핀은 현재 곡이 끝났을때 HIGH신호를 내보내서


그 신호를 가지고 3번에 HIGH 신호가 들어오면

mp3_next();라는 함수를통해 다음곡을 재생 한다.




그 밖의 함수들

/* mp3_play (); //start play

mp3_play (5); //play "mp3/0005.mp3"

mp3_next (); //play next
mp3_prev (); //play previous

mp3_set_volume (uint16_t volume); //0~30

mp3_set_EQ (); //0~5

mp3_pause ();

mp3_stop ();

void mp3_get_state (); //send get state command void mp3_get_volume ();
void mp3_get_u_sum ();
void mp3_get_tf_sum ();
void mp3_get_flash_sum ();
void mp3_get_tf_current ();
void mp3_get_u_current ();
void mp3_get_flash_current ();
void mp3_single_loop (boolean state); //set single loop
void mp3_DAC (boolean state);
void mp3_random_play ();
*/



더 자세한 내용은 아래 사이트에서 확인 하길 바란다.

https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299



반응형