3D프린터와 아두이노/아두이노

아두이노에서 스피커와 MP3재생

메카럽 2020. 10. 7. 08:15

안녕하세요. 메카럽입니다.

지난 포스팅에서 예고드린 것처럼 스피커와 MP3재생에 대해 알아보도록 하겠습니다.

부저는 비프음의 주파수를 달리하여 다양한 음을 재생하지만, 악기의 음이나 노래소리를 재생할 수는 없습니다. 이번 포스팅에서는 DF Player라는 부품과 스피커를 활용하여 MP3 파일을 재생해보도록 하겠습니다.

준비물 : 아두이노 우노, DF Player, 스피커, 마이크로 SD카드, 점퍼선

MP3 재생장치(DF Player)와 핀맵

DF Player는 마이크로 SD 카드에 저장된 MP3파일을 재생시켜주는 부품입니다. 국내보다는 알리 익스프레스 등에서 1달러 내외로 구할 수 있으니, 주문 후 느긋하게 기다려보시면 될 것 같습니다. 스피커는 시중에 있는 것 중에 적당한 크기의 것을 선택하시면 될 것 같습니다.

DF Payer의 각 핀은 아래와 같은 역할을 하며, 아래 예제에서 대표적인 몇 가지 핀을 다뤄보겠습니다. 아래 표를 살펴보면, DF Player는 3.3~5V 전원을 사용합니다. Tx, Rx 핀을 통해 외부 명령을 받을 수 있으며, 외부 스피커 연결을 위한 단자를 제공합니다(SPK1, SPK2).

Number Name Description Note
1 Vcc Input Voltage DC 3.2-5.0V; Typical:DC4.2
2 RX UART serial Input  
3 TX UART serial Output  
4 DAC_R Audio output right channel Drive earphone and amplifier
5 DAC_L Audio output left channel Drive earphone and amplifier
6 SPK2 Speaker Drive speaker less than 3W
7 GND Ground Power Ground
8 SPK1 Speaker Drive speaker less than 3W
9 IO1 Trigger port1 Short pree to play previous
(long press to decrease volume)
10 GND Ground Power Ground
11 IO2 Trigger port2 Short pree to play previous
(long press to decrease volume)
12 ADKEY1 AD port1 Trigger play first segment
13 ADKEY2 AD port2 Trigger play fifth segment
14 USB+ USB+DP USB port
15 USB+ USB+DM USB Port
16 BUSY Playing Status Low means playing, High means no

다음은 아두이노 우노와 함께 DF Player, 스피커를 연결하였습니다. DF Player의 Vcc와 GND는 아두이노의 5V와 GND에 연결하고, Tx, Rx는 각각 1kΩ 저항을 배치하고 우노와 연결합니다. SPK1과 SPK2는 각각 스피커의 단자와 연결합니다.

DF Player와 스피커 배선도

MP3파일을 재생하기 위해서는 몇 가지 규칙을 따라야 합니다. 먼저 마이크로 SD카드 내에 mp3란 폴더를 만듭니다. 이어서 해당 폴더에 재생할 MP3파일의 이름을 0001.mp3, 0002.mp3, 0003.mp3 등으로 저장합니다. 또는 원래 파일명 앞에 0001, 0002 등을 붙여줘도 상관 없습니다. 더불어 마이크로 SD 카드는 사전에 FAT32로 포맷되어 있어야 합니다.

DF Player는 DF Robot에서 제공하는 라이브러리를 설치해야 합니다. IDE의 라이브러리 매니저에서 "DF Player" 키워드로 검색하여 "DFRobotDFPlayerMini"라이브러리를 설치합니다. 다음은 0001.mp3파일과 0002.mp3를 순서대로 재생하고, 다시 0001.mp3파일을 재생시킨 후 0004.mp3파일을 플레이하는 코드입니다. mp3_play( ) 함수는 소괄호 내에 재생시킬 mp3 번호를 입력하여 사용하고, mp3_next( )와 mp3_prev( ) 함수는 각각 다음 곡과 이전 곡을 재생시킵니다.

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


void setup ( )
{
 Serial.begin(9600);
 mp3_set_serial(Serial);
 delay(1);
 mp3_set_volume(30);
}

void loop( )
{
 mp3_play(1);
 delay(5000);
 mp3_next( );
 delay(5000);
 mp3_prev( );
 delay(5000);
 mp3_play(4);
 delay(5000);
}

참고로 기능 사용이 제한적이긴 하지만, DF Player는 아두이노 없이 단독으로도 사용이 가능합니다. 아두이노와 부가회로가 불필요하므로 간단한 시제품 제작에 활용될 수 있습니다.

728x90