Riprodurre file musicali con il modulo MP3 Player

Il nostro post sul blog di oggi riguarda il modulo MP3 Player di consegna A.

Questo modulo consente di riprodurre file vocali o musicali registrati da una scheda di memoria micro SD.

Per compilare il progetto dopo aver bisogno di:To build the project after you need:

Modulo giocatore MP3 a consegna A
Microcontrollore a -consegna, compatibile con Arduino UNO R3
E (in questo modo
nella breadboard con ponti via cavo, come nel nostro Breadboard Set
1x 1k" resistenza
1x altoparlante da 8 a 2 watt
Scheda microSD 1x

 

In primo luogo, daremo un'occhiata al modulo dall'alto:

Pinout del modulo del lettore MP3

Dal momento che i perni sul modulo stesso non sono etichettati, ci orientiamo alla tacca nella parte superiore del modulo. La scheda MicroSD punta verso il basso.

Colleghiamo il modulo come segue:

Microcontrollore compatibile con Arduino Uno R3

Modulo MP3

5v

Vcc

Gnd

Gnd

Pin 11

RX con 1kResistenza

Pin 10

Tx

 

Altoparlanti

Modulo MP3

+

SPK1

-

SPK2 (informazioni in base al taè

 

 

Collegamento breadboard lettore mp3

 

La preparazione

In primo luogo, abbiamo bisogno di preparare una scheda di memoria micro-SD. Si consiglia di formattare la scheda (FAT32).

La libreria che usiamo indirizza i titoli nell'ordine in cui i file sono stati copiati sulla mappa, indipendentemente dal nome.

Copiamo i file audio desiderati nel file . WAV o . formato MP3 sulla scheda di memoria e inserirlo nel lettore di schede sul modulo MP3.

La Biblioteca

Usiamo la libreria DFPlayerMini di DFRobot per il controllo. È possibile utilizzare questi https://github.com/DFRobot/DFRobotDFPlayerMini Scaricare.

Lo schizzo

Useremo l'esempio "GetStarted", che si trova sotto "File" - "Esempi" - "DFRobotDFPlayerMini" - "GetStarted" e regolare alcune righe:


nella parte di impostazione, regoliamo il volume verso il basso per la sicurezza modificando il valore di myDFPlayer.volume a 5.

Quindi si commenta il comando "myDFPlayer.next() in modo che la riproduzione non salti al brano successivo ogni 3 secondi.

L'esempio modificato è simile al seguente:The modified example looks like this:

 

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

DFPlayer - Un mini lettore MP3 per Arduino
 <https://www.dfrobot.com/product-1121.html>
 
 ***************************************************
 In questo esempio viene illustrata la funzione di base della libreria per DFPlayer.
 
 Creato 2016-12-07
 Di [Angelo qiao](Angelo.qiao@dfrobot.com)
 
 Licenza pubblica generale GNU Lesser.
 Lago <http://www.gnu.org/licenses/> per i dettagli.
 Tutto quanto sopra deve essere incluso in qualsiasi ridistribuzione
 ****************************************************/

/**********************************************************************************************
 1.Connessione e diagramma può essere trovato qui
 <https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
 2.Questo codice è testato su Arduino Uno, Leonardo, Mega tavole.
 ****************************************************/

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

SoftwareSerialseriale mySoftwareSerial(10, 11); RX, TX
DFRobotDFPlayerMini MyDFPlayer;
Vuoto stampaDettagli(uint8_t digitare, Int Valore);

Vuoto Installazione()
{
  mySoftwareSerial.Iniziare(9600);
  Seriale.Iniziare(115200);
  
  Seriale.println();
  Seriale.println(D("DFRobot DFPlayer Mini Demo"));
  Seriale.println(D("Inizializzazione dfPlayer ... (Potrebbe richiedere 3'5 secondi)"));
  
  Se (!MyDFPlayer.Iniziare(mySoftwareSerial)) {  Utilizzare softwareSerial per comunicare con mp3.
    Seriale.println(D("Impossibile iniziare:"));
    Seriale.println(D("Ricontrolla la connessione!"));
    Seriale.println(D("2.Inserire la scheda SD!"));
    Mentre(Vero){
      Ritardo(0); Codice compatibile con il cane da guardia ESP8266.
    }
  }
  Seriale.println(D("DFPlayer Mini online."));
  
  MyDFPlayer.Volume(5);  Impostare il valore del volume. Da 0 a 30
  MyDFPlayer.Giocare(1);  Riprodurre il primo mp3
}

Vuoto Ciclo()
{
  Statico Unsigned Lungo Timer = millis();
  
  Se (millis() - Timer > 3000) {
    Timer = millis();
 myDFPlayer.next();  Riproduci la prossima vigilia mp3 
  }
  
  Se (MyDFPlayer.Disponibile()) {
    stampaDettagli(MyDFPlayer.readType (tipo di lettura)(), MyDFPlayer.Leggere()); Stampare il messaggio dettagliato da DFPlayer per gestire diversi errori e stati.
  }
}

Vuoto stampaDettagli(uint8_t digitare, Int Valore){
  Interruttore (digitare) {
    Caso Timeout:
      Seriale.println(D("Time Out!"));
      Pausa;
    Caso ErroreStack:
      Seriale.println(D("Stack sbagliato!"));
      Pausa;
    Caso DFPlayerCardInserted:
      Seriale.println(D("Scheda inserita!"));
      Pausa;
    Caso DFPlayerCardRemoved:
      Seriale.println(D("Carta rimossa!"));
      Pausa;
    Caso DFPlayerCardOnline:
      Seriale.println(D("Carta online!"));
      Pausa;
    Caso DFPlayerPlayFinished:
      Seriale.Stampare(D("Numero:"));
      Seriale.Stampare(Valore);
      Seriale.println(D("Riproduci finito!"));
      Pausa;
    Caso DFPlayerErrore:
      Seriale.Stampare(D("DFPlayerError:"));
      Interruttore (Valore) {
        Caso Occupato:
          Seriale.println(D("Carta non trovata"));
          Pausa;
        Caso Dormire:
          Seriale.println(D("Dormire"));
          Pausa;
        Caso SerialWrongStack:
          Seriale.println(D("Ottieni Stack sbagliato"));
          Pausa;
        Caso CheckSumNotMatch:
          Seriale.println(D("Controlla somma non corrispondente"));
          Pausa;
        Caso FileIndexOut:
          Seriale.println(D("Indice file fuori del limite"));
          Pausa;
        Caso File Disallineamento:
          Seriale.println(D("Impossibile trovare il file"));
          Pausa;
        Caso Pubblicizzare:
          Seriale.println(D("In Pubblicità"));
          Pausa;
        Predefinito:
          Pausa;
      }
      Pausa;
    Predefinito:
      Pausa;
  }
}

 

Dopo aver caricato il codice, viene avviata la riproduzione MP3.

Con questo modulo, ora puoi dare voce ai tuoi progetti di microcontrollori. O invece di semplici rumori di segnale acustico, è possibile echeggiare le sirene di allarme dalla loro serie fantascientifica preferita.

 

Se sei abile nell'artigianato, puoi installare l'altoparlante, incluso Arduino in una bella custodia ed espanderlo con i tasti funzione (forte, silenzioso, avanti, indietro, ecc.)

 

Altoparlante MP3

Altoparlante MP3 indoor

 

Ci auguriamo che tu abbia apprezzato il nostro contributo oggi e siamo ansiosi di scoprire cosa hai implementato per i progetti con il nostro modulo MP3.

Basta inviarci una foto del vostro progetto finito - saremmo molto felici.

 

Divertiti a ricostruire

Markus Neumann

Team di consegna a A.A.

 

 

Per arduinoProgetti per principianti

15 Kommentare

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”

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Post di blog consigliati

  1. Installa ESP32 ora dal gestore del consiglio di amministrazione
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - Programmazione ESP tramite WLAN