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.

Anuncio:

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.

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.

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

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.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino

Anuncio:

Previous Sensor de corriente eléctrica no invasivo con Arduino y SCT-013
Next Conectar Arduino a Internet o LAN con Shield Ethernet W5100
1000
15 Comment threads
7 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
14 Comment authors
newest oldest
Henty Amenty

Hola, muchas gracias por tus artículos. Estoy haciendo un proyecto con Arduino mp3 y necesito un sonido más potente que el que da dfplayer mini. ¿Es posible combinar el dfplayer con un amplificador 5Wx2 PAM8406? Gracias otra vez.

luisllamas

Si, perfectamente. De hecho hacen una pareja genial.
Estuve pensando en hacer una entrada, pero al final los PAM son sólo un amplificador más (populares, baratos, pero hay muchos más) y son llegar y conectar (no se requiere código ni nada). Así que deseche la idea.
Pero encajan muy bien juntos.

Henty Amenty

Gracias.

luisllamas

Puedes reproducir una canción específica avanzando y retrocediendo (es decir, si sabes el número de la canción), pero no por el nombre de la canción.
También tiene funciones para reproducir por “nombre de archivo”, pero requiere que los nombres de los ficheros empiecen por 4 digitos (0000 a 9999), con lo que en definitiva estás en las mismas.

luisllamas

Lo más fácil sería controlar el DFplayer con un Arduino, y controlar Arduino con un módulo como el HC-05 o HC-06 (https://www.luisllamas.es/conectar-arduino-por-bluetooth-con-los-modulos-hc-05-o-hc-06/)
En teoría también debería funcionar sin Arduino en medio, ya que el DFplayer se controla por puerto serie. Pero en ese caso el emisor va a tener que enviar la trama que necesita, y te va a tocar leer el Datasheet y pasarlas canutas (vamos, hacer lo que hace la librería por ti mismo)

lucero

una duda es posible conectar un micrófono a al modulo para procesar la voz o solo es con archivos pre-gravados? saludos

Andres

quiero hacer una pregunta un poco tonta, como se hace para conectar la salida de sonido por los auxiliar derecho izquierdo, es que no me da, de donde debo sacar la tierra

Andreu

La tierra se saca de tierra (masa) ground (GND) generalmente el negativo de alimentación.

Manuel

Hola, sería posible conectar dos dfplayer a un arduino Mega?
Gracias!

Juan escobar

Muy buen producto .una consulta para conectarlo al arduino y que este emita el sonido pero en vez de un pulsador lo haga mediante un sensor de movimiento PIR como seria el código de programación saludos gracias por el aporte que haces .

Iram Enriquez

estoy en busca de ayuda. intento hacer un instrumento de percusión electrónico. un sensor detecta un golpe y a través de un arduino uno le dice al DFPlayer que reproduzca un sonido, solo que tengo el problema de que cuando doy el golpe, se tarda una pequeña fracción de segundo en reproducir el archivo de audio. ¿podrá solucionarse esto? también necesito poder indicarle que reproduzca otro o el mismo audio mientras una reproducción esta en proceso y no tener que esperar a que termine para poder reproducir de nuevo. ¿será esto posible? o incluso reproducir dos archivos simultáneamente si pudieras… Read more »

Uda

Una consulta, puedo conectarlo solamente a un sensor de movimiento PIR para que solamente reprodusca un mp3 cuando detecte movimiento?

Mauricio

Hola soy nuevo y quisiera saber si alguien sabe como se calcula el check sum. he visto algunos tutoriales pero esas formulas no coinciden con los datos de la hoja tecnica en la cual tampoco se indica como se calcula. si alguien sabe. gracias

Modesto

Luisllamas estoy aburrido con DFPlayer Mini meto distintos códigos, introduzco la tarjeta que tiene solo audio con extensión PM3 y el altavoz su salida es ruidosa, es como un rerereereerererere ¿Qué puede suceder?

Gracias Saludos

Kenobi

Hola! Muchas gracias por el artículo.

¿Por qué hay que alimentar el DF con 5V externos? ¿No se puede usar el pin de 5V de arduino? Pudiendo usar un sólo adaptador de corriente, para qué usar dos…

Y otra pregunta. ¿Se podría pasar la señal del DF al típico amplificador hifi para que sonara por unos altavoces de techo?

Gracias

José V.R.

Hola luis, hace poco tiempo que compré esta plaquita para probar en un intento alocado para diseñar una gaita electrónica. Quisiera saber si es posible detener una melodía en proceso e inmediatamente lanzar otra sin tiempos muertos. Algo así como que suene una nota mientras pulso una tecla y que deje de sonar al liberarla para comenzar otra si inmediatamente pulso otra.

José V.R.

Hola Luis, Obtengo progresos con mi gaita arduina en base al DFPlayer mini y arduino UNO que quisiera comentarte. Escribí un sketch que funciona muy bien y despejaron los temores de tiempos muertos. Construí el cuerpo de la gaita en impresora 3D para hacer las pruebas. No se si por este medio puedo subir una fotografía del mockup que pienso subir a Thingiverse cuendo la de por liberada. Le pondré el nombre GAEGA “gaita artesanal electrónica galega arduina” ya que es de digitación abierta. Un saludo.

Tomás

Hola, estoy intentando hacer que reproduzca un sonido diferente dadas algunas condidiones utillizando la instruccion mp3.play (1); para el sonido que guarde como 0001 y mp3.play (2); para el que guarde como 0002 pero siempre me reproduce el primero en la lista haga lo que haga, he intentado poner mp3.stop (); por si habia un conflicto pero aun asi siempre ponga el numero que ponga reproduce el 0001
Gracias.