arduino-mp3-dfplayer-mini

Reproducir MP3 en Arduino con DFPlayer Mini

¿Qué es un reproductor DFPlayer Mini?

El DFPlayer Mini es un reproductor de audio de bajo coste y pequeño que podemos conectar a un procesador como Arduino para reproducir audio en formato MP3.

Arduino no tiene potencia potente para reproducir un archivo comprimido como un MP3. Por mucho que lo intentéis, o incluso si empleáis un procesador más potente, no es función de un autómata realizar estas tareas. Es mucho mejor delegar en un subprocesador específico.

Existen distintas opciones para reproducir ficheros MP3 desde Arduino, como diversos shields y placas más o menos caras. Entre las distintas opciones disponibles los módulos DFPlayer Mini han adquirido una gran popularidad por su bajo precio y grandes características.

En realidad DFPlayer Mini es un reproductor de audio completo, capaz de reproducir formatos de fichero MP3, WMA y WAV.

Dispone de un lector micro SD compatible con FAT16 y FAT32, con una capacidad máxima de 32GB. Soporta hasta 100 carpetas y puede acceder hasta 255 canciones.

El DFPlayer Mini proporciona velocidades de muestreo de 8, 11.025 12 16 22.05 24 32 44.1 y 48 kHz, y salida con DAC de 24 bits. Dispone de 30 niveles de volumen ajustable, ecualizador de 6 niveles, y una relación señal ruido (SNR) de 85dB

EL DFPlayer Mini recibe comandos desde Arduino por puerto serie. Dispone de funciones para reproducir, detener, pausar, avanzar, retroceder entre canciones. La salida se realiza directamente al altavoz, a través de los pines correspondientes.

Precio

El reproductor de MP3 DFPlayer Mini es un dispositivo muy barato, podemos encontrarlo por 1.20€ buscando en vendedores internacionales de eBay o AliExpress.

arduino-mp3-dfplayer-mini-componente

Esquema de conexión

La conexión con el reproductor MP3 DFPlayer Mini es muy sencilla ya que la comunicación con el módulo se realiza a través del puerto serie.

arduino-mp3-DFPlayer-mini-esquema

Simplemente con alimentamos el reproductor MP3 a una fuente de alimentación externa de 5V, poniendo el Gnd en común con Arduino. Por otro lado, conectamos los pins RX y TX del puerto serie a Arduino. Por último, conectamos el altavoz al DFPlayer Mini a los pines Spk_1 y Spk_2.

La conexión, vista desde Arduino, sería la siguiente

arduino-mp3-DFPlayer-mini-conexion

Ejemplos de código

Para manejar el DFPlayer Mini necesitaremos la librería DFPlayer_Mini_Mp3 disponible en este enlace.

La librería proporciona ejemplos de código, que resulta aconsejable revisar. Los siguientes ejemplos son modificaciones a partir de los disponibles en la librería.

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

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

/*
mp3_play();    //start play
mp3_play(5);  //play "mp3/0005.mp3"
mp3_pause();
mp3_stop();
mp3_next();    
mp3_prev();

mp3_set_volume(uint16_t volume);  //0~30
mp3_set_EQ();  //0~5
void mp3_single_loop(boolean state);  //set single loop
void mp3_random_play();
*/

void setup()
{
  Serial.begin(9600);
  DFPlayerSerial.begin(9600);
  mp3_set_serial(DFPlayerSerial);
  mp3_set_volume(15);
}

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

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full