Reproduce archivos de música con el módulo reproductor de MP3

Nuestra entrada de blog de hoy trata sobre el módulo AZ-Delivery MP3 Player.

Este módulo le permite reproducir archivos de voz o música grabados desde una tarjeta de memoria micro SD.

Para compilar el proyecto después de que necesite:

Módulo de reproductor DE MP3 AZ-Delivery
Microcontrolador AZ-Delivery, compatible con Arduino UNO R3
E
en la bandeja con puentes por cable, como en nuestro Set de tablero de pan
Resistencia de 1x 1k"
1x altavoz de 8 a 2 vatios
1x tarjeta microSD

 

En primer lugar, echaremos un vistazo al módulo desde arriba:

Pinout del módulo del reproductor MP3

Dado que los pines del módulo en sí no están etiquetados, nos orientamos a la muesca en la parte superior del módulo. La ranura de la tarjeta MicroSD apunta hacia abajo.

Conectamos el módulo de la siguiente manera:

Microcontrolador, compatible con Arduino Uno R3

Módulo MP3

5v

Vcc

Gnd

Gnd

Pin 11

RX con 1k• Resistencia

Pin 10

Tx

 

Altavoces

Módulo MP3

+

SPK1

-

SPK2

 

 

mp3 reproductor de la conexión de la placa de pan

 

La preparación

En primer lugar, tenemos que preparar una tarjeta de memoria micro-SD. Recomendamos formatear la tarjeta (FAT32).

La biblioteca que utilizamos direcciona los títulos en el orden en que los archivos fueron copiados en el mapa, independientemente del nombre.

Copiamos los archivos de audio deseados en el archivo . WAV o . MP3 en la tarjeta de memoria e insértelo en el lector de tarjetas del módulo MP3.

La Biblioteca

Usamos la biblioteca DFPlayerMini de DFRobot para el control. Puede usarlos en https://github.com/DFRobot/DFRobotDFPlayerMini Descargar.

The Sketch

Usaremos el ejemplo "GetStarted", que puede encontrar en "Archivo" - "Ejemplos" - "DFRobotDFPlayerMini" - "GetStarted" y ajustaremos algunas líneas:


en la parte de configuración, ajustamos el volumen hacia abajo para la seguridad cambiando el valor de myDFPlayer.volume a 5.

Luego comentamos el comando "myDFPlayer.next() para que la reproducción no salte a la siguiente canción cada 3 segundos.

El ejemplo modificado tiene este aspecto:

 

/***************************************************

DFPlayer - Un mini reproductor de MP3 para Arduino
 <https://www.dfrobot.com/product-1121.html>
 
 ***************************************************
 En este ejemplo se muestra la función básica de la biblioteca para DFPlayer.
 
 Creado 2016-12-07
 Por [Angelo qiao](Angelo.qiao@dfrobot.com)
 
 Licencia Pública General Menor gnu.
 Lago <http://www.gnu.org/licenses/> para más detalles.
 Todo lo anterior debe incluirse en cualquier redistribución
 ****************************************************/

/**********************************************************************************************
 1.Conexión y diagrama se pueden encontrar aquí
 <https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
 2.Este código se prueba en Arduino Uno, Leonardo, Mega placas.
 ****************************************************/

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11); RX, TX
DFRobotDFPlayerMini myDFPlayer;
Vacío printDetail(uint8_t Tipo, Int Valor);

Vacío Configuración()
{
  mySoftwareSerial.Comenzar(9600);
  Serial.Comenzar(115200);
  
  Serial.println();
  Serial.println(Q("DFRobot DFPlayer Mini Demo"));
  Serial.println(Q("Inicializando DFPlayer ... (Puede tomar 3'5 segundos)"));
  
  Si (!myDFPlayer.Comenzar(mySoftwareSerial)) {  Utilice softwareSerial para comunicarse con mp3.
    Serial.println(Q("No se puede comenzar:"));
    Serial.println(Q("¡Por favor, vuelva a comprobar la conexión!"));
    Serial.println(Q("2.Por favor inserte la tarjeta SD!"));
    Mientras(Verdad){
      Retraso(0); Código compatible con ESP8266 watch dog.
    }
  }
  Serial.println(Q("DFPlayer Mini en línea."));
  
  myDFPlayer.Volumen(5);  Establezca el valor del volumen. De 0 a 30
  myDFPlayer.Jugar(1);  Reproduce el primer mp3
}

Vacío Bucle()
{
  Estática Unsigned Largo temporizador = Millis();
  
  Si (Millis() - temporizador > 3000) {
    temporizador = Millis();
 myDFPlayer.next();  Reproducir la próxima víspera de mp3 
  }
  
  Si (myDFPlayer.Disponible()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.Leer()); Imprima el mensaje de detalle de DFPlayer para manejar diferentes errores y estados.
  }
}

Vacío printDetail(uint8_t Tipo, Int Valor){
  Interruptor (Tipo) {
    Caso Timeout:
      Serial.println(Q("Tiempo fuera!"));
      Romper;
    Caso WrongStack:
      Serial.println(Q("Apilar mal!"));
      Romper;
    Caso DFPlayerCardInserted:
      Serial.println(Q("Tarjeta insertada!"));
      Romper;
    Caso DFPlayerCardRemoved:
      Serial.println(Q("¡Tarjeta retirada!"));
      Romper;
    Caso DFPlayerCardOnline:
      Serial.println(Q("Tarjeta en línea!"));
      Romper;
    Caso DFPlayerPlayFinished:
      Serial.Impresión(Q("Número:"));
      Serial.Impresión(Valor);
      Serial.println(Q(" ¡Juego terminado!"));
      Romper;
    Caso DFPlayerError:
      Serial.Impresión(Q("DFPlayerError:"));
      Interruptor (Valor) {
        Caso Ocupado:
          Serial.println(Q("Tarjeta no encontrada"));
          Romper;
        Caso Dormir:
          Serial.println(Q("Dormir"));
          Romper;
        Caso SerialWrongStack:
          Serial.println(Q("Buena elección"));
          Romper;
        Caso CheckSumNotMatch:
          Serial.println(Q("Comprobar suma no coincide"));
          Romper;
        Caso FileIndexOut:
          Serial.println(Q("Índice de archivos fuera de límite"));
          Romper;
        Caso FileMismatch:
          Serial.println(Q("No se puede encontrar el archivo"));
          Romper;
        Caso Anunciar:
          Serial.println(Q("En publicidad"));
          Romper;
        Predeterminado:
          Romper;
      }
      Romper;
    Predeterminado:
      Romper;
  }
}

 

Después de subir el código, se inicia la reproducción de MP3.

Con este módulo, ahora puede dar voz a sus proyectos de microcontrolador. O en lugar de simples ruidos de pitido, puede hacerse eco de las sirenas de alarma de su serie de ciencia ficción favorita.

 

Si usted es experto en artesanía, puede instalar el altavoz incluyendo Arduino en una hermosa caja y ampliarlo con teclas de función (alto, silencioso, adelante, posterior, etc.)

 

Altavoz MP3

Altavoz MP3 interior

 

Esperamos que haya disfrutado de nuestra contribución hoy y que esté ansioso por averiguar lo que ha implementado para proyectos con nuestro módulo MP3.

Simplemente envíenos una foto de su proyecto terminado - estaremos muy contentos.

 

Diviértete reconstruyendo

Markus Neumann

Equipo AZ-Entrega

 

 

Para arduinoProyectos para principiantes

19 comentarios

Andreas Wolter

Andreas Wolter

@Hans Nitschke: um Audiodateien auf der SD-Karte zu speichern, brauchen Sie PC / Smartphone / Tablet, das SD Karten erkennen und beschreiben kann.

Hans Nitschke

Hans Nitschke

Ich habe eine Frage bezüglich der MicroSD-Karte. Wie kann ich diese bespielen?
z.B. mit einem Hundegebell oder einen Alarm.

Andreas Wolter

Andreas Wolter

@Peter Lenz: der Mega hat einen Spannungswandler am Vin Pin. Laut Datenblatt sind dort 7V – 12V empfohlen, Limit sind 6V – 20V. Einen 9V Block zu verwende, ist eine gängige Methode. Es bleibt dann nur die Frage, wie lange die Stromversorgung ausreicht. Das lässt sich berechnen, nachdem man die Stromaufnahme gemessen hat.
Eine Alternative sind LiPo Akkus, die aber 3,7V liefern. Es ist also eine Spannungswandler notwendig, der auch hier im Shop verfügbar sein sollte.

Im dritten Teil des sprechenden Farbdetektors wurde solch eine mobile Stromversorgung umgesetzt:
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/der-sprechende-farbdetektor-teil-3

Peter Lenz

Peter Lenz

Plane eine Projekt mit MP3-Player Modul. Verwende einen Arduino Mega 2560 und möchte 30 Titel per Taster abspielen. Schaltung funktioniert auf dem Breadboard mit Stromversorgung über USB. Benötige eine netzunabhängige Stromversorgung für ein kleines Gehäuse (Arduino-Baustein + Platine). Welche Stromversorgung können Sie mir empfehlen? Kann ich einen 9V-Block über Vin bedenkenlos nutzen?

Andreas Wolter

Andreas Wolter

@Trumar: schauen Sie doch mal in meine Reihe Der sprechende Farbdetektor mit DFPlayer: https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/der-sprechende-farbdetektor-mit-dfplayer-und-tcs3200-teil-1?pos=3&_sid=58b84fbff&ss=r

dort habe ich einen Nano verwendet. Eventuell helfen diese Beiträge auch anderen Lesern, die Probleme haben.

Trumar

Trumar

Hallo!
Ist es auch möglich den DFPlayer Mini mit dem Nano V3 zu verbinden?
SG Martin

Ingo

Ingo

Aus der ausführlichen Dokumentation zum MP3-Modul (im Verzeichnis /doc der Bibliothek) geht hervor, dass man mit dem Modul nur Dateien abspielen kann (eigentlich auch ohne Arduino). Zur Anzeige des Namens benutze ich ein SD-Kartenmodul (SPI Reader Micro Speicher SD TF Karte Memory Card Shield Modul), in welchem ich eine SD-Karte mit exakt der gleichen Dateistruktur stecke. Dort kann ich die Dateinamen auslesen (aber leider nicht abspielen) und anzeigen. Läuft bei mir prima mit dem Arduino Nano – auch wenn es im Speicher etwas eng ist.

Harald Friedrich

Harald Friedrich

Die MP3 Dateinamen auf der SD-Karte müssen alle eine Nummer vorangestellt bekommen. Gibt es eine Möglichkeit, den kompletten Namen des aktuell gespielten Files heraus zu bekommen, um ihn auf einem Display anzuzeigen? Ansonsten ist das Modul als MP3-Player eigentlich unbrauchbar?!?

Holger

Holger

Hallo HaMa, den Widerstand solltest du nicht weglassen, sonst gibt es Probleme mit 3,3 Volt,
Auch bei mir lief der Player mit dem vorgegebenem Programm nicht. Zum Haareraufen!!
Aber so ging es:
#include “Arduino.h”
#include “SoftwareSerial.h”
#include “DFRobotDFPlayerMini.h”

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;

void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);

Serial.println(); Serial.println(F(“DFRobot DFPlayer Mini Demo”)); Serial.println(F(“Initializing DFPlayer … (May take 3~5 seconds)”)); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. Serial.println(F(“Unable to begin:”)); Serial.println(F(“1.Please recheck the connection!”)); Serial.println(F(“2.Please insert the SD card!”)); while(true){ delay(0); // Code to compatible with ESP8266 watch dog. } } Serial.println(F(“DFPlayer Mini online.”)); myDFPlayer.volume(5); //Set volume value. From 0 to 30 //myDFPlayer.play(3); //Play the first mp3

}

void loop()
{

myDFPlayer.play(1); //Play next mp3 eve */ delay(5000); myDFPlayer.stop();

}

Ha Ma

Ha Ma

Habe den Aufbau mit einem D1 Mini ausprobiert und nicht zum laufen gebracht.
Den 1k Widerstand an Rx habe ich weggelassen. Mehrere Ports ausgetestet, bleibt immer bei ´unable to begin ˋ stehen. Mit 2 player ausgetestet. Läuft der Player mit dem D1 Mini?

Währe dankbar für einen Tipp.

Jens

Jens

Ein großer Kondensator 470 – 1000uF an V+5 und GND nahe am Modul tut dem Modul bei großer Lautstärke gut. Vor allem auf dem Breadbord, wo die Kabel schnell mal wackeln…
Achtung, 11 vom Arduino geht über 1k an RX des Moduls und TX Modul an 10 Arduino. Wer sicher sein will kann in beide Leitungen 1k machen.

Tom

Tom

Hallo, ich habe es einmal angeschlossen, funktionierte einwandfrei, nun hab ich es nochmal sauber auf das Breadboard gesteckt und jetzt funktioniert nichts mehr. Über der seriellen Monitor erfahre ich, dass das MP3 Player Modul “unable” ist und dass ich Verbindungen überprüfen soll und die micro SD Karte. Beides ist korrekt. Ist das Player Modul defekt?

ocram

ocram

hmm ich bekomme es nicht zum laufen.
ich habe es an einen nano von euch angeschlossen aber ich bekomme nur verstümmelte messages via serial . Es werden keine MP3 gefunden. hat jemand vielleicht eine Idee was ich falsch mache?

azdeliver

azdeliver

Wenn es möglich ist, nach dem Programmieren den CHIP alleine zu verwenden, dann würde ich mehrere Kaufen wollen. Ansonsten macht das keinen Sinn mit dem großen Arduinoboard dazu. VG

Matthias Zeller

Matthias Zeller

Sehr gut beschrieben.
Alles hat auf Anhieb geklappt.
Vielen Dank :-)

Gastleser

Gastleser

Interessant. :) Kann ich auch einen Lautsprecher mit 4 Ohm verwenden? Muss ich da etwas beachten?

Gonzo

Gonzo

warum spielt der Player immer nur einen titel ab

tbretz

tbretz

@Veit
Hallo,
mit dem “DFRobotDFPlayerMini.h” bekomme ich das Modul auch nicht zum laufen.

Bei mir läuft es nur mit dem “DFMiniMp3.h” “DFPlayer Mini Mp3 by Makuna”

Veit

Veit

Haben sie das Modul schon mal mit dem ESP32 getestet?
Ich habe dazu das hier gefunden:
https://github.com/pcbreflux/espressif/blob/master/esp32/arduino/sketchbook/ESP32_DFPlayer_full/ESP32_DFPlayer_full.ino

Allerdings kommt bei mir immer die Ausgabe: “Please recheck the connection”

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas