Die Hardware

Der DFPlayerMini ist ein Modul, das mp3- und wav-Dateien abspielen kann. Der Lautsprecher wird über Steckverbindungen mit dem Modul verbunden.
Außerdem können noch zwei Taster angeschlossen werden, mit denen die Lautstärke verändert und ein Vor- und Rücksprung der Musikdateien ausgeführt werden kann.
Die Musikdateien werden auf eine maximal 32 GB große Mini-SD-Karte kopiert, die Formatierung muss FAT32 sein.

Es können verschiedene Ordner angelegt werden. Zunächst können alle Dateien natürlich in das Stammverzeichnis kopiert werden. Die Namen müssen der 4+3-Konvention (4 Ziffern, Punkt und die Dateiendung mp3 oder wav) entsprechen und durchnummeriert werden:
0001.mp3 0002.mp3 … 3000.mp3
Nach den vier Ziffern dürfen auch Buchstaben verwendet werden, die eine Identifizierung des Titels ermöglichen (0001_Deep_Purple_Child_in_Time.mp3).
Außerdem können auch weitere Verzeichnisse angelegt werden, die von 01 bis maximal 99 bezeichnet werden können. In jedes dieser Verzeichnis können wiederum höchstens 3000 Dateien abgelegt werden.
Weiterhin gibt es das Sonderverzeichnis mp3. Dateien in diesem Verzeichnis werden mit einem besonderen Befehl (playMp3Folder) abgespielt.
Benötigte Bibliothek

Funktionen der Bibliothek DFRobotDFPlayer
| Funktion | Aktion | Parameter/Beispiel |
|---|---|---|
| begin() | Player starten | SoftwareSerial DFPlayerSoftwareSerial(RX, TX); mp3Player.begin(DFPlayerSoftwareSerial); |
| volume(Wert) | Lautstärke mögliche Werte 1 -30 | volume(20); |
| EQ(Parameter) | Equalizer | Mögliche Parameter: DFPLAYER_EQ_NORMAL DFPLAYER_EQ_POP DFPLAYER_EQ_ROCK DFPLAYER_EQ_JAZZ DFPLAYER_EQ_CLASSIC DFPLAYER_EQ_BASS |
| play(Nummer) | spielt eine Datei aus dem Stammverzeichnis | play(1) |
| pause() | pausiert die Wiedergabe | |
| start() | startet die Wiedergabe nach einer Pause | |
| previous() | vorherigen Titel spielen | |
| next() | nächsten Titel spielen | |
| loopFolder(Ordner) | wiederholt alle Titel im Ordner | loopFolder(1) alle Titel im Ordner 01 werden wiederholt |
| playFolder(Ordner, Nummer) | spielt den angegebenen Titel aus dem Ordner | playFolder(2, 1); spielt den ersten Titel aus dem Ordner 02 der Ordner darf maximal 255 Dateien enthalten |
| playLargeFolder(Ordner, Nummer) | spielt den angegebenen Titel aus dem Ordner | playLargeFolder(2, 1); spielt den ersten Titel aus dem Ordner 02 der Ordner darf bis zu 3000 Dateien enthalten |
| playMp3Folder(Nummer) | spielt die Titel aus dem Ordner mp3 | playMp3Folder(1); spielt den ersten Titel aus dem Ordner mp3 der Ordner darf bis zu 3000 Dateien enthalten |
| enableLoopAll() | alle Dateien wiederholen | |
| randomAll() | Dateien zufällig abspielen |
mp3-Player im Seriellen Monitor
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)


Die Pins RX und TX können an beliebigen Ports außer 0 und 1 angeschlossen werden. Sie werden mit der Bibliothek ⇒SoftwareSerial angesteuert.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // RX/TX Port definieren SoftwareSerial DFPlayerSoftwareSerial(3, 4); // Name des Players DFRobotDFPlayerMini mp3Player; int Lautstaerke = 15; /* Schalter für die Pausenfunktion Pause == true -> Wiedergabe gestoppt Pause == false -> Wiedergabe neu starten */ bool Pause = false; void setup() { DFPlayerSoftwareSerial.begin(9600); Serial.begin(9600); delay(1000); // Player starten // falls die Parameter true, true nicht funktionieren // mp3Player.begin(DFPlayerSoftwareSerial, false, true); mp3Player.begin(DFPlayerSoftwareSerial, true, true); /* Equalizer: mp3Player.EQ(DFPLAYER_EQ_NORMAL); mp3Player.EQ(DFPLAYER_EQ_POP); mp3Player.EQ(DFPLAYER_EQ_ROCK); mp3Player.EQ(DFPLAYER_EQ_JAZZ); mp3Player.EQ(DFPLAYER_EQ_CLASSIC); mp3Player.EQ(DFPLAYER_EQ_BASS); */ mp3Player.EQ(DFPLAYER_EQ_ROCK); // Lautstärke 1 .. 30 mp3Player.volume(Lautstaerke); // zufällige Wiedergabe starten mp3Player.randomAll(); // Menü Serial.println("-----------------------------"); Serial.println("n = nächster Titel"); Serial.println("v = voheriger Titel"); Serial.println("+ = Laustärke +"); Serial.println("- = Lautstärke -"); Serial.println("s = Stopp/Weiter"); Serial.println("z = zufällige Wiedergabe"); Serial.println("m = Menü anzeigen"); Serial.println("1-9 = Verzeichnis 1-9 spielen"); Serial.println("-----------------------------"); } void loop() { // auf serielle Eingabe warten while (Serial.available() > 0) { // Eingabe im Seriellen Monitor lesen char Zeichen = Serial.read(); // wenn die Eingabe eine Zahl ist if (isdigit(Zeichen)) { // char in String umwandeln, anschließend zu int konvertieren String Zahl = String(Zeichen); int Nummer = Zahl.toInt(); Serial.println("Spiele Verzeichnis " + String(Nummer)); mp3Player.loopFolder(Nummer); Pause = false; } // - -> Lautstärke - if (Zeichen == '-') { if (Lautstaerke > 2) Lautstaerke = Lautstaerke - 2; mp3Player.volume(Lautstaerke); Serial.println("Lautst\u00e4rke: " + String(Lautstaerke)); } // + -> Lautstärke + if (Zeichen == '+') { if (Lautstaerke <= 28) Lautstaerke = Lautstaerke + 2; mp3Player.volume(Lautstaerke); Serial.println("Lautst\u00e4rke: " + String(Lautstaerke)); } // n -> nächster Titel if (Zeichen == 'n') { mp3Player.next(); Serial.println("Nächster Titel"); } // v -> vorheriger Titel if (Zeichen == 'v') { mp3Player.previous(); Serial.println("Vorheriger Titel"); } // s -> Pause/Weiter if (Zeichen == 's') { if (!Pause) { mp3Player.stop(); } if (Pause) { mp3Player.start(); } Pause = !Pause; if (Pause) Serial.println("Wiedergabe angehalten"); if (!Pause) Serial.println("Wiedergabe fortgesetzt"); } // z -> zufällige Wiedergabe Titel if (Zeichen == 'z') { mp3Player.randomAll(); Serial.println("Zufällige Wiedergabe gestartet"); Pause = false; } // m -> Menü anzeigen if (Zeichen == 'm') { Serial.println("-----------------------------"); Serial.println("n = nächster Titel"); Serial.println("v = voheriger Titel"); Serial.println("+ = Laustärke +"); Serial.println("- = Lautstärke -"); Serial.println("s = Stopp/Weiter"); Serial.println("z = zufällige Wiedergabe"); Serial.println("m = Menü anzeigen"); Serial.println("1-9 = Verzeichnis 1-9 spielen"); Serial.println("-----------------------------"); } } } |
Letzte Aktualisierung: