Forum: Compiler & IDEs arduino und dfplayer spielt einfach nichts ab


von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

zuerst mal: ich habe erst vor kurzem mit Arduino angefangen und will da 
auch nicht so tief einsteigen, sondern nur ein Projekt vollenden. Das 
erstmal dazu.
Ich habe schon exrem viel gelesen, aber leider komme ich nicht weiter 
und wenn ich nicht weiter weiss, komme ich hierher zu den Profis. Mein 
Kopf expodiert so langsam und ich habe keine Ideen mehr.

Ich habe einen Arduino nano und einen DFplayer.
Damit wollte ich nun mp3s abspielen, die auf der SD karte sind.
Die SD-karte ist FAT32 formatiert und hat einen Ordner namens MP3 drin 
mit mp3 Dateien, die nach 0001.mp3 0002.mp3 usw. benannt sind. Die mp3s 
sind korrekt aufgebaut, also 44,1khz, CBR 192kbit, jede Datei hat etwa 
7,2MB.

Ich habe den Arduino mit dem DFplayer verdrahtet. Ich habe schon etliche 
Verdrahtungsversionen aus dem Internet versucht, nichts funktioniert.
Der DFplayer spielt einfach nichts ab, er kann nicht vom Arduino 
gestartet werden.

Die Lautsprecher sind 4 Ohm Lautsprecher aus einem Notebook, also nur 
wenig watt und die passen.

An der Verdrahtung und den Komponenten glaube ich liegt es nicht, aber 
vielleicht am Code und der Bibliothek? Falls jemand einen definitiv 
funktionierenden Code hat mit funktionierender Bibliothek, würde ich 
mich sehr freuen die mal zu testen.

Nochwas: ich habe gesehen, dass die meisten einen 1k ohm Widerstand 
zwischen Rx dfplayer und pin11 vom arduino machen. das habe ich auch. 
Ich habe aber auch eine Schaltung gesehen, in der zwischen Tx und pin10 
auch ein 1k ohm Widerstand geschalten wurde. nur einmal gesehen, aber 
vielleicht weiss jemand, was nun korrekt ist. Probiert habe ich das 
auch, ging aber trotzdem nicht.

Am Ende sollen dann die mp3s abgespielt werden, wenn ein PIR ein Signal 
schickt. Das nur vorweg, aber davon schein ich noch Lichtjahre entfernt 
zu sein...

im Anhang der Code inkl PIR.

: Bearbeitet durch User
von Vax W. (Gast)


Lesenswert?

Masse ist komplett overrated.

Spannungen sind Potential-Unterschiede. Da Du keine Potentiale definiert 
hast (keine gemeinsame Masse) -> Wer weiss was da passiert.

Den Text habe ich mir kaum durchgelesen, Schaltplaene sind die Sprache 
der Techniker.

von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Vax W. schrieb:
> Masse ist komplett overrated.
>
> Spannungen sind Potential-Unterschiede. Da Du keine Potentiale definiert
> hast (keine gemeinsame Masse) -> Wer weiss was da passiert.
>
> Den Text habe ich mir kaum durchgelesen, Schaltplaene sind die Sprache
> der Techniker.

das verstehe ich, pläne sagen mehr als 1000 worte.

hier mal den aktuellen schaltplan (habe gerade nochmal den PIR 
involviert)

hier der code den ich als letztes verwendet habe:

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

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int ausloeser = 8;  //Bewegungsmelder Pin 8
int daistwer;

void setup()
{
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  pinMode(ausloeser, INPUT);
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini"));
  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(16);  //setze lautstaerke von 0 bis 30
}

void loop()
{
  delay(5000);
  daistwer = digitalRead(ausloeser);
  Serial.println(F("wert bewegung: "));
  Serial.println(daistwer);
  if (daistwer == 1){
  myDFPlayer.play(1);  //Play the first mp3
  delay(25000);
  }
}

von Gio B. (sanshine)


Lesenswert?

serial monitor gibt aus:

DFRobot DFPlayer Mini
Initializing DFPlayer ... (May take 3~5 seconds)
Unable to begin:
1.Please recheck the connection!
2.Please insert the SD card!

klingt offensichtlich, ist es aber nicht. sd karte ist natürlich drinnen 
und kabel sind auch dran und leiten.

von Gio B. (sanshine)


Lesenswert?

der strom kommt übrigens via USB vom PC an den arduino

von Manfred P. (pruckelfred)


Angehängte Dateien:

Lesenswert?

Gio B. schrieb:
> zuerst mal:

... verwendest Du Groß- / Kleinschreibung und Satzzeichen, damit Deine 
Romane halbwegs lesbar werden.

von Gio B. (sanshine)


Lesenswert?

hier der Code als Anhang und ab jetzt mit korrekter Rechtschreibung. Tut 
mir leid.

: Bearbeitet durch User
von Gio B. (sanshine)


Lesenswert?

Manfred P. schrieb:
> Gio B. schrieb:
>> zuerst mal:
>
> ... verwendest Du Groß- / Kleinschreibung und Satzzeichen, damit Deine
> Romane halbwegs lesbar werden.

ich habe es da wo es ging korrigiert. Danke für den Hinweis und verzeih 
mein Faulheit.

von Helmut -. (dc3yc)


Lesenswert?

Gio B. schrieb:
> hier mal den aktuellen schaltplan

Das ist übrigens kein Schaltplan, das ist ein Wimmelbild aus dem 
Fritzing-Kindergarten. Man kann da übrigens auch Schaltpläne mit malen!

Und wenn die Initialisierung nicht klappt, hilft nur ein Oszi an den 
Signalen. Dann siehst du, wo es hakt!

von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Helmut -. schrieb:
> Gio B. schrieb:
>> hier mal den aktuellen schaltplan
>
> Das ist übrigens kein Schaltplan, das ist ein Wimmelbild aus dem
> Fritzing-Kindergarten. Man kann da übrigens auch Schaltpläne mit malen!

Stimmt, es ist kein Schaltplan, aber es geht ja darum zu zeigen, wie ich 
alles angeschlossen habe. Das erkennt man denke ich ganz gut auf dem 
Bild.

> Und wenn die Initialisierung nicht klappt, hilft nur ein Oszi an den
> Signalen. Dann siehst du, wo es hakt!

Ein Oszilloskop habe ich leider nicht. ich habe ein Fluke 87 V 
Multimeter. Kann ich damit vielleicht irgendwas wichtiges messen?

: Bearbeitet durch User
von Harry R. (harry_r2)


Lesenswert?

Funktioniert es ohne uC, mit Tastern an ADKEY und IO? Um sicher zu sein, 
dass Versorgung, Karte, Dateisystem, ... passen?

Andere Pins für Serial?

von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Harry R. schrieb:
> Funktioniert es ohne uC, mit Tastern an ADKEY und IO? Um sicher zu sein,
> dass Versorgung, Karte, Dateisystem, ... passen?
>
> Andere Pins für Serial?

Kannst du genauer sagen, was ich testen soll? Ich bin leider ein Laie. 
Soll ich ADKEY und IO verbinden? Wenn ja, welche Anschlüsse genau?

von Gio B. (sanshine)


Lesenswert?

Harry R. schrieb:
> Funktioniert es ohne uC, mit Tastern an ADKEY und IO? Um sicher zu sein,
> dass Versorgung, Karte, Dateisystem, ... passen?
>
> Andere Pins für Serial?

Ich habe gerade io1 und Ground verbunden. Er spielte eine mp3 ab.

von Manfred P. (pruckelfred)


Angehängte Dateien:

Lesenswert?

Helmut -. schrieb:
> Das ist übrigens kein Schaltplan, das ist ein Wimmelbild aus dem
> Fritzing-Kindergarten.

Ich mag diese Kinderbilder auch nicht, aber hier ist es ja sehr 
übersichtlich, so dass man es tolerieren sollte.

> Man kann da übrigens auch Schaltpläne mit malen!

Besser nicht, dazu gibt es in µC-net genug Beispiele, wie die dann 
nicht aussehen sollten.

> Und wenn die Initialisierung nicht klappt, hilft nur ein Oszi an den
> Signalen. Dann siehst du, wo es hakt!

Ich frage mich, was ich da sehen würde - außer, dass die Leitungen 
wackeln.

Gio B. schrieb:
> jetzt mit korrekter Rechtschreibung.

Danke, das Du so positiv darauf eingegangen bist.

Ich bin etwas irritiert, was der 1K-Widerstand an D11 soll.

Dann frage ich mal Google nach der Library und finde diese bei 
Arduino.cc - hängt an. In dieser sind Programmbeispiele "examples" und 
dort fällt mir auf, dass diese andere Datenleitungen verwenden.
1
#include <SoftwareSerial.h>
2
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
3
#define FPSerial softSerial

In den Beispielen steht UNO, aber der Nano verhält sich exakt gleich.

Ich würde jetzt die Beispiele durchtesten, bevor ich eigenen 
Programmcode baue!

: Bearbeitet durch User
von Gio B. (sanshine)


Lesenswert?

Manfred P. schrieb:

> Ich bin etwas irritiert, was der 1K-Widerstand an D11 soll.
>
Soweit ich das verstanden habe dürfen auf dem Datenpin Rx vom DFPlayer 
keine 5V anliegen. Daher muss da ein 1k Ohm Widerstand rein. Ich habe 
nun auch auf dem Tx einen reingemacht aber dank deiner Frage habe ich 
nicht nur nachgemacht sondern nachgedacht und der am Tx macht keinen 
Sinn, da der Arduino das Signal vom DFPlayer auch ohne Widerstand 
verkraftet.

> Dann frage ich mal Google nach der Library und finde diese bei
> Arduino.cc - hängt an. In dieser sind Programmbeispiele "examples" und
> dort fällt mir auf, dass diese andere Datenleitungen verwenden.
>
>
1
#include <SoftwareSerial.h>
2
> SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
3
> #define FPSerial softSerial
4
>
Danke dir!

> In den Beispielen steht UNO, aber der Nano verhält sich exakt gleich.
Das kann ich bestätigen.

> Ich würde jetzt die Beispiele durchtesten, bevor ich einen eigenen
> Programmcode baue!
Ja das teste ich mal. Mir war so als ob der Arduino feste Seriellports 
hat, aber man die aus irgendeinem Grund nicht nutzen soll und 
stattdessen mit diesem softwareserial arbeitet und dann Pin 10 und 11 
nimmt. Genaueres habe ich nicht verstanden, ist mir auch egal welcher 
Pin, Hauptsache es läuft bald...

: Bearbeitet durch User
von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Manfred P. schrieb:
> Ich würde jetzt die Beispiele durchtesten, bevor ich eigenen
> Programmcode baue!

Ich habe den GetStarted tatsächlich schon mal getestet bzw. testen 
wollen. Der gibt mir beim Überprüfen folgenden Fehler:
1
GetStarted.ino:33:21: Fehler: Redefinition von »DFRobotDFPlayerMini myDFPlayer«
2
sketch_nov20a.ino:8:21: Anmerkung: »DFRobotDFPlayerMini myDFPlayer« previously declared here
3
GetStarted.ino: In Funktion »void setup()«:
4
GetStarted.ino:36:6: Fehler: Redefinition von »void setup()«
5
sketch_nov20a.ino:12:6: Anmerkung: »void setup()« previously defined here
6
GetStarted.ino:30:18: Fehler: »Serial1« wurde in diesem Gültigkeitsbereich nicht definiert
7
GetStarted.ino:41:3: Anmerkung: bei Substitution des Makros »FPSerial«
8
GetStarted.ino: In Funktion »void loop()«:
9
GetStarted.ino:64:6: Fehler: Redefinition von »void loop()«
10
sketch_nov20a.ino:33:6: Anmerkung: »void loop()« previously defined here

Der Code
1
#include <DFRobotDFPlayerMini.h>
2
#include "DFRobotDFPlayerMini.h"
3
#include "Arduino.h"
4
#include "SoftwareSerial.h"
5
#include "DFRobotDFPlayerMini.h"
6
7
SoftwareSerial mySoftwareSerial(4, 5); // RX, TX
8
DFRobotDFPlayerMini myDFPlayer;
9
int ausloeser = 9;  //Bewegungsmelder Pin 9
10
int daistwer; 
11
12
void setup()
13
{
14
  mySoftwareSerial.begin(9600);
15
  Serial.begin(115200);
16
  pinMode(ausloeser, INPUT);
17
  Serial.println();
18
  Serial.println(F("DFRobot DFPlayer Mini"));
19
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
20
  
21
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
22
    Serial.println(F("Unable to begin:"));
23
    Serial.println(F("1.Please recheck the connection!"));
24
    Serial.println(F("2.Please insert the SD card!"));
25
    while(true){
26
      delay(0); // Code to compatible with ESP8266 watch dog.
27
    }
28
  }
29
  Serial.println(F("DFPlayer Mini online."));
30
  myDFPlayer.volume(16);  //setze lautstaerke von 0 bis 30
31
}
32
33
void loop()
34
{
35
  delay(5000);
36
  daistwer = digitalRead(ausloeser);
37
  Serial.println(F("wert bewegung: "));
38
  Serial.println(daistwer);
39
  if (daistwer == 1){
40
  myDFPlayer.play(1);  //Play the first mp3
41
  delay(25000);
42
  }
43
}
gibt mir keinen Fehler, aber läuft auch nicht, obwohl nun die Pins auf 
Rx-D4 und Tx-D5 geändert wurden. Ich bekomme nur ein kleines Knacken vom 
Lautsprecher beim Übertragen.

Es gibt noch Tx1 und Rx0 auf dem Arduino als Pin. Kann man die auch 
verwenden?

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Man kann den auch erstmal nur mit 2 Tasten bedienen:

    Ein Taster verbindet den IO1 bei Betätigung mit GND. Damit kann man 
zum vorherigen Titel springen (PREV) oder durch längeres Betätigen die 
Lautstärke verringern (Vol-).
    Ein weiterer Tater verbindet den IO2 bei Betätigung mit GND. Damit 
kann man zum nächsten Titel springen (NEXT) oder durch längeres 
Betätigen die Lautstärke erhöhen (Vol+).

von Gio B. (sanshine)


Lesenswert?

Peter D. schrieb:
> Man kann den auch erstmal nur mit 2 Tasten bedienen:
>
>     Ein Taster verbindet den IO1 bei Betätigung mit GND. Damit kann man
> zum vorherigen Titel springen (PREV) oder durch längeres Betätigen die
> Lautstärke verringern (Vol-).
>     Ein weiterer Tater verbindet den IO2 bei Betätigung mit GND. Damit
> kann man zum nächsten Titel springen (NEXT) oder durch längeres
> Betätigen die Lautstärke erhöhen (Vol+).

Ja, das stimmt. Nur momentan läuft der DFPlayer nicht an, wenn er vom 
Arduino gestartet werden soll. Ich wäre schon mal froh, wenn der 
DFPlayer anfängt zu spielen, wenn der Arduino Strom bekommt.

von Helmut -. (dc3yc)


Lesenswert?

Schon mal bei DFRobot geschaut, wie die die Initialisierung richtig 
machen?
https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

von Gio B. (sanshine)


Lesenswert?

Helmut -. schrieb:
> Schon mal bei DFRobot geschaut, wie die die Initialisierung richtig
> machen?
> https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

die Webseite hatte ich auch schon angeschaut und jetzt gerade nochmal 
durchgelesen. Leider konnte ich nichts zum Thema Initialisieren finden. 
Hast du etwas dazu gelesen?
Das Einzige ist der Teil im Code, den habe ich aber bereits drinnen in 
"meinem" Code:
1
Serial.println();
2
  Serial.println(F("DFRobot DFPlayer Mini"));
3
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));

: Bearbeitet durch User
von Hugo H. (hugo_hu)


Lesenswert?

Suche hier mal den Thread "MP3 Player für Kinder" oder ähnlich - dort 
sind die Grundlagen schön beschrieben - auch was die erforderliche 
Ordner-Struktur angeht.

von Peter D. (peda)


Lesenswert?

Gio B. schrieb:
> Nur momentan läuft der DFPlayer nicht an, wenn er vom
> Arduino gestartet werden soll.

Deswegen sollst Du es ja erstmal mit Tasten probieren, also ganz ohne 
irgendwelche Programme.

von Gio B. (sanshine)


Lesenswert?

Peter D. schrieb:
> Gio B. schrieb:
>> Nur momentan läuft der DFPlayer nicht an, wenn er vom
>> Arduino gestartet werden soll.
>
> Deswegen sollst Du es ja erstmal mit Tasten probieren, also ganz ohne
> irgendwelche Programme.

Das funktioniert. Wenn ich io1 mit Masse beides vom DFPlayer verbinde, 
spielt er die mp3 ab und auch die Lautstärke lässt sich ändern.

von Gio B. (sanshine)


Lesenswert?

Hugo H. schrieb:
> Suche hier mal den Thread "MP3 Player für Kinder" oder ähnlich - dort
> sind die Grundlagen schön beschrieben - auch was die erforderliche
> Ordner-Struktur angeht.

Der Order auf der SD karte ist korrekt so und wird vom DFPlayer auch 
erkannt: MP3 als Ordner und im Ordner dann die Dateien 0001.mp3 0002.mp3 
usw.

von Vax W. (Gast)


Lesenswert?

Offensichtlich funktioniert dieser DFPlayer (sowohl prinzipiell und das 
Exemplar das bei Dir auf dem Tisch liegt). Du schrubst auch: "er spielt 
die mp3 ab". Das spielt die mp3 ab die Du ausgewaehlt hast -> Dein 
DFPlayer ist vermutlich OK.

Ich wuerde jetzt nochmal wie folgt vorgehen: 
https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299, das Ding gemaess 
"Connection Diagram" verbinden (nur Arduino, 1kR, Player). Und jetzt von 
der oben genannten Webseite die original Library und das 
Beispielprogramm laden. Immer zuerst beim Hersteller gucken.

Der Hinweis mit der orginal-Firmware (oder Library) ist auch ernst 
gemeint, vielleicht hast Du eine alte oder modifizierte Version.

Ich habe noch einmal nachgeguckt: nano und Uno sind vom Pinout 
kompatibel.

Auch banal: Du hast eine richtige Spannungsquelle? Nicht z.B. ein ganz 
duennes USB-Kaebelchen wo es am Ende nur 4V rauskommt?

Gruesse

von Hugo H. (hugo_hu)


Lesenswert?

Gio B. schrieb:
> Der Order auf der SD karte ist korrekt so und wird vom DFPlayer auch
> erkannt: MP3 als Ordner und im Ordner dann die Dateien 0001.mp3 0002.mp3
> usw.

Dann schau doch hier nochmal nach:

https://discourse.voss.earth/t/dfplayer-verschiedene-versionen/681/5

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Ja, es gibt verschiedene SW-Versionen vom DF-Player. Jeder hat seine 
"Macken" woanders. Die lassen sich durchaus umgehen, wenn man die 
Version des DF-Players kennt.

Von daher sei dem TO dringend angeraten, erstmal die Version abzufragen. 
Das geht mit dem Kommando 0x46.

von Helmut -. (dc3yc)


Lesenswert?

Gio B. schrieb:
> die Webseite hatte ich auch schon angeschaut und jetzt gerade nochmal
> durchgelesen. Leider konnte ich nichts zum Thema Initialisieren finden.
> Hast du etwas dazu gelesen?
> Das Einzige ist der Teil im Code, den habe ich aber bereits drinnen in
> "meinem" Code:

Das ist nicht die Initialisierung. Die erfolgt eine Zeile tiefer.

  if (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) 
{  //Use FPserial to communicate with mp3.

Hast du auch zwei serielle Schnittstellen richtig initialisiert?

Am besten ist es immer, erst mal den originalen Herstellercode 
auszuprobieren und dann eigene Anpassungen zu machen.

: Bearbeitet durch User
von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Vax W. schrieb:
> Ich wuerde jetzt nochmal wie folgt vorgehen:
> https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299, das Ding gemaess
> "Connection Diagram" verbinden (nur Arduino, 1kR, Player). Und jetzt von
> der oben genannten Webseite die original Library und das
> Beispielprogramm laden. Immer zuerst beim Hersteller gucken.
Hallo Vax,
in dem Diagramm sind die Pins vom Rx auf 11 Arduino und Tx auf 10 
Arduino.
In dem Code steht aber:
1
#include <SoftwareSerial.h>
2
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);

Ich bin kein Experte aber vielleicht wurde da ein Fehler gemacht?

von Gio B. (sanshine)


Lesenswert?

Hier ist übrigens irgendein Mensch mit Problemen und zuviel Zeit, der 
alle Beiträge auf -1 setzt. Das Forum hier ist das beste, das es gibt, 
aber leider verirren sich auch solche Menschen hier.

von Gio B. (sanshine)


Lesenswert?

Helmut -. schrieb:

> Hast du auch zwei serielle Schnittstellen richtig initialisiert?

Wie macht man das?

von Gio B. (sanshine)


Lesenswert?

Frank M. schrieb:
> Von daher sei dem TO dringend angeraten, erstmal die Version abzufragen.
> Das geht mit dem Kommando 0x46.

Ich habe den Arduino an den DFPlayer angeschlossen (mittlerweile 
verlötet, damit wirklich alles leitet und bin auf den Serial Monitor. 
Dort kam wieder der Init-Fehler. Ich habe dann 0x46 eingegeben und auf 
Senden gedrückt. Da kam nichts, aber das ist das einzige, was ich sehe, 
wo ich einen Befehl schicken kann. Kannst du mir sagen, wo ich die 
Version abfragen kann?

von Gio B. (sanshine)


Lesenswert?

Vax W. schrieb:

> Der Hinweis mit der orginal-Firmware (oder Library) ist auch ernst
> gemeint, vielleicht hast Du eine alte oder modifizierte Version.
Ich habe nach Firmware Updates im Zusammenhang mit DFPlayer gesucht, 
aber nichts Brauchbares gefunden. Ich wüsste auch nicht, wie man das 
aufspielen sollte, da man ja nur mittels Arduino darauf Zugriff hat und 
die Verbindung ja irgendwie nicht geht.

von Gio B. (sanshine)


Lesenswert?

Vax W. schrieb:
> Auch banal: Du hast eine richtige Spannungsquelle? Nicht z.B. ein ganz
> duennes USB-Kaebelchen wo es am Ende nur 4V rauskommt?
ich habe den Arduino testweise an ein 5V 2A Netzteil gehängt, aber auch 
da tut sich nichts. Die Verbindungen zwischen den Pins habe ich 
mittlerweie auf einer Lochplatine erstellt. Ich hatte gelesen, dass 
Leute mit denselben Problemen Wackelkontakte hatten oder Probleme mit 
dem Breadboard. Ich hatte zwar bereits durchgemessen von Pin zu Pin, 
aber nun ist es sicher gut verbunden mit dickeren Kabeln und kurzen 
Kabeln.
Und achja: ich habe dem Arduino 5V via USB gegeben und zwischen 5V und 
GND Pin vom DFPlayer gemessen: 4,8V. Passt also auch.

von Vax W. (Gast)


Lesenswert?

Gio B. schrieb:
> Vax W. schrieb:
> Hallo Vax,
> in dem Diagramm sind die Pins vom Rx auf 11 Arduino und Tx auf 10
> Arduino.
> In dem Code steht aber:
>
1
> #include <SoftwareSerial.h>
2
> SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
>
> Ich bin kein Experte aber vielleicht wurde da ein Fehler gemacht?

Wir haben eine Familienfreundin, die wuerde jetzt sagen: "Da hast Du 
recht! Da hast Du SO recht!"

Ich wuerde sagen:
>
1
> #include <SoftwareSerial.h>
2
> SoftwareSerial softSerial(/*rx =*/10, /*tx =*/11);

Und das ist genau der Zustand am Anfang (Dein erster Post). Ich bin 
jetzt ein wenig ratlos.

von Gio B. (sanshine)


Lesenswert?

Vax W. schrieb:
Moment, du sagst:
>>
1
>> #include <SoftwareSerial.h>
2
>> SoftwareSerial softSerial(/*rx =*/10, /*tx =*/11);
Bei mir im Code steht aber
1
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
Ist da der Fehler?

von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Was müsste ich denn im Code ändern, wenn ich den Hardware Serial Port 
nutzen will? Also die umkreisten Pins im Anhang.

von Helmut -. (dc3yc)


Lesenswert?

Gio B. schrieb:
> Helmut -. schrieb:
>
>> Hast du auch zwei serielle Schnittstellen richtig initialisiert?
>
> Wie macht man das?

Hast du schon mal den von mir verlinkten Originalcode laufen lassen? Da 
werden zwei serielle Schnittstellen verwendet. Eine Hard-serielle fü die 
Monitorausgaben und eine Soft-serial für die Steuerung des MP3-Players.
Ansonsten: Versuch macht Kluch. Frage: Wie hat man das früher ohne 
Internet und Foren hinbekommen, dass es lief? Man hat nachgedacht und 
ausprobiert!

von Gio B. (sanshine)


Lesenswert?

Helmut -. schrieb:
>Frage: Wie hat man das früher ohne
> Internet und Foren hinbekommen, dass es lief? Man hat nachgedacht und
> ausprobiert!

Damals gab es keine Arduino mit DFPlayer. Aber im Ernst, ich habe früher 
viel selber gemacht und gestetet. Momentan zerbreche ich mir an einer 
Hintergrundbeleuchtung von einem Monitor den Kopf, weil die Verkabelung 
so durcheinander aufgebaut wurde. Da merkte ich: Es ist nicht mehr 1980, 
wo man mit 2 Drähten die Sachen zum Laufen brachte.

von Vax W. (Gast)


Lesenswert?

Ich dachte, Du haettest jetzt die Hersteller-Software einfach mit 
Copy&Paste kopiert (die haben so gar einen Knopf "COPY" bei ihrem Code).

Erstmal was der Hersteller schreibt.

Und Du weisst schon, dass ZWEI serielle Schnittstellen (eine fuer die 
Serial-Monitor und die andere fuer die Kommunikation mit den Player) 
notwendig sind?

von Gio B. (sanshine)


Lesenswert?

Vax W. schrieb:
> Ich dachte, Du haettest jetzt die Hersteller-Software einfach mit
> Copy&Paste kopiert (die haben so gar einen Knopf "COPY" bei ihrem Code).
>
> Erstmal was der Hersteller schreibt.
>
> Und Du weisst schon, dass ZWEI serielle Schnittstellen (eine fuer die
> Serial-Monitor und die andere fuer die Kommunikation mit den Player)
> notwendig sind?
Nein, das wusste ich nicht. Ich bin wirklich blutiger Anfänger mit 
grossen Kopfschmerzen mittlerweile.
Wie was muss ich nun tun? Ich sehe überhaupt nicht mehr durch, tut mir 
leid.

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Was müsste ich denn im Code ändern, wenn ich den Hardware Serial Port
> nutzen will?

Das willst du bestimmt nicht weil diese beiden Pin mit dem USB-UART 
verbunden sind und sowohl zum Programmieren als auch zum Debuggen 
(serial Monitor) gebraucht werden.

von Gio B. (sanshine)


Lesenswert?

Also auf dieser Seite:
> https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299, das Ding gemaess
gibt es einen Getstarted Code. Den habe ich kopiert und ins Arduino IDE 
eingefügt. Dann speichern udn dann auf Code prüfen.
Es ergibt:
Fehler beim Kompilieren:
sketch_nov21b.ino: In Funktion »void setup()«:
sketch_nov21b.ino:34:18: Fehler: »Serial1« wurde in diesem 
Gültigkeitsbereich nicht definiert
sketch_nov21b.ino:45:3: Anmerkung: bei Substitution des Makros 
»FPSerial«

von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:
> Gio B. schrieb:
>> Was müsste ich denn im Code ändern, wenn ich den Hardware Serial Port
>> nutzen will?
>
> Das willst du bestimmt nicht weil diese beiden Pin mit dem USB-UART
> verbunden sind und sowohl zum Programmieren als auch zum Debuggen
> (serial Monitor) gebraucht werden.

Das heisst der serial Monitor müsste funktionieren, wenn der Arduino via 
USB mit dem PC verbunden ist?

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Das heisst der serial Monitor müsste funktionieren, wenn der Arduino via
> USB mit dem PC verbunden ist?

Ja.

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Fehler: »Serial1« wurde in diesem Gültigkeitsbereich nicht definiert

Vielleicht musst du "UNO" durch "NANO" ersetzen.

von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:
> Gio B. schrieb:
>> Fehler: »Serial1« wurde in diesem Gültigkeitsbereich nicht definiert
>
> Vielleicht musst du "UNO" durch "NANO" ersetzen.

Also
1
#if (defined(ARDUINO_AVR_UNO) || defined(ESP8266))   // Using a soft serial port
durch
1
#if (defined(ARDUINO_AVR_NANO) || defined(ESP8266))   // Using a soft serial port
ersetzen?

von Vax W. (Gast)


Lesenswert?

Ja.

von Gio B. (sanshine)


Lesenswert?

Vax W. schrieb:
> Ja.

ergibt wieder:
sketch_nov21b.ino: In Funktion »void setup()«:
sketch_nov21b.ino:34:18: Fehler: »Serial1« wurde in diesem 
Gültigkeitsbereich nicht definiert
sketch_nov21b.ino:45:3: Anmerkung: bei Substitution des Makros 
»FPSerial«

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Also ... durch ... ersetzen?

Probiere es doch einfach! Wovor hast du Angst?

von Vax W. (Gast)


Lesenswert?

Gio B. schrieb:
> Vax W. schrieb:
>> Ja.
>
> ergibt wieder:
> sketch_nov21b.ino: In Funktion »void setup()«:
> sketch_nov21b.ino:34:18: Fehler: »Serial1« wurde in diesem
> Gültigkeitsbereich nicht definiert
> sketch_nov21b.ino:45:3: Anmerkung: bei Substitution des Makros
> »FPSerial«

Und Du musst natuerlich nano als Board einstellen...

von Steve van de Grens (roehrmond)


Lesenswert?

Nächster Versuch: Entferne die Makros vor und hinter diesen Zeilen:
1
#include <SoftwareSerial.h>
2
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
3
#define FPSerial softSerial

Also von diesem Absatz sollen diese beiden Zeilen übrig bleiben.

Der DfPlayer gehört demnach an Pin 4 und 5.

: Bearbeitet durch User
von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:
> Gio B. schrieb:
>> Also ... durch ... ersetzen?
>
> Probiere es doch einfach! Wovor hast du Angst?

nicht wirklich Angst aber 1. will ich keine Fehler machen und daduch 
dann eure Zeit weiter verschwenden und 2. will ich nicht, dass es später 
heisst nun ist der Arduino defekt, kauf erstmal einen neuen. Also wieder 
Zeit...

von Gio B. (sanshine)


Lesenswert?

Vax W. schrieb:

> Und Du musst natuerlich nano als Board einstellen...

Gut dass du das erwähnst, aber das habe ich. ich kann ja auch den Code 
auf den Ardiuno schicken. Nicht jetzt diesen mit Fehler, aber andere 
gingen. Dann leuchten alle lampen wild vom Arduino und am Ende rauscht 
es aus den Lautsprechern.

von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:
> Nächster Versuch: Entferne die Makros vor und hinter diesen Zeilen:
>
>
1
> #include <SoftwareSerial.h>
2
> SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
3
> #define FPSerial softSerial
4
>
>
> Also von diesem Absatz sollen diese beiden Zeilen übrig bleiben.
>
> Der DfPlayer gehört demnach an Pin 4 und 5.

Tut imr leid wenn ich nochmal nachfrage, aber du sagst "beide". ich sehe 
aber 3 Zeilen.
Soll ich alles andere ausser diese 3 Zeilen löschen, d.h. der komplette 
Code besteht nur noch aus den 3 Zeilen oder  wie soll der finale Code 
aussehen?

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Tut imr leid wenn ich nochmal nachfrage, aber du sagst "beide". ich sehe
> aber 3 Zeilen.
> Soll ich alles andere ausser diese 3 Zeilen löschen,

ja, aber nur in diesem einen Absatz.

Kann es sein, dass du null Ahnung von der Programmiersprache hast? Dann 
musst du sie dringend lernen, aber nicht mit so einem komplexen Projekt. 
Kaufe dir ein Buch über Arduino oder gehe die Einsteiger Tutorials von 
Arduino.cc der Reihe nach durch. Gehe danach ein Lehrbuch über C++ 
durch.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Gio B. schrieb:
> in dem Diagramm sind die Pins vom Rx auf 11 Arduino und Tx auf 10
> Arduino.
> In dem Code steht aber:#include <SoftwareSerial.h>
> SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
> Ich bin kein Experte aber vielleicht wurde da ein Fehler gemacht?

So langsam platzt mir der *****. Wenn im Programmcode 4 und 5 steht, 
genügt die Intelligenz eines Toastbrotes, zu erkennen, dass Hardware an 
10 - 11 nicht dazu passt.

Ich hatte gestern den Vorschlag gemacht, anstatt eigener Software die 
Arduino-Beispiele zu testen. Dass jemand nicht in der Lage ist, die 
Verdrahtung anzupassen, übersteigt mein Vorstellungsvermögen.

Gio B. schrieb:
> Download.png
> 2,6 MB

Wie wäre das, auch mal Forum - Bildformate zu beachten? 2,6Mb für ein 
schlechtes Bild geht mal garnicht, das muß jpg sein!

Vax W. schrieb:
> Und Du musst natuerlich nano als Board einstellen...

Schwachsinn^3!

In der Beispielsoftware wird zwischen ESP und UNO unterschieden. 
Schreibt er da Nano hin, läuft die Verzweigung nach irgendwo.

Uno und Nano benutzen den gleichen µC und haben gleiche Pin-Nummern. 
Alles, was für den Uno erzeugt wurde, funktioniert auch auf dem Nano, 
also bleibt da Uno stehen!

von Steve van de Grens (roehrmond)


Angehängte Dateien:

Lesenswert?

Das editierte Beispielprogramm ohne störende Makros.

von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:
> Gio B. schrieb:
>> Tut imr leid wenn ich nochmal nachfrage, aber du sagst "beide". ich sehe
>> aber 3 Zeilen.
>> Soll ich alles andere ausser diese 3 Zeilen löschen,
>
> ja, aber nur in diesem einen Absatz.
>
okay, der code sieht nun so aus:
1
#include "Arduino.h"
2
#include "DFRobotDFPlayerMini.h"
3
4
#include <SoftwareSerial.h>
5
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
6
#define FPSerial softSerial
7
8
DFRobotDFPlayerMini myDFPlayer;
9
void printDetail(uint8_t type, int value);

kompilieren ging durch. Darf ich das so an den Arduino schicken?

> Kann es sein, dass du null Ahnung von der Programmiersprache hast? Dann
> musst du sie dringend lernen, aber nicht mit so einem komplexen Projekt.
> Kaufe dir ein Buch über Arduino oder gehe die Einsteiger Tutorials von
> Arduino.cc der Reihe nach durch. Gehe danach ein Lehrbuch über C++
> durch.
Ich habe null Ahnung vom Arduino und ich will das auch nicht lernen. Ich 
will meiner frau sone MP3 Box basteln und dann will ich von Arduino 
nichts mehr hören, wenn ich ehrlich bin. Vor allem wenn ich merke, wie 
kompliziert das ist. Vor allem: entweder läuft es oder nicht. Es gibt 
quasi kein wirkliches fehlerbeheben.
Bzgl. Programmieren: ganz so 0 Erfahrung habe ich nicht. Sonst wäre mir 
der Fehler auf der Herstellerseite nicht aufgefallen, aber ich kann kein 
C++, das stimmt.

von Steve van de Grens (roehrmond)


Lesenswert?

Manfred P. schrieb:
> Uno und Nano benutzen den gleichen µC und haben gleiche Pin-Nummern.
> Alles, was für den Uno erzeugt wurde, funktioniert auch auf dem Nano,
> also bleibt da Uno stehen!


Werfe mal bitte einen Blick in
https://github.com/arduino/ArduinoCore-avr/blob/63092126a406402022f943ac048fa195ed7e944b/boards.txt#L208
und
https://github.com/arduino/ArduinoCore-avr/blob/63092126a406402022f943ac048fa195ed7e944b/boards.txt#L104

Die beiden Boards haben nicht die gleiche Kennung. Davor kommt noch das 
Präfix "ARDUINO_".

Siehe auch 
https://arduino.stackexchange.com/questions/19892/list-of-arduino-board-preprocessor-defines

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Darf ich das so an den Arduino schicken?

Ich habe leider kein Gesetz gefunden, welches diese Vorgehensweise 
ausdrücklich erlaubt. Du musst selbst entscheiden, ob du diesen extrem 
waghalsigen Schritt wagen willst. Vielleicht fragst du vorher noch bei 
der Allianz Versicherung, ob sie dich dabei stützen können.

:-)

> entweder läuft es oder nicht. Es gibt quasi kein wirkliches fehlerbeheben.

Das ist exakt die falsche Einstellung zum Programmieren. So kann es 
unmöglich erfolgreich enden.

> Ich habe null Ahnung vom Arduino und ich will das auch nicht lernen.

Ja sorry, aber dann solltest du den Kram in die Mülltonne werfen und 
dich erquicklicheren Dingen zuwenden.

: Bearbeitet durch User
von Helmut -. (dc3yc)


Lesenswert?

Steve van de Grens schrieb:
> Vielleicht fragst du vorher noch bei
> der Allianz Versicherung, ob sie dich dabei stützen können.

Der Mann ist tot, die Witwe kichert, denn er war Allianz versichert.

Also ich bin raus, bei soviel Ignoranz und Nicht-Können-Wollens des TO.

von Gio B. (sanshine)


Lesenswert?

Helmut -. schrieb:
> Steve van de Grens schrieb:
>> Vielleicht fragst du vorher noch bei
>> der Allianz Versicherung, ob sie dich dabei stützen können.
>
> Der Mann ist tot, die Witwe kichert, denn er war Allianz versichert.
>
> Also ich bin raus, bei soviel Ignoranz und Nicht-Können-Wollens des TO.

Ich probiere seit etwa 2 Wochen. Das Forum hier ist der letzte Schritt. 
Ich habe kein Bock mehr, ja. Aber ich bin nicht ignorant. Alles was ich 
gelesen habe und getestet habe, hat zu nichts geführt. Bissl Frust ist 
da denke ich menschlich.

von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:
> Gio B. schrieb:
>> Darf ich das so an den Arduino schicken?
>
> Ich habe leider kein Gesetz gefunden, welches diese Vorgehensweise
> ausdrücklich erlaubt. Du musst selbst entscheiden, ob du diesen extrem
> waghalsigen Schritt wagen willst. Vielleicht fragst du vorher noch bei
> der Allianz Versicherung, ob sie dich dabei stützen können.
>
> :-)
ich war so mutig und habe es getan bzw wollte es, aber Fehler:
1
Binäre Sketchgröße: 6’720 Bytes (von einem Maximum von 30’720 Bytes)
2
processing.app.SerialNotFoundException: Der serielle Port '/dev/ttyUSB1' wurde nicht gefunden. Haben Sie den richtigen aus dem Menü Tools > Serieller Port ausgewählt?
3
  at processing.app.Serial.<init>(Serial.java:192)
4
  at processing.app.Serial.<init>(Serial.java:77)
5
  at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:77)
6
  at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:175)
7
  at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
8
  at processing.app.Sketch.upload(Sketch.java:1671)
9
  at processing.app.Sketch.exportApplet(Sketch.java:1627)
10
  at processing.app.Sketch.exportApplet(Sketch.java:1599)
11
  at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
12
  at java.base/java.lang.Thread.run(Thread.java:829)
Serieller Port ist nun ausgegraut im Menü. Ich kann ihn nicht (mehr) 
auswählen.

von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Muss ich hier noch was bestimmtes auswählen?

von Steve van de Grens (roehrmond)


Lesenswert?

Du hast immer noch nicht dein Board ausgewählt (was wohl auch der Grund 
ist, warum das Makros trotz Änderung von UNO zu NANO versagte). Zum 
Programmieren dieses Boardes brauchst du keinen "Programmer", denn du 
nutzt ja das USB Kabel und den vorinstallierten Bootloader.

Natürlich musst du auch den richtigen seriellen Port einstellen, der 
deinem  Nano beim Einstecken zugewiesen wurde. Als root Benutzer kannst 
du den Befehl sudo dmesg -T direkt nach dem Anstecken des USB Kabels 
benutzen, um den Namen des virtuellen COM Portes heraus zu finden. 
Normale (nicht root) Benutzer müssen Mitglied der Gruppe "dialout" sein, 
um diese Ports benutzen zu dürfen.

Das steht alles in den Anfänger Tutorials zu Arduino. Ich sehe wenig 
Sinn darin, diese für dich persönlich nochmal neu zu schreiben. Arbeite 
die bereits vorhandenen Anleitungen der Reihe nach durch, um den Umgang 
mit dem System kennen zu lernen.

: Bearbeitet durch User
von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Steve van de Grens schrieb:
> Du hast immer noch nicht dein Board ausgewählt (was wohl auch der Grund
> ist, warum das Makros trotz Änderung von UNO zu NANO versagte).
Ich glaube das ist aber ausgewählt. In der Liste wird der Nano aber nur 
sichtbar wenn ich mit der Maus beim Eintrag Nano bin. Ich nehme an das 
ist ein Bug wegen Linux oder so. Aber der Nano ist ausgewählt oder?

> Zum
> Programmieren dieses Boardes brauchst du keinen "Programmer", denn du
> nutzt ja das USB Kabel und den vorinstallierten Bootloader.
Programmer ist klar aber Bootloader bin ich nicht sicher weil da 
Bootloader installieren steht. heisst das dass der noch nicht 
installiert ist entgegen deiner Vermutung?

> Natürlich musst du auch den richtigen seriellen Port einstellen, der
> deinem  Nano beim Einstecken zugewiesen wurde. Als root Benutzer kannst
> du den Befehl sudo dmesg -T direkt nach dem Anstecken des USB Kabels
> benutzen, um den Namen des virtuellen COM Portes heraus zu finden.
> Normale (nicht root) Benutzer müssen Mitglied der Gruppe "dialout" sein,
> um diese Ports benutzen zu dürfen.
Der COM port ist klar und wurde durch dmesg bestätigt: ttyUSB0
nur kann ich den nicht auswählen, wenn der Eintrag in IDE grau ist.

> Das steht alles in den Anfänger Tutorials zu Arduino. Ich sehe wenig
> Sinn darin, diese für dich persönlich nochmal neu zu schreiben. Arbeite
> die bereits vorhandenen Anleitungen der Reihe nach durch, um den Umgang
> mit dem System kennen zu lernen.
Das stimmt, das sollst du auch nicht. Ich will nur dieses teil zum 
Laufen bringen ohne dafür die Architektur des Arduinos verstehen zu 
wollen. Soll nicht ignorant klingen, aber das Teil ist für mich nur 
Mittel zum Zweck und ich will damit keine weiteren Projekte machen. Ich 
will dass der Arduino den DFPlayer startet und später dann per PIR. 
Sollte machbar sein, aber scheint vielen auf der Welt Probleme zu 
bereiten...

: Bearbeitet durch User
von Gio B. (sanshine)


Lesenswert?

okay, Der teilweise gelöschte Originalcode: Kompilieren lief. Auswahl 
vom Port auch, Senden an den Arduino auch. Abspielen tut er allerdings 
nichts. Müsste ja direkt nach dem Rüberschicken des Codes von alleine 
starten oder muss ich noch was tun?

von Manfred P. (pruckelfred)


Lesenswert?

Gio B. schrieb:
> Ich habe null Ahnung vom Arduino und ich will das auch nicht lernen. Ich
> will meiner frau sone MP3 Box basteln und dann will ich von Arduino
> nichts mehr hören, wenn ich ehrlich bin.

Dann verschwinde hier! Arduino ist die mit weitem Abstand simpelste 
Umgebung, mit Mikrocontrollern zu basteln.

Kümmere Dich um Deine Frau, vielleicht ist die ja glücklicher, wenn Du 
mal Mittagessen kochen oder ein Brot backen kannst.

Steve van de Grens schrieb:
> Die beiden Boards haben nicht die gleiche Kennung. Davor kommt noch das
> Präfix "ARDUINO_".

Das ist vollkommen egal. Alle UNO-Beispiele habe ich klaglos auf einen 
Nano laden können und die spielen. Ich habe ein Uno-Bastelbord und 
schiebe den Kram später zum Nano, ohne Inkompatibilitäten zu erleben. 
Wenn Strom gespart werden soll, ist auch der ProMini kompatibel.

Gio B. schrieb:
> Muss ich hier noch was bestimmtes auswählen?

Du willst uns verscheißern!

Zu Beginn erkennt Deine Software den DFPlayer nicht, und jetzt kannst Du 
diese nicht einmal mehr auf den Nano schieben?

So perfekt hat hier noch niemand getrollt.

von Gio B. (sanshine)


Lesenswert?

Manfred P. schrieb:
> Zu Beginn erkennt Deine Software den DFPlayer nicht, und jetzt kannst Du
> diese nicht einmal mehr auf den Nano schieben?
Beides stimmt nicht. Der Serial Monitor zeigt immer noch:
DFRobot DFPlayer Mini Demo
Initializing DFPlayer ... (May take 3~5 seconds)
Unable to begin:
1.Please recheck the connection!
2.Please insert the SD card!

Und den gekürzten Code konnte ich auf den Arduino schieben, aber der 
Player startet immer noch nicht.

Der Rest, den du schreibst, ist Unsinn. Wenn du nicht helfen 
willst/kannst, dann respektiere ich das. Bitte aber keinen Frust hier 
abladen, den habe ich genug dank meinem Problem.

: Bearbeitet durch User
von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Bitte aber keinen Frust hier abladen, den habe ich genug dank meinem
> Problem.

Das nicht Lesen wollen?
Oder das nicht verstehen wollen?

Alles was du an hilfe brauchst steht bereits hier!

Verkabel das ding RICHTIG mit deinem arduino. Und zwar so wie im 
Beispiel vorgegeben, nimm das Beispiel, spiel es auf und teste.
Man wählt die Pins entweder selbst und kann dies im Code umsetzen oder 
bleibt bei den im Beispiel genannten Pins, aber verkabelt das Teil nicht 
einfach irgendwie und denkt das müsse laufen!

Wenn du nicht ein mal das hinbekommst, sehe ich schwarz für dein 
Geschenk.

Ich bezweifle das du es hinbekommst das auslösen des PIR als "Play" zu 
integrieren weil du ja nicht wissen willst wie es funktioniert.

von Joachim B. (jar)


Lesenswert?

Helmut -. schrieb:
> Der Mann ist tot, die Witwe kichert,

war das die jugendfreie Version?
Ich kenne den anders

von Helmut -. (dc3yc)


Lesenswert?

Joachim B. schrieb:
> Helmut -. schrieb:
>> Der Mann ist tot, die Witwe kichert,
>
> war das die jugendfreie Version?
> Ich kenne den anders

Dann erzähl uns deine Schmuddelversion! Ich kenne nur die.

von Gio B. (sanshine)


Lesenswert?

Kilo S. schrieb:
> Verkabel das ding RICHTIG mit deinem arduino. Und zwar so wie im
> Beispiel vorgegeben, nimm das Beispiel, spiel es auf und teste.
> Man wählt die Pins entweder selbst und kann dies im Code umsetzen oder
> bleibt bei den im Beispiel genannten Pins, aber verkabelt das Teil nicht
> einfach irgendwie und denkt das müsse laufen!
Es ist nicjt irgendwie verkabelt, es ist wie auf dem Bild des 
Herstellers verkabelt. Der Code wurde aufgespielt und läuft bei mir 
nicht.
Es ist nicht schwer, deshalb traute ich mir dieses Projekt zu.
Das meinte ich mit "es gibt keine Fehlerbehebung". Entweder es 
funktioniert oder nicht. Sowas wie Fehlercodes auslesen oder so gibt es 
anscheinend nicht. Der Nutzer in dem Fall ich ist zu dumm, so einfach 
ist das.

von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Es ist nicjt irgendwie verkabelt, es ist wie auf dem Bild des
> Herstellers verkabelt.

Dann müsste es auch funktionieren.

Gio B. schrieb:
> Unable to begin:
> 1.Please recheck the connection!

Was kapiert du an dieser Fehlermeldung nicht?

Bitte überprüfen Sie die Verbindung!

Die SD-Karte ist ja bereits richtig eingelegt, formatiert, strukturiert 
und hat passenden Inhalt. Ohne arduino geht es ja.

Also bleibt nur noch das du irgendwo in der Verkabelung oder im 
beispielcode was "verbastelt" hast.

Und wie du ohne zu verstehen den PIR auswerten willst, ohne das der 
Player wie wild An/Aus geht, ist mir auch ein Rätsel.
Der schaltet immer nur so lange (+ etwas "nachlaufzeit" ) seinen 
Digitalausgang wie er Bewegung erkennt. Die Hand davor halten löst zwar 
aus, aber er bleibt nicht ausgelöst.

Du musst dieses Verhalten also in deinem Programm berücksichtigen und 
das geht nur wenn du dir eine entsprechende "logik" dafür programmierst.

von Gio B. (sanshine)


Lesenswert?

Ich habe nochmal einen anderen Weg genutzt und alles mit einem Windows 
Rechner gemacht:
Arduino IDE 2.2.1 installiert
CH430 Treiber installiert
Arduino mit DFplayer angeschlossen
Originalcode genommen von hier:
https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299
Die Zeile
1
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
in
1
SoftwareSerial softSerial(/*rx =*/10, /*tx =*/11);
geändert
und getestet. Es gab einen Fehler.

Ich habe dann UNO in NANO geändert und es ergab keinen Fehler mehr.
Ich habe dann Upload gedrückt.

Als Fehler kam nun:
1
Der Sketch verwendet 5346 Bytes (17%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
2
Globale Variablen verwenden 391 Bytes (19%) des dynamischen Speichers, 1657 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
3
avrdude: stk500_recv(): programmer is not responding
4
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x91
5
avrdude: stk500_recv(): programmer is not responding
6
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x91
7
avrdude: stk500_recv(): programmer is not responding
8
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x91
9
avrdude: stk500_recv(): programmer is not responding
10
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x91
11
avrdude: stk500_recv(): programmer is not responding
12
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x91
13
avrdude: stk500_recv(): programmer is not responding
14
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x91
15
avrdude: stk500_recv(): programmer is not responding
16
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x91
17
avrdude: stk500_recv(): programmer is not responding
18
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x91
19
avrdude: stk500_recv(): programmer is not responding
20
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x91
21
avrdude: stk500_recv(): programmer is not responding
22
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x91
23
Fehlgeschlagenes Hochladen: Hochladefehler: exit status 1

Immerhin mal was anderes.

Ich habe den Arduino mit 2 verschiedenen USB Kabeln verbunden.

: Bearbeitet durch User
von Gio B. (sanshine)



Lesenswert?

Jetzt in der Windows Version habe ich auch mehr Optionen zum Auslesen

von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Ich habe den Arduino mit 2 verschiedenen USB Kabeln verbunden.

Aber scheinbar nie den richtigen COM Port ausgewählt...

von Kilo S. (kilo_s)


Angehängte Dateien:

Lesenswert?

Gio B. schrieb:
> Jetzt in der Windows Version habe ich auch mehr Optionen zum
> Auslesen

So ein Quatsch!

Arduino IDE ist in Java geschrieben, unabhängig vom Betriebssystem und 
hat immer den selben Funktionsumfang und bedienung!

Einziger Unterschied ist die Verwendung unterschiedlicher Versionen der 
IDE. Ich arbeite noch unter 1.8.19 und wie du siehst kann ich genau das 
gleiche auslesen wie du!

Der Fehler beim upload (und Nun wirst du am Ende vollends verwirrt sein) 
könnte auch daher rühren das du versucht hast RX/TX (verbunden mit dem 
serial Chip) anzuzapfen. Wenn da noch Kabel dran hängt gibt's dieses 
Problem auch.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Angehängte Dateien:

Lesenswert?

Gio B. schrieb:
> Aber der Nano ist ausgewählt oder?

Sieht so aus. Was mich irritiert ist, dass deine Liste ander aussieht, 
als bei mir (Arduino IDE 1.8.19). Bei mir gibt es einen "Arduino Nano" 
(exakt so geschrieben).

> weil da Bootloader installieren steht. heisst das dass der noch
> nicht installiert?

Nein. Mit dem Befehl kannst du den Bootloader installieren (egal ob 
schon drauf oder nicht). Dazu brauchst du einen Programmieradapter.

> Der COM port ist klar und wurde durch dmesg bestätigt: ttyUSB0
> nur kann ich den nicht auswählen, wenn der Eintrag in IDE grau ist.

Dann repariere das doch erst mal. Vielleicht hast du ein andere Programm 
offen, das den Port blockiert. Oder du musst mal das USB Kabel an/an 
stecken. Oder den PC rebooten. Vielleicht war dein PC zur späten Stunde 
bereits genau so müde wie ich.

> Fehlgeschlagenes Hochladen: Hochladefehler: exit status 1

Prüfe mal dein USB Kabel. Vielleicht ist es zu lang oder zu dünn, deine 
Elektronik zu versorgen.

von Gio B. (sanshine)


Lesenswert?

Danke für eure ganzen Antworten.
Meine Linux IDE Version ist die aktuellste und die hat nicht dieselben 
Funktionen wie die Windows. So sehr ich Linux liebe, aber hier ist es 
besser für mich mit Windows weiterzumachen, allein schon weil die IDE 
Version neuer ist.
Den Fehler mit
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x91
konnte ich nun beheben (tools/processor/atmega328 old bootloader)

Status jetzt ist, dass es funktioniert!

Jetzt unter Windows ging es plötzlich ganz schnell.
Einzig den Code musste ich nochmal final abändern:
SoftwareSerial softSerial(/*rx =*/11, /*tx =*/10);
D.h. Tx also Pin 3 vom DFPlayer geht auf Rx also Pin 11 vom Arduino
Tx vom DFplayer geht auf Rx vom Arduino also Pin 10.
Das war mir nie richtig klar, daher nochmal hier für andere mit 
denselben Problemen.

Fazit: mit Linux hätte ich das nie geschafft. Ich denke es liegt daran, 
dass man dort in der aktuellen Version keinen old bootloader wählen kann 
und das war denke ich das Geheimnis. Die Tx Rx Werte hatte ich nämlich 
schon unter Linux getauscht zum Testen aber ohne Erfolg.

Danke an alle, die sich hier konstruktiv eingebracht haben und die 
Nerven behalten haben. Generell finde ich es wichtig den Ton zu wahren 
und nicht nur den TO als Idioten zu sehen, selbst wenn er einer sein 
sollte.

von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Einzig den Code musste ich nochmal final abändern:
> SoftwareSerial softSerial(/rx =/11, /tx =/10);
> D.h. Tx also Pin 3 vom DFPlayer geht auf Rx also Pin 11 vom Arduino
> Tx vom DFplayer geht auf Rx vom Arduino also Pin 10.
> Das war mir nie richtig klar

Deswegen die Anleitung genau lesen.
Im Endeffekt hast du nun ein mal (Dank Software serial) löten gespart.

Aber der wahre Grund war die im Vergleich Zum Beispiel falsche 
Verdrahtung des Player.

von Steve van de Grens (roehrmond)


Angehängte Dateien:

Lesenswert?

Gio B. schrieb:
> Ich denke es liegt daran,
> dass man dort in der aktuellen Version keinen old bootloader wählen kann

Ich habe gerade mal den nightly build 2.2.2 für Linux herunter geladen, 
da sieht das so aus, wie im Anhang. In der Version 1.8.19 sieht es genau 
so aus. Es hätte mich auch schwer gewundert, wenn das unter Windows 
anders ist, als unter Linux.

Was ich nun nicht verstehe ist, warum die Auswahl des Boardes bei dir 
ganz anders aussieht und bei dir die Option für den "old" Bootloader 
fehlt. Welche Version ist das denn?

: Bearbeitet durch User
von Kilo S. (kilo_s)


Angehängte Dateien:

Lesenswert?

Steve van de Grens schrieb:
> Was ich nun nicht verstehe ist, warum die Auswahl des Boardes bei dir
> ganz anders aussieht und bei dir die Option für den "old" Bootloader
> fehlt.

Weil das unter "Processor" steht und nicht unter "Board".

von Steve van de Grens (roehrmond)


Lesenswert?

Kilo S. schrieb:
> Weil das unter "Processor" steht und nicht unter "Board".

Das ist mir klar, siehe mein Screenshot 3. Aber Gio B. meinte, dass 
diese Option in der Linux Version fehlen würde, deswegen hat er auf 
Windows gewechselt. Ich kann das nicht nachvollziehen.

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> mit Linux hätte ich das nie geschafft. Ich denke es liegt daran,
> dass man dort in der aktuellen Version keinen "old bootloader" wählen kann

Doch das kann man, und zwar schon seit Version 1.8.6 von 2018. Davor gab 
es den neuen Bootloader noch nicht, also war bei den älteren Versionen 
der "old bootloader" fest vorgegeben. Insofern ist die fehlende 
Auswahlmöglichkeit absolut sicher nicht deine Problemursache.

Gio B. schrieb:
> 2023-11-21_22-27.png

Das ist dein Beitrag mit den Screenshot, dessen Board-Auswahl mir fremd 
vorkam.

Steve van de Grens schrieb:
> Was mich irritiert ist, dass deine Liste anders aussieht,
> als bei mir (Arduino IDE 1.8.19). Bei mir gibt es einen "Arduino Nano"

Gio B. schrieb:
> Meine Linux IDE Version ist die aktuellste und die hat nicht dieselben
> Funktionen wie die Windows

Das kann nicht stimmen. Ich habe dir Screenshots der aktuellen Versionen 
1.8.19 und 2.2.2 gezeigt, die sehen ganz anders aus.

Steve van de Grens schrieb:
> Welche Version ist das denn?

Leider hast du meine Frage nach der "problematischen" Version immer noch 
nicht beantwortet. Inzwischen habe ich herausgefunden, dass die letzte 
IDE mit diesem Aussehen die Version 1.0.5 von 2013 ist.

Also eine 10 Jahre alte Version!
So viel zur Aussage "Meine Linux IDE Version ist die aktuellste".

Jetzt mal eine ernst gemeinte Frage: Willst du mich verarschen?

: Bearbeitet durch User
von Gio B. (sanshine)


Lesenswert?

Kilo S. schrieb:

> Aber der wahre Grund war die im Vergleich Zum Beispiel falsche
> Verdrahtung des Player.

Nein, tatsächlich nicht. Ich habe beide Versionen (Rx, Tx - 10,11 und 
andersherum) getestet und beides mal lief es nicht.

von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Steve van de Grens schrieb:
> Welche Version ist das denn?
im Anhang mal ein Screenshot. Ich habe Arduino mittels 
Anwendungsverwaltung installiert. Sollte dann die neuste sein. Trotzdem 
fehlt bei mir die Option mit old Bootloader. In der Windowsversion war 
sie da.

von Gio B. (sanshine)


Angehängte Dateien:

Lesenswert?

Steve van de Grens schrieb:
> Kilo S. schrieb:
>> Weil das unter "Processor" steht und nicht unter "Board".
>
> Das ist mir klar, siehe mein Screenshot 3. Aber Gio B. meinte, dass
> diese Option in der Linux Version fehlen würde, deswegen hat er auf
> Windows gewechselt. Ich kann das nicht nachvollziehen.

Processor gibt es in meiner Linux Version nicht.

von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:>
> Jetzt mal eine ernst gemeinte Frage: Willst du mich verarschen?

Nein, will ich nicht und ich wüsste auch nicht, warum ich das tun 
sollte. Soviel Negativität und Frust hier von dir und ich verstehe nicht 
warum?

von Steve van de Grens (roehrmond)


Lesenswert?

Wie gesagt ist das die 10 Jahre alte Version 1.0.5

Kein Wunder dass aktuelle Beispielprogramme und Anleitungen nicht dazu 
passen.

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> warum?

Weil du auf meine Frage zur Version nicht eingegangen bist und deinen 
Screenshot genau dort abgeschnitten hast, wo man die Version hätte sehen 
können.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Gio B. schrieb:
> Soviel Negativität und Frust hier von dir und ich verstehe nicht
> warum?

Du erzeugst hier bei Allen Frust, weil Du komplett planlos 
herumwurstelst.

Dein Text von gestern war auch nicht dazu angetan, sich weiterhin mit 
Deinem 'Problem' zu befassen:
Gio B. schrieb:
> Ich habe null Ahnung vom Arduino und ich will das auch nicht lernen.

von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Nein, will ich nicht und ich wüsste auch nicht, warum ich das tun
> sollte.

Ich glaub dir sogar das du es nicht mit Absicht machst!

Geh mal in die Konsole und poste die Ausgabe vom befehl "uname -a"...

Wenn deine IDE schon so oll ist, wie alt ist dann erst dein OS? Oder 
eher wie ungepflegt! (Da Kreuze ich die Finger das es kein SuSe ist...)
Planlos rumbasteln (und das auch noch als "Linuxer") bin ich von 
Freunden des Pinguin so absolut NICHT gewohnt!

Updates/Upgrades sind unter Linux ebenso essentiell wie unter Windows.

Sonst kannst du versuchen was du willst. Ohne aktuelle Software die auf 
dem gleichen Stand wie der Programmcode ist (gcc zb.) kannst du das 
vergessen!

: Bearbeitet durch User
von Vax W. (Gast)


Lesenswert?

Nun ja, wenn man "arduino 2:1.0.5+dfsg2-4" annimmt, ist man bei Debian 
Stretch (2017) oder Buster (2019).

Fuenf Jahre ist natuerlich eine lange Zeit in der Composterei. Und das 
erklaert natuerlich, warum er diese Probleme hatte.

von Gio B. (sanshine)


Lesenswert?

Steve van de Grens schrieb:
> Gio B. schrieb:
>> warum?
>
> Weil du auf meine Frage zur Version nicht eingegangen bist und deinen
> Screenshot genau dort abgeschnitten hast, wo man die Version hätte sehen
> können.

nicht extra, um dich zu ärgern. Jetzt hast du ja einen Screenshot von 
der Version bekommen. Ich hoffe das hilft

von Vax W. (Gast)


Lesenswert?

Gio B. schrieb:
> Ich habe nochmal einen anderen Weg genutzt und alles mit einem Windows
> Rechner gemacht:
> Arduino IDE 2.2.1 installiert
> CH430 Treiber installiert

Und gucke mal womit Du vergleichst: "arduino 2:1.0.5+dfsg2-4". Und die 
Bilder von Deinem Nano sind aus dem Katalog denn Dein Arduino-Klon hat 
einen CH430. Das Orginal (das Du gezeigt hast) hat einen FT232.

Meine Konsequenz: Vermeide Arduino-Benutzer, denn sie wissen nicht was 
sie tun.

von Gio B. (sanshine)


Lesenswert?

Kilo S. schrieb:
> Geh mal in die Konsole und poste die Ausgabe vom befehl "uname -a"...
>
> Wenn deine IDE schon so oll ist, wie alt ist dann erst dein OS?

Ich bin kein Updatefeak das stimmt, aber so alt ist mein Linux nicht. 
Warum meine Linux IDE Version nicht dieselbe ist wie die Windows Version 
schiebe ich einfach mal darauf, dass die Entwickler sich mehr auf 
Windows konzentrieren, was legitim ist.
5.4.0-166-generic #183-Ubuntu SMP Mon Oct 2 11:28:33 UTC 2023

von Gio B. (sanshine)


Lesenswert?

Vax W. schrieb:
> Gio B. schrieb:
>> Ich habe nochmal einen anderen Weg genutzt und alles mit einem Windows
>> Rechner gemacht:
>> Arduino IDE 2.2.1 installiert
>> CH430 Treiber installiert
>
> Und gucke mal womit Du vergleichst: "arduino 2:1.0.5+dfsg2-4". Und die
> Bilder von Deinem Nano sind aus dem Katalog denn Dein Arduino-Klon hat
> einen CH430. Das Orginal (das Du gezeigt hast) hat einen FT232.
>
> Meine Konsequenz: Vermeide Arduino-Benutzer, denn sie wissen nicht was
> sie tun.

Ja genau. Das Bild ist von Recihelt und da ging es mir nur um die Rx und 
Tx Pins. Ich habe einen Clon aus China, stimmt.

Wie schon gesagt, ich will kein Arduino Entwickler werden. Mir wurde 
bereits zur Last gelegt, dass ich das so einfach sage und mich weigere, 
mich tiefer als notwendig in die Materie einzuarbeiten. Allerdings steht 
für mich das Erreichen des Ziels im Vordergrund (Mp3 Player) und nicht 
das Werkzeug (Arduino). Das mag nicht schön klingen, aber ich finde das 
legitim. Man muss m.E. auch nicht Biologie studieren, um eine Karotte 
pflanzen zu dürfen.

von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Warum meine Linux IDE Version nicht dieselbe ist wie die Windows Version
> schiebe ich einfach mal darauf, dass die Entwickler sich mehr auf
> Windows konzentrieren, was legitim ist.

Auch wieder Quatsch.

Ich bekomme ganz offiziell, die aktuelle Arduino IDE ebenfalls für 
Linux.

https://www.arduino.cc/en/software

Der einzige Grund für mich die ältere Version zu nutzen ist, das ich die 
IDE2 (2.x) sehr "langsam" finde und unter der 1.8.19 trotzdem alles 
funktioniert.

Das ist alles und nur für mich gültig! (oder gleichgesinnte, welche die 
neue Version ebenfalls als langsam empfinden) Andere mögen auch noch 
mehr oder andere Gründe haben.

von Gio B. (sanshine)


Lesenswert?

Kilo S. schrieb:
> Ich bekomme ganz offiziell, die aktuelle Arduino IDE ebenfalls für
> Linux.
>
> https://www.arduino.cc/en/software
Ich habe über die Anwendungsverwaltung installiert. Kann sein, dass da 
die Version nicht die letzte war. Ich installiere lieber so als per 
Webseite, geht irgendwie leichter.

von Joachim B. (jar)


Lesenswert?

Gio B. schrieb:
> Man muss m.E. auch nicht Biologie studieren, um eine Karotte
> pflanzen zu dürfen.

wenn die Karotte aber verkümmert dann muss man wohl mal den Boden 
passend aufbereiten!
https://www.hauert.com/ch-de/angebot/privatkunden/ratgeber/detail/karotten-saeen-pflegen-und-ernten
Karotten wachsen gerne auf sandig-lehmigen Böden. Ist die Erde zu schwer 
oder verdichtet, gedeihen sie nur schlecht.

: Bearbeitet durch User
von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Ich installiere lieber so als per Webseite, geht irgendwie leichter.

Vollkommen ok, unter der voraussetzung das sowohl dein System aktuell 
ist als auch die Software in den repo's.

Oder um es mal so zu sagen: apt-get update; apt-get dist-upgrade

Das sollte dich auf einen aktuelleren Stand bringen.
Sollte das nicht so einfach gehen, wird es Zeit eine Neuinstallation 
durchzuführen mit einem aktuelleren System. Kann ja das "gleiche" 
(Ubuntu, Debian, Mint, Parrot... was du eben möchtest) sein wie vorher.

von Gio B. (sanshine)


Lesenswert?

Kilo S. schrieb:
> Gio B. schrieb:
>> Ich installiere lieber so als per Webseite, geht irgendwie leichter.
>
> Vollkommen ok, unter der voraussetzung das sowohl dein System aktuell
> ist als auch die Software in den repo's.
>
> Oder um es mal so zu sagen: apt-get update; apt-get dist-upgrade
>
> Das sollte dich auf einen aktuelleren Stand bringen.
> Sollte das nicht so einfach gehen, wird es Zeit eine Neuinstallation
> durchzuführen mit einem aktuelleren System. Kann ja das "gleiche"
> (Ubuntu, Debian, Mint, Parrot... was du eben möchtest) sein wie vorher.

Danke für die Linux Tipps, sie sind sehr nett von dir gemeint. Das Ding 
ist, dass die Zig Videos, in denen das mit dem Arduino und DFPlayer 
gezeigt wurde, etwa 4 bis 5 Jahre alt waren. Damals waren die Versionen 
noch älter. Ich behaupte, dass es an etwas anderem liegt, dass ich unter 
Linux keinen old bootloader finde aber unter Windows doch. Z.b. steht 
bei mir install bootloader. Vielleicht muss das erst gemacht werden, 
keine Ahnung. Hatte ich mal hier gefragt, kam aber keine Antwort. Ist 
auch kein Problem. Ich muss mich jetzt um den PIR SR505 kümmern und dem 
genauen Code. Denn momentan spielt der DF los, auch wenn ich den PIR 
Signalkontakt gar nicht angeschlossen habe. Da lese ich mich mal ein 
bevor ich euch damit belästige.

von Gio B. (sanshine)


Lesenswert?

Joachim B. schrieb:
> Gio B. schrieb:
>> Man muss m.E. auch nicht Biologie studieren, um eine Karotte
>> pflanzen zu dürfen.
>
> wenn die Karotte aber verkümmert dann muss man wohl mal den Boden
> passend aufbereiten!
> 
https://www.hauert.com/ch-de/angebot/privatkunden/ratgeber/detail/karotten-saeen-pflegen-und-ernten
> Karotten wachsen gerne auf sandig-lehmigen Böden. Ist die Erde zu schwer
> oder verdichtet, gedeihen sie nur schlecht.

Da hast du mit allem Recht was du sagst. Ich finde das spontane Beispiel 
mit der Karotte ziemlich gut. Zu wissen was für Boden sie braucht und 
wann pflanzen und Abstand etc. ist sicher gut und hilfreich. Das habe 
ich aber hier bzgl. Arduino gewusst würde ich sagen. Was teilweise von 
mir aber verlangt wurde war mir anzuschauen wie sinnbildlich die 
Genetik der Karotte aufgebaut ist, da mir das helfen wird eine gute 
Ernte zu erhalten. Das mag zwar sein, schießt  aber für mich übers Ziel 
hinaus.

von Joachim B. (jar)


Lesenswert?

Gio B. schrieb:
> Was teilweise von
> mir aber verlangt wurde

ach du armer Sonnenschein, keine Arme keine Kekse, denn wo ein Wille ist 
ist auch ein Gebüsch.

von Kilo S. (kilo_s)


Lesenswert?

Gio B. schrieb:
> Ich behaupte, dass es an etwas anderem liegt, dass ich unter Linux
> keinen old bootloader finde aber unter Windows doch.

Ne das liegt an der veralteten IDE Version! Das hat mit Windows oder 
Linux nichts zu tun.

Gio B. schrieb:
> Vielleicht muss das erst gemacht werden, keine Ahnung.

Wäre kein bootloader auf dem arduino könntest du dein Programm nicht 
hochladen.

Selbst wenn das gemacht werden müsste, so bräuchtest du dazu zusätzlich 
einen passenden programmieradapter.

Das ist also garantiert nicht das Problem.

Gio B. schrieb:
> Ich muss mich jetzt um den PIR SR505 kümmern und dem genauen Code. Denn
> momentan spielt der DF los, auch wenn ich den PIR Signalkontakt gar
> nicht angeschlossen habe. Da lese ich mich mal ein bevor ich euch damit
> belästige.

Und jetzt wird lustig. Anstelle gleich den dfplayer zu verwenden 
solltest du erst ein mal eine LED (nimm die bereits auf dem nano 
angebrachte an pin 13 dafür) mit dem PIR ein und ausschalten. Die 
Empfindlichkeit und Zeitdauer des Ausgang kannst du bei den meisten 
dieser Module über zwei kleine Potis einstellen.

Dann änderst du den Code so, daß er das für dich gewünschte Verhalten 
(Play, Stop, nächster Titel, Lautstärke usw..) an der LED 
wiederspiegelt. Danach erst bist du (hoffentlich) sicher genug beides 
zusammen zu führen.

Dabei meine ich das ganze wirklich logisch zusammen zu bringen. 
Verfrickelter code der "irgendwie" funktioniert, führt früher oder 
später zu Fehlern.

von Axel R. (axlr)


Lesenswert?

Am Ende kanns ja nur die Sortware-Uart gewesen sein und die falschen 
PINs zu Initialisierung. Wenn man aber die Ausgabe der serial als 
Initialsiserungssequenz des Players ansieht, muss man sich dann nicht 
wundern, wenn man nicht weiterkommt? Es liegt definitiv nicht an 
irgendwelchen Versionen, die so alt sein können, wie sie wollen. Davon 
ändert sich keine TimeSlot der SW-Uart oder die Baudrate. Man muss hier 
eben tatsächlich die richtigen Pins nehmen. Halt einen zum Senden 
Richtung Player und einen zum Empfang für die Bestätigungen, die der 
Player wohl ausgibt.
Und wenn da steht, nimm PIN10 und nimm PIN11, dann nimmt man die halt. 
Wenns nicht geht, tauscht man beide PINs ( RX/TX wird ja ganz gern mal 
verwechselt). ZUr not hängt man sich da n Kopfhöhrer mit 100nF davor an 
die PINS und hört sich halt an, wo Daten rauskommen.
Wenns dann immernoch nicht geht, kann man weitersehen. Aber man kann 
auch alles auf die SW-Versionen schieben. Gerade dieses Arduino-Habitat 
macht ja nun schon fast alles von allein und nimmt den User komplett 
mit.

von Kilo S. (kilo_s)


Lesenswert?

Axel R. schrieb:
> Es liegt definitiv nicht an irgendwelchen Versionen, die so alt sein
> können, wie sie wollen.

Und wie willst du dir da so sicher sein? Ein originaler arduino, mit dem 
"neuen bootloader" (optiboot) wird ziemlich sicher nicht mit einer alten 
IDE sprechen die ATmegaBOOT als bootloader erwartet.

Schon deshalb nicht weil sie unterschiedliche Geschwindigkeiten 
erwarten...

von Gio B. (sanshine)


Lesenswert?

Kilo S. schrieb:
> Dabei meine ich das ganze wirklich logisch zusammen zu bringen.
> Verfrickelter code der "irgendwie" funktioniert, führt früher oder
> später zu Fehlern.

Ich habe den PIR an 5V angeschlossen und den Signal Pin gemessen. Sobald 
der PIR Strom bekommt (ohne Bewegung), geht der Signal Pin für ca 20 
Sekunden auf 3,3V. Daher spielt der DFPlayer auch sofort los. Erst nach 
diesen 20 Sekunden ist der PIR auf 0V und geht erst wieder bei Bewegung 
an. Ich muss mal schauen, wie ich als nächstes weitermache. Es sind 
immer Schritte in die richtige Richung, aber sehr kleine Schritte. So 
einfach wie auf Youtube ist es auf jeden Fall nicht.

Mein SR505 hat übrigens keine Potis drauf. Mein erstes Video hat diesen 
505er verwendet, dann habe ich ihn bestellt, da ich dachte damit läuft 
es. War ein Fehler meinerseits.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Gio B. schrieb:
> Ich habe den PIR an 5V angeschlossen und den Signal Pin gemessen. Sobald
> der PIR Strom bekommt (ohne Bewegung), geht der Signal Pin für ca 20
> Sekunden auf 3,3V.

Da hätte ich 2 Lösungen:

1. Wenn der Arduino und der PIR an derselben Spannungsquelle hängt, 
kannst Du in der Funktion setup(), welche lediglich einmal beim Start 
ausgeführt wird, am Ende einfach 30 Sekunden warten, bevor es 
weitergeht.

2. In der Funktion loop(), da wo Du das PIR-Signal checkst, erst die 
Funktion millis() aufrufen. Ist der Return-Wert kleiner als 30000, das 
PIR-Signal ignorieren. Das einzige Problem hier: Alle 27 Tage wird der 
millis-Wert wieder zurückgesetzt und deshalb wird der PIR dann wieder 
für 30 Sekunden ignoriert. Das könnte man aber mit einem Flag, welches 
man beim ersten Mal setzt, abfangen - sollte diese Unschönheit 
tatsächlich stören.

Es reicht, wenn Du einen der beiden Punkte umsetzt.

: Bearbeitet durch Moderator
von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Warum meine Linux IDE Version nicht dieselbe ist wie die Windows Version
> schiebe ich einfach mal darauf, dass die Entwickler sich mehr auf
> Windows konzentrieren, was legitim ist.

Neun, der Grund ist ein ganz anderer.

Deine IDE ist 10 Jahre alt, weil du eine 10 Jahre alte IDE installiert 
hast. Die aktuelle Version für Linux ist genau die gleiche, wie auch für 
Windows. Ich habe dir doch zum Beweis Screenshots gezeigt, denkst du die 
habe ich mit einem Malprogramm erstellt?

https://www.arduino.cc/en/software

Gio B. schrieb:
> Kann sein, dass da die Version nicht die letzte war.

Nicht "kann" sondern es ist definitiv so. Es ist sogar so extrem, dass 
du eine der allerersten Versionen installiert hat.

Gio B. schrieb:
> Ich habe über die Anwendungsverwaltung installiert.
> Ich installiere lieber so als per Webseite, geht irgendwie leichter.

Normalerweise tue ich das auch, denn es ist ein einfach und meist auch 
der sicherste weg, keine Probleme zu bekommen. Doch gerade bei 
Entwicklungs-Tools hinken diese dem aktuellen Stand oft hinterher. So 
schlimm wie es in deinem Fall ist, habe ich allerdings noch nie erlebt.

Gio B. schrieb:
> Das Ding ist, dass die Zig Videos, in denen das mit dem
> Arduino und DFPlayer gezeigt wurde, etwa 4 bis 5 Jahre alt
> waren. Damals waren die Versionen noch älter.

Ich bezweifle, dass in einem 5 Jahre alten Video eine 10 Jahre alte 
Arduino Version verwendet wurde.

> Ich behaupte, dass es an etwas anderem liegt, dass ich unter
> Linux keinen old bootloader finde aber unter Windows doch.

Liest du überhaupt, was ich dir geschrieben habe? Die Bootloader 
Einstellung kann nicht die Problemursache sein, denn deine alte Arduino 
Version kennt nur den alten Bootloader, der sich auf deinem Arduino Nano 
befindet. Das passt zusammen.

> Z.b. steht bei mir install bootloader. Vielleicht muss das erst
> gemacht werden, keine Ahnung. Hatte ich mal hier gefragt, kam
> aber keine Antwort.

Schreibe ich türkisch?

Steve van de Grens schrieb:
> Zum Programmieren dieses Boardes brauchst du keinen
> "Programmer", denn du nutzt ja das USB Kabel und den
> vorinstallierten Bootloader.

>> weil da Bootloader installieren steht. heisst das dass der noch
>> nicht installiert?

> Nein. Mit dem Befehl kannst du den Bootloader installieren (egal ob
> schon drauf oder nicht

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Axel R. schrieb:
> Gerade dieses Arduino-Habitat macht ja nun schon fast
> alles von allein und nimmt den User komplett mit.

Wie du siehst verleitet es Leute zum Programmieren, die das nicht 
erlernen wollen.

Man muss das mal ganz klar sagen: Programmieren heißt, sich Wochenlang 
mit klitzekleinen Details zu beschäftigen, hundert bis tausende Seiten 
(meist englische) Dokumentation zu lesen und hunderte Fehlversuche zu 
ertragen, bis man zum Ziel kommt. Wer dazu nicht bereit ist, soll es 
besser sein lassen.

von Steve van de Grens (roehrmond)


Lesenswert?

Gio B. schrieb:
> Sobald der PIR Strom bekommt (ohne Bewegung), geht der Signal
> Pin für ca 20 Sekunden auf 3,3V. Daher spielt der DFPlayer
> auch sofort los.

Bis zu 30 Minuten brauchen PIR Sensoren, um funktionsfähig zu werden.

von Manfred P. (pruckelfred)


Lesenswert?

Kilo S. schrieb:
> Sollte das nicht so einfach gehen, wird es Zeit eine Neuinstallation
> durchzuführen mit einem aktuelleren System. Kann ja das "gleiche"
> (Ubuntu, Debian, Mint, Parrot... was du eben möchtest) sein wie vorher.

Wie jetzt, ich dachte, dass nur die Windows-Leute ständig neu 
installieren würden.

Frank M. schrieb:
> Da hätte ich 2 Lösungen:
> 1. Wenn der Arduino und der PIR an derselben Spannungsquelle hängt

Wieso soll jetzt der PIR bespielt werden, solange der Arduino noch nicht 
mit dem Player kommuniziert? Aktuell geht ja wohl garnichts mehr, noch 
nicht einmal, ein "Blink.ino" hochzuladen.

Steve van de Grens schrieb:
> Liest du überhaupt, was ich dir geschrieben habe? Die Bootloader
> Einstellung kann nicht die Problemursache sein, denn deine alte Arduino
> Version kennt nur den alten Bootloader, der sich auf deinem Arduino Nano
> befindet. Das passt zusammen.

Er hat in seinem Chaos irgendwas verbeult. Zu Beginn ging Compilieren 
und Hochladen, lediglich der Programmkot spielte nicht. Jetzt geht auf 
einmal garnichts mehr?

Steve van de Grens schrieb:
> Schreibe ich türkisch?

Nein, die Sprache heißt Vergebens.

Steve van de Grens schrieb:
> Axel R. schrieb:
>> Gerade dieses Arduino-Habitat macht ja nun schon fast
>> alles von allein und nimmt den User komplett mit.
>
> Wie du siehst verleitet es Leute zum Programmieren, die das nicht
> erlernen wollen.
>
> Man muss das mal ganz klar sagen: Programmieren heißt, sich Wochenlang
> mit klitzekleinen Details zu beschäftigen, hundert bis tausende Seiten
> (meist englische) Dokumentation zu lesen und hunderte Fehlversuche zu
> ertragen, bis man zum Ziel kommt.

Übertreibe mal nicht mit "tausende Seiten Doku". Axel hat schon recht, 
mit Arduino kommt man deutlich einfacher als in anderen Umgebungen um 
Ziel.

Recht hast Du mit "hunderte Fehlversuchen", die muß man ertragen und 
dann gezielt nach deren Ursachen suchen, also lesen.

Und ja, wie Kilo schrieb, ertsmal klein anfangen: LED blinken, Lauflicht 
bauen, Taster abfragen und sich so einen Grundstock einfacher Programme 
zuzulegen.

von Joachim B. (jar)


Lesenswert?

der Troll übt schon recht erfolgreich für Freitag!

von Steve van de Grens (roehrmond)


Lesenswert?

Manfred P. schrieb:
> Übertreibe mal nicht mit "tausende Seiten Doku".

Schau dir mal die Doku eines STM32F4 an. Datasheet, Reference Manual, 
Errata. Die Doku von Arm zum CPU Kern und Befehlssatz lassen wir mal 
außen vor. Und C/C++ kann man einfach so (hust).

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Steve van de Grens schrieb:
> Manfred P. schrieb:
>> Übertreibe mal nicht mit "tausende Seiten Doku".
> Schau dir mal die Doku eines STM32F4 an. Datasheet, Reference Manual,
> Errata.

Die schaue ich mir nicht an, weil ich Arduino mit ATMega328 verwende. 
Und auch die schaue ich nicht an, weil mich Arduino-C++ weitestgehend 
von der Hardware entkoppelt.

Ich schreibe "setze D13 als Ausgang und auf low" und "wenn A5 größer 
500, setze D13 high". Fertig, die Register, die Abfrage des ADC etc. 
nimmt mir das Arduino-Framwork ab. Das mag Dir nicht gefallen, aber 
genau das begründet doch den Erfolg von Arduino.

Meine erste Begegnung mit Prozessoren war der 6504 / 6502 in Assembler, 
das hat Tage gedauert, mit einem einfachen Schalter an Port-x eine LED 
an Port-y ein-/ausschalten zu können. Das will ich mir heute nicht mehr 
antun müssen.

Später hatte ich eine eigene Hardware mit 68HC805, ähnlich dem (damals 
noch nicht erfundenen) A*-Uno und damit einige Prüfplätze ausgerüstet, 
ebenfalls in Assembler geschrieben. Jahre später, Hobbybereich, hatte 
ich keine Lust, mich wieder einzuarbeiten und habe mir einen Uno 
gekauft.

Die A*-IDE holen, Treiber installieren, etwas lesen ... müsste so 3 
Stunden gedauert haben, bis meine 5 LEDs Lauflicht machten.

Du kannst noch so viel strampeln, wer nicht total dämlich ist, hat mit 
Arduino recht schnell erste Erfolge.

> Und C/C++ kann man einfach so (hust).

Das ist in der Tat ein Lernprozess, wo man durch muss und ich erhebliche 
Defizite habe. Aber auch der ist nicht beliebig schwer, ich habe mehr 
als ein Gerät aufgebaut, was seine Zwecke zuverlässig erfüllt.

von Steve van de Grens (roehrmond)


Lesenswert?

Manfred P. schrieb:
> die schaue ich nicht an, weil mich Arduino-C++ weitestgehend
> von der Hardware entkoppelt.

Von dieser Einstellung rate ich ab

Manfred P. schrieb:
> wer nicht total dämlich ist, hat mit
> Arduino recht schnell erste Erfolge.

Da stimme ich dir zu.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.