ich habe ein Problem mit der Indexierung beim DFPlayer.
Ich nutze den DFPlayer an einem Arduino Pro Mini 5V - 16bit.
Ich verwende die Library DFPlayerMini_Fast (mit der regulären tritt das Problem ebenfalls auf)
Die SD-Karte ist formatiert FAT32, alle Dateien sind 0001.mp3 - 0010.mp3 benannt und auch in der Reihenfolge auf die Karte in den Ordner /mp3 kopiert.
Ziel ist es auf Button-Druck einen zufälligen Track (von 10 vorhandenen Tracks) aus dem mp3 Ordner abzuspielen.
Auf Button-Druck werden zwar zufällige Nr generiert, aber sie stimmen nicht mit den Dateien überein. Dh. random generiert die 9 und abgespielt wird die Nr.5. Es ist allerdings nicht zufällig wie die Dateien abgespielt werden, es werden quasi jede 2. Datei abgespielt:
Wenn Random 1 generiert - wird 1 abgespielt
2 generiert - wird nichts gespielt
3 generiert - wird 2 gespielt
4 generiert - wird nichts gespielt
5 generiert - wird 3 abgespielt
6 generiert - wird nichts abgespielt
7 generiert - wird 4 abgespielt
8 generiert - wird nichts abgespielt
9 generiert - wird 5 abgespielt
10 generiert - wird nichts abgespielt
Ich stehe irgendwie auf dem Schlauch und komme nicht dahinter? Was übersehe ich ;-/
Was mich an deinem "Dateiaufruf" wundert ist, dass du nur Zahlen ausgibst.
Ich habe in Erinnerung, (ist schon etwas länger her, die letzte DFPlayer Programmierung) dass man den kompletten Namen übertragen muss.
[sup]◆ play()
void DFPlayerMini_Fast::play ( uint16_t trackNum )
Play a specific track.
Parameters
trackNum The track number to play.
◆ playFromMP3Folder()
void DFPlayerMini_Fast::playFromMP3Folder ( uint16_t trackNum )
Play a specific track in the folder named "MP3".
Parameters
trackNum The track number to play. [/sup]
Parameters
trackNum The track number to play. [/sup]
Das war der Fehler! Danke so funktionierts. Es wundert mich nur, dass play() dann trotzdem funktioniert!
HotSystems:
Was mich an deinem "Dateiaufruf" wundert ist, dass du nur Zahlen ausgibst.
Ich habe in Erinnerung, (ist schon etwas länger her, die letzte DFPlayer Programmierung) dass man den kompletten Namen übertragen muss.
Oder sollte ich mich da täuschen ?
Der Dateiaufruf funktioniert mit den Track-Nr.
Der Code sieht dann so aus und funktioniert:
blendit360:
Das war der Fehler! Danke so funktionierts. Es wundert mich nur, dass play() dann trotzdem funktioniert!
Der Dateiaufruf funktioniert mit den Track-Nr.
Prima, dass es funktioniert und danke für die Rückmeldung.
Der DFPlayer läuft entgegen seinen Angaben wohl nicht gut mit 3.3V.
Meine Frage: Hat jemand den DFPlayer schon mit 3.3V betrieben? Ich bekomme da nur ein Brummen und klackern. Dh. der Sound springt kurz an und dann nur noch lautes Brummen. Scheint als würde die Spannungsversorgung zusammenbrechen lt. anderen Foren.
blendit360:
Mein ganzer Plan scheint eh nicht aufzugehen.
Der DFPlayer läuft entgegen seinen Angaben wohl nicht gut mit 3.3V.
Meine Frage: Hat jemand den DFPlayer schon mit 3.3V betrieben? Ich bekomme da nur ein Brummen und klackern. Dh. der Sound springt kurz an und dann nur noch lautes Brummen. Scheint als würde die Spannungsversorgung zusammenbrechen lt. anderen Foren.
Wo holst du denn die 3,3V her.
Da muss schon ein bischen Strom vorhanden sein.
Am besten einen eigenen Spannungsregler spendieren, dann gibt es auch keine Geräusche.
blendit360:
Der DFPlayer läuft entgegen seinen Angaben wohl nicht gut mit 3.3V.
Ich habe es gerade mal mit einem ESP32 probiert und da muß ich Deine Aussage leider bestätigen. ESP32 über USB und DFPlayer mittels Netzteil und mit und ohne StepDown (wegen Spindelpoti feinfühliger einzustellen) versorgt. Ab 3,6 V hört das Schnattern im 25Ω-Lautsprecher langsam auf.
blendit360:
Mein ganzer Plan scheint eh nicht aufzugehen.
Dann bedarf es eines neuen Plans: VCC vom ProMini unbeschaltet, eine Spannung 4 bis 5 V an RAW vom ProMini und VCC vom Player.
ich habe bisher keinen DF-Player vernünftig mit 3,3V betreiben können, habe die bisher immer mit 5V betrieben. Ansonsten ist bei nutzbaren Lautstärken immer das "Schnatter" zu hören.
Ein "Schlaflied" Player für die Enkelin , läuft mit einen 5V Steckernetztteil 1A , von C.. einem WMos D1 (Nachnau) und einem DF Player. (beides von AZ) Lautsprecher 3W 8Ohm. Wlan ist abgeschaltet. Das Ding läuft jetzt seit einem Jahr und wird täglich genutzt.
Das Steckernetztteil wird über eine Rundbuchse in das Gehäuse geführt, und geht von da jeweils auf den DF Player und den Wmos. Beides sitzt auf einen Lötraster-Platine. Vor dem 5V Versorgungspin am Wmos sitzt eine Stechbrücke die ich rausnehmen kann wenn ich den Wmos am PC anschliesse ( z.B download) Zur Pegelanpassug Richtung Wmos gibts passende Widerstände.
Ich hab es jetzt gelöst (zumindest funktioniert es so). Die Lösung war den Arduino in der Spannungsversorgung nach dem DFPlayer zu hängen. Scheint als würde der Arduino soviel Strom ziehen, dass der DFPlayer den Lautsprecher nicht richtig ansprechen kann (leider über meinem Verständnis). Ich hänge mal zwei Bilder an, so funktioniert es aktuell bis 3.2V (Labor-Netzteil). Ist nicht die schönste Lötarbeit, aber ich werds nicht zu einem Wettbewerb anmelden :). Ich hoffe man kann es nachvollziehen.
Das ganze hat einen Switch für ON/Off, einen Button um im Code myMP3.playFromMP3Folder(randomInt); auszulösen und eine Stromversorgung über aktuell 4xAA. Ich weiss, der DFPlayer ist bis 5V angegeben, aktuell funktioniert es so, bereits seit 2h ohne Ausfall. Eventuell teste ich mit 3xAA.