Ich habe es bei MP3 Track hinbekommen. Ich musste nur ein delay nach dem initialen Starten des DFPlayers hinzufügen. Jetzt werden für MP3 Tracks auch FinishEvents erzeugt.
Nur Advertisement kommen keine, aber das lässt sich verschmerzen … ich habe bei den meisten Aufrufen das Warten auf das Ende entfernt.
Abgesehen davon läuft der Chip MH2024-16SS jetzt problemlos. Schön das sich der Elektroschrott vermeiden ließ.
direkt ein 2. Mal dahinter aufrufe, kriege ich eine 0 als Antwort.
Erst beim 3. Aufruf hintereinander bekomme ich wiederholt den richtigen Wert.
Ein längeres delay nach dem mp3.begin() hat auch nicht geholfen.
EDIT: Problem gelöst. Es liegt an den mp3.setVolume und mp3.setEq Aufrufen. Der Chip braucht anscheinend etwas Bearbeitungszeit. Mit einem delay(1000) jeweils dahinter, arbeitet alles zuverlässig.
Ja, das habe ich auch. Allerdings noch mit einem mp3.start() dazwischen, da ich anschließend einen Start-MP3-Sound abspiele.
Sinn gemäß
setVolume(value);
setEqualizer(value);
start();
// give DFPlayer some more time to init (otherwise finish event of MP3 track is not generated)
delay(1000);
// play startup sound
playMP3AndWait(261);
Was ich noch festgestellt habe:
Wenn ich nach meiner Startfolge (s.o.) getFolderTrackCount(folder) sende, wird der Busy-Pin/Zustand wieder inaktiv. Ohne dieses Kommando bleibt der Busy-Pin/Zustand aktiv!
Ich hatte versucht, dass in/vor die Warteschleife zu integrieren, um Advertisement Titel abwarten zu können. Aber das Senden führt in diesen Fällen zu einem rx timeout 0x81 (129) Fehler. Schade.
So, auch bei mir läuft der 16SS jetzt mit der DEV!
Hatte den „Fehler 30“. Das ist der, der 30cm vor dem Bildschirm entsteht
In der DF library musste ich noch nicht einmal die checksum rausnehmen. Bei mir hat der zusätzliche case ausgereicht.
Im sketch habe ich jeweils ein delay(100); unter mp3.setVolume(volume); und mp3.setEq(mySettings.eq - 1);eingefügt.
Da er bei mir die erste Ansage zum Adminmenü verschluckt hatte, habe ich noch ein delay(100); hinter mp3.pause(); in der void adminMenu(bool fromCard = false) { ergänzt.
Zu guter Letzt hat ein delay(10); ja 10, am Ende der void waitForTrackToFinish() { , also vor der schließenden }, die Fehlermeldungen nach mp3.playMp3FolderTrack beseitigt.
hallo
gibt es dazu eine Anleitung für TonUino Neulinge?
ich habe nun auch den MH2024K-16SS Chip bekommen
ich habe die TonUINO Version 2.1 und 5 knöpfe verwendet.
sobald ein Lied fertig ist bleibt die Wiedergabe hängen und es muss manuell der nächste Song gestartet werden.
was muss ich am Code anpassen damit es funktioniert und in welcher Zeile ca?
gibt es die Möglichkeit die Version des DFPlayer in den Anfang zu schreiben wie bei „#define FIVEBUTTONS“ damit auch Anfänger leicht den code anpassen können, oder muss dafür dann ein komplett anderer code verwendet werden?
Leider kann man scheinbar nicht einfach sagen „der neue Chip“. Es sind wohl, trotz gleicher Bezeichnung, schon mehrere unterschiedliche (Software-) Versionen unterwegs, so dass es im Moment die Musterlösung nicht zu geben scheint. Wie oben im Faden geschrieben, haben ja bei mehreren unterschiedliche Wege zum Ziel geführt.
Teil der Lösung war aber immer auch eine Veränderung an der DF-Player lib. Diese Datei siehst du in der Arduino IDE leider nicht einfach so, wenn du die Tonuino.ino öffnest.
Die betreffende Datei „DFMiniMp3.h“ muss separat geändert werden. Mindestens muss dort nach case 0x3d: // micro sd gesucht werden und das 3d durch 4c ersetzt werden.
Moin!
Bist du mit dem DF-Player schon weiter gekommen?
Ich versuche mal, dir hier einen Weg aufzuzeigen. Hier kannst du eine schon leicht für einen 16SS DF-Player angepasste Version der DF-Player lib herunterladen.
Auf den Link mit rechts klicken und „speichern unter“ auswählen.
Als Speicherort nimmst du den Ordner in dem du die Tonuino.ino gespeichert hast.
In der Arduino IDE öffnest du dann deine Tonuino.ino und änderst in der ersten Zeile #include <DFMiniMp3.h> in #include "DFMiniMp3.h" das dann so erstmal abspeichern und die IDE schließen.
Wenn du jetzt die Tonuino.ino wieder mit der IDE öffnest, solltest du einen zweiten Reiter neben dem Tonuino sketch sehen. In dem zweiten Reiter kannst du nun die DF-Player lib bearbeiten. Dort in Zeile 523 müsstest du den von mir angesprochenen case finden, Hier dann, wie geschrieben, die 3d in 4c ändern.
Im Reiter mit der Tonuino.ino fügst du dann unter Zeile 757 mp3.setVolume(volume); und 758 mp3.setEq(mySettings.eq - 1); jeweils ein delay(1000); ein.
Dann speichern, auf den Tonuino laden und testen.
Vielleicht bringt das für dich schon den Erfolg.
hi
danke für die Tipps!
jetzt klappt es
nur die box knackt manchmal wenn ich was mache und danach ist die Lautstärke viel lauter und lässt sich nicht mehr runter regeln.
woran das liegt konnte ich noch nicht feststellen oder reproduzieren
ich habe wie weiter oben beschrieben 100 benutzt da mir 1sec etwas lange vor kommt
Ich habe die 1000 von @bw87 vorgeschlagen, da ich vermutet habe, das dein Player die gleiche Software-Version haben könnte wie seiner.
Bei meiner Version, fallen die Änderungen ja im ganzen etwas anders aus.
Du hast recht, es ist recht lang, aber vielleicht sind die von dir gewählten 100 einfach zu kurz.
Versuch einfach mal die 1000 und sieh was passiert.
Dann kannst du dich ja immer noch nach unten tasten?!
Hallo, ich habe mal beide Fixes (checksum, fehlender case) in einen eigenen branch zusammen veröffentlicht, damit es für Neuankömmlinge einfacher wird, diese einzubauen:
Tatsächlich löst es nicht alle Timing-Probleme und die Art und Weise, wie die Bibliothek implementiert ist, die Pakete können nicht in der richtigen Reihenfolge ankommen und Fehler verursachen (es ist ein Durcheinander, wenn die SD-Karte während des Schreibens und der Bestätigung erkannt wird).
Hallo,
Mit Feedback und ohne Checksum funktioniert der Chip MH2024-16SS relativ gut.
Allerdings funktioniert das Abspielen aus dem „mp3“-Verzeichnis nicht richtig (Kommando 0x12).
Hier wird immer nur die 42. Datei abgespielt - egal welche Datei angegeben wird .
Das gleiche Verhalten ergibt sich auch mit dem Kommando 0x03 (globale Tracks abspielen).
Ich habe auch noch Probleme mit dem Busy-Pin.
Dieser wird beim Abspielen von High auf Low gesetzt - nach dem Abspielen bleibt dieser jedoch auf Low… erst nach einem Reset (0x0c) oder einer Pause (0x0e) wechselt der Pin wieder auf High.
Bei diesem Chip kann man allerdings auch das Verzeichnis 00 verwenden.
ich habe jetzt einen DFPlayer Mini HW-247A auf dem Tisch und der läuft so weit, bis auf den Bass, der fehlt. Mit dem China-DFPlayer kommt der richtige Sound mit Bass. (EQ auch getestet) Ist das jemanden schon aufgefallen oder bin ich der Erste?
Der Player wurde bei ebay.de bestellt, ohne Hinweis auf den Zusatz HW-247A.
Kann einer bestätigen, dass diese Chips funktionieren? Ich habe nämlich von Amazon schon viele durchprobiert, die nicht funktionierten. Die sahen genauso aus wie diese hier (ist etwas kleiner der Chip als früher).