DFPlayer mini auf Arduino Pro Mini

Hallo,

vorab, das ist mein erstes Arduino Projekt, daher bin ich mir noch sehr unsicher. Daher sollte es für den Anfang erstmal eine Nachbauprojekt sein.

Wie es der Titel bereits verrät, ersuche ich gerade den DFPlayer in Betrieb zu nehmen.

Ich habe gem. dieser kurzen Anleitung den Arduino mini Pro 3.3V mit dem DFPlayer verbunden.

https://www.dfrobot.com/blog-277.html

Habe bereits ein paar Musikstücke auf der SD-Karte.

Mit einem manuellen test am DFPlayer habe ich GND und IO_1 kurzu überbrückt. Die Musik fängt an zu laufen.

Nun wollte ich gem. der Anleitung die Software auf den Arduino spielen und damit etwas experimentieren.

Einen testcode habe ich hier gefunden.
https://github.com/DFRobot/DFPlayer-Mini-mp3

Ich möchte zum Anfang erstmal nur einen kleinen Code haben, der komplett ohne Knöpfe auskommt.

Also sobald Strom da ist, soll die Musik automatisch Random abgespielt werden. Solange, bis der Strom wieder abgeschalten wird.

Gem. den Beispielcodes habe ich folgendes versucht, aber bin erstmal völlig gescheitert.

Basiscode von der Homepage:

#include <softwareserial.h>
#include <dfplayer_mini_mp3.h>

void setup () {
 Serial.begin (9600);
 mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module 
 mp3_set_volume (10);
}

void loop () {        

 mp3_play (1); //play 0001.mp3
 delay (10000); //10 sec, time delay to allow 0001.mp3 to finish playing

 mp3_play (2);
 delay (5000);

 mp3_play (5);
 delay (5000);

 mp3_play (20); //play 0020.mp3
 delay (9000);

 mp3_play (81);
 delay (6000);

 mp3_play (74); //play 0074 mp3
 delay (6000);

}

Und den, den ich versucht habe

#include "SoftwareSerial.h"
#include "DFPlayer_Mini_Mp3.h"

void setup () {
 Serial.begin (9600);
 mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module 
 mp3_set_volume (10);
}

void mp3_random_play ();

Als Fehlermeldung bekomme ich folgendes:

Arduino: 1.8.2 (Windows 10), Board: “Arduino Pro or Pro Mini, ATmega328 (3.3V, 8 MHz)”

C:\Users\SEBAST~1\AppData\Local\Temp\ccR7dr5Y.ltrans0.ltrans.o: In function `main’:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:46: undefined reference to `loop’

collect2.exe: error: ld returned 1 exit status

exit status 1
Fehler beim Kompilieren für das Board Arduino Pro or Pro Mini.

Dieser Bericht wäre detaillierter, wenn die Option
“Ausführliche Ausgabe während der Kompilierung”
in Datei → Voreinstellungen aktiviert wäre.
.

Hi

Da Deine Code-Beispiele maximal 30 Zeilen haben, die Fehlermeldung aber von Zeile 46 spricht - passt hier irgend etwas nicht ganz zusammen.

Wie meinen?

MfG

Der Fehler entsteht in arduino main.cpp wenn ich void mp3_random_play (); reinnehme und nicht direkt in meiner Datei.

Hi

Ich gehe stark davon aus, daß die main.cpp ganz gerne eine Funktion Namens loop() in Deinem Sketch sehen würde.
Die mp3_random_play(); steht auch niergens drin, müsste man Mal probieren, ob Das überhaupt funktioniert, wenn man diesen Aufruf z.B. vor setup(){ einbringt.

Denke, packe Deinen mp3-Aufruf in die Funktion loop(), und Alles wird gut.

MfG

Wurde ja schon geschrieben, es fehlt in deinem Sketch die Loop().

Und "void mp3_random_play();" ist kein Aufruf sondern eine leere Funktion

Wenn ich das aber so versuche, dann passiert garnichts. Es wird nichts abgespielt

void loop () {  
  mp3_random_play ();
}

Da ich die Anweisungen der Lib nicht im Kopf habe, kann ich nicht sagen ob das ok ist.

Evtl muss da noch eine Liste aufgebaut werden.

Schau auch mal hier: DFPlayer_Mini_SKU_DFR0299-DFRobot

Hm, jetzt wollte ich das sketch von hier hochladen ttps://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299

Jetzt blinkt die rote LED schnell und nichts geht mehr...

Jinroo:
Hm, jetzt wollte ich das sketch von hier hochladen ttps://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299

Jetzt blinkt die rote LED schnell und nichts geht mehr…

Heißt das du wolltest hochladen, aber du konntest nicht hochladen ?
Dann gab es doch sicher eine Fehlermeldung.

Oder du hast hochgeladen und der Sketch funktioniert nicht ?

Hi

Hat diese rote LED eine besondere Bedeutung?
Vll. ist dort, wo der Sketch her kommt, was dazu ersichtlich?

MfG

Ich wollte hochladen und das ist die Fehlermeldung dazu

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.

Jinroo:
Ich wollte hochladen und das ist die Fehlermeldung dazu

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.

Das ist mit Sicherheit nicht die komplette Fehlermeldung.

Warum postest du nicht die komplette Meldung ?

Und du kannst noch über "Datei-Voreinstellungen-Ausführlicher Ausgabe..." anklicken.
Dann siehst du mehr.

So wie es aussieht, ist der FTDI programmer defekt. Habe gerade eine anderen unbenutzten ProMini angeschlossen. Der lässt sich ebenfalls nicht programmieren.

Muss mir jetzt erstmal einen neuen FTDI Programmer besorgen.

HotSystems:
Das ist mit Sicherheit nicht die komplette Fehlermeldung.

Warum postest du nicht die komplette Meldung ?

Und du kannst noch über "Datei-Voreinstellungen-Ausführlicher Ausgabe..." anklicken.
Dann siehst du mehr.

Wenn ich Versuche die komplette Meldung zu posten, dann sagt mir das Forum das ich die Maximale Zeichenzahl überschritten habe. Daher hatte ich nur die einfache gepostet

Jinroo:
Wenn ich Versuche die komplette Meldung zu posten, dann sagt mir das Forum das ich die Maximale Zeichenzahl überschritten habe. Daher hatte ich nur die einfache gepostet

Und die sagt nix aus.....wie bitte sollen wir da helfen.

Dann musst du warten, bis einer mit einer funktionierenden Glaskugel vorbei kommt.

Jinroo:
So wie es aussieht, ist der FTDI programmer defekt. Habe gerade eine anderen unbenutzten ProMini angeschlossen. Der lässt sich ebenfalls nicht programmieren.

Muss mir jetzt erstmal einen neuen FTDI Programmer besorgen.

Geht auch der Blink-Sketch nicht hochzuladen ?

Was macht der FTDI und was nicht ?

Hast du den richtigen USB-Port gewählt ?

Arduino: 1.8.2 (Windows 10), Board: "Arduino Pro or Pro Mini, ATmega328 (3.3V, 8 MHz)"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Sebastian\Documents\Arduino\libraries -fqbn=arduino:avr:pro:cpu=8MHzatmega328 -vid-pid=0X2A03_0X0043 -ide-version=10802 -build-path C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114 -warnings=none -build-cache C:\Users\SEBAST~1\AppData\Local\Temp\arduino_cache_785636 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Sebastian\Documents\DFPlayer\test_musik\examples\FullFunction\FullFunction.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Sebastian\Documents\Arduino\libraries -fqbn=arduino:avr:pro:cpu=8MHzatmega328 -vid-pid=0X2A03_0X0043 -ide-version=10802 -build-path C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114 -warnings=none -build-cache C:\Users\SEBAST~1\AppData\Local\Temp\arduino_cache_785636 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Sebastian\Documents\DFPlayer\test_musik\examples\FullFunction\FullFunction.ino
Using board 'pro' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10802 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\FullFunction.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10802 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\FullFunction.ino.cpp" -o "nul"
Using cached library dependencies for file: C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\DFRobotDFPlayerMini.cpp
Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10802 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\FullFunction.ino.cpp" -o "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\preproc\ctags_target_for_gcc_minus_e.cpp"
Sketch wird kompiliert...
Zuvor kompilierte Datei wird verwendet: C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\DFRobotDFPlayerMini.cpp.o
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=10802 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\FullFunction.ino.cpp" -o "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\FullFunction.ino.cpp.o"
Compiling libraries...
Compiling library "SoftwareSerial"
Zuvor kompilierte Datei wird verwendet: C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\libraries\SoftwareSerial\SoftwareSerial.cpp.o
Compiling core...
Using precompiled core
Linking everything together...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114/FullFunction.ino.elf" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\DFRobotDFPlayerMini.cpp.o" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\sketch\FullFunction.ino.cpp.o" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114\libraries\SoftwareSerial\SoftwareSerial.cpp.o" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114/..\arduino_cache_785636\core\core_arduino_avr_pro_cpu_8MHzatmega328_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114" -lm
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114/FullFunction.ino.elf" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114/FullFunction.ino.eep"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114/FullFunction.ino.elf" "C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114/FullFunction.ino.hex"
Bibliothek SoftwareSerial in Version 1.0 im Ordner: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial wird verwendet
Der Sketch verwendet 6084 Bytes (19%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 361 Bytes (17%) des dynamischen Speichers, 1687 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 -b57600 -D -Uflash:w:C:\Users\SEBAST~1\AppData\Local\Temp\arduino_build_643114/FullFunction.ino.hex:i

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

Using Port : COM4
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xf9
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x02
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x02
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xf0
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x79
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x02
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x02
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x53
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x74

Beim Hochladen des Sketches ist ein Fehler aufgetreten
avrdude done. Thank you.

Habe es aufgeteilt, dass ich es hier posten kann.

Ein paar weitere Details:

Verwendetes Board ist das Arduino Pro Mini mit dem ATmega328 auf 3.3V, 8 MHz

Als Programmer verwende ich das Arduino Unu R3

Uno gem dieser Vorlage angeschlossen

https://cdn.instructables.com/FM0/EAK9/IH2BRI2O/FM0EAK9IH2BRI2O.LARGE.jpg

Gestern habe ca. 20x mal ein Sketch auf dieser Weise hochgeladen.

Die Stromversorgung läuft ausschließlich über den USB Port. Der USB Port wurde auch nicht geändert.

Ein anderes Arduino Pro Mini Board lässt sich ebenfalls nicht mehr programmieren.

Auf dem Arduino Uno blinkt ganz kurz die LED für "RX" aber sonst passiert nichts. Dann kommt irgemdwann der timeout