Moin,
Ich benötige jetzt auch mal eure Hilfe.
Ich habe einen DFPlayer an einen Nano gehängt dieser soll verschiedene Sounds je nach "Jumperstellung" spielen.
Dieses funktioniert auf dem Uno einwandfrei.
Auf dem Nano leider nur wenn dieser an den PC angeschlossen ist, nicht aber wenn man in ohne PC betreiben möchte...
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int buttonPin = 7; // Pin, an dem der Taster angeschlossen ist
int buttonPin1 = 8;
int buttonPin2 = 9;
int buttonPin3 = 6;
int buttonPin4 = 5;
int buttonPin5 = 4;
int buttonPin6 = 3;
int buttonPin7 = 2;
void setup() {
mySoftwareSerial.begin(9600); // Start der SoftwareSerial Kommunikation
Serial.begin(115200); // Start der "normalen" seriellen Kommunikation für den Serial Monitor
if (!myDFPlayer.begin(mySoftwareSerial)) { // Verbindung der Software Serial Kommunikation mit dem DFPlayer
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) { // Programmabbruch -> while(true) ist Endlosschleife
delay(0); // Code für den Watchdog des ESP8266, nicht relevant für Arduino UNO
}
}
myDFPlayer.volume(30); // Lautstärke auf 10 ( Werte von 0 – 30 ist möglich)
pinMode(buttonPin, INPUT_PULLUP); // Taster wird mit internem Pullup-Widerstand verwendet
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
pinMode(buttonPin5, INPUT_PULLUP);
pinMode(buttonPin6, INPUT_PULLUP);
pinMode(buttonPin7, INPUT_PULLUP);
}
void loop() {
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin1) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(1); // spiele das erste MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin2) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(2); // spiele das zweite MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin3) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(3); // spiele das dritte MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin4) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(4); // spiele das vierte MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin5) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(5); // spiele das fünfte MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin6) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(6); // spiele das sechste MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin7) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(7); // spiele das siebte MP3 von der SD-Karte
}
}
Da Schaltbilder den gewollten, aber nicht den IST-Zustand darstellen, mach ein FOTO von oben vom Aufbau.
Bitte so, das man sieht wo die Kabel hingehen und herkommen. Es sollte kein Kabel ausserhalb des Bildes weitergehen und woanders wieder rein kommen und bitte keine Schräglage - denke dran, das Du am Tisch sitzt, jeder andere aber sich das vorstellen muss...
Also wenn ich den Nano am PC hat funktioniert das Programm so wie ich es haben will...
wenn ich aber das usb Kabel in ein netzteil stecke dann kommt kein ton, genauso wie wenn ich es direkt an ein 5v netzteil anschliesse.
Genau das selbe Programm auf den UNO geladen und 1:1 umgeklemmt funktioniert es am PC sowie am Netzteil per USB und direkt.
Sehr ungewöhnlich ist deine Farbkombination für die Betriebsspannung.
Du solltest dich besser an gängige Verwendung der Farben rot = Plus, schwarz oder blau = minus und die Farben nicht noch zwischendurch tauschen. Das irritiert alle und macht es nicht einfach zu helfen.
Leider ist auf deinem Bild nicht zu erkennen, wie du die Spannung an die Module ran bringst.
//#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int buttonPin = 7; // Pin, an dem der Taster angeschlossen ist
int buttonPin1 = 8;
int buttonPin2 = 9;
int buttonPin3 = 6;
int buttonPin4 = 5;
int buttonPin5 = 4;
int buttonPin6 = 3;
int buttonPin7 = 2;
void setup() {
mySoftwareSerial.begin(9600); // Start der SoftwareSerial Kommunikation
Serial.begin(115200); // Start der "normalen" seriellen Kommunikation für den Serial Monitor
myDFPlayer.begin(mySoftwareSerial);
/*
if (!myDFPlayer.begin(mySoftwareSerial)) { // Verbindung der Software Serial Kommunikation mit dem DFPlayer
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) { // Programmabbruch -> while(true) ist Endlosschleife
delay(0); // Code für den Watchdog des ESP8266, nicht relevant für Arduino UNO
}
}
*/
myDFPlayer.volume(30); // Lautstärke auf 10 ( Werte von 0 – 30 ist möglich)
pinMode(buttonPin, INPUT_PULLUP); // Taster wird mit internem Pullup-Widerstand verwendet
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
pinMode(buttonPin5, INPUT_PULLUP);
pinMode(buttonPin6, INPUT_PULLUP);
pinMode(buttonPin7, INPUT_PULLUP);
}
void loop() {
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin1) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(1); // spiele das erste MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin2) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(2); // spiele das zweite MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin3) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(3); // spiele das dritte MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin4) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(4); // spiele das vierte MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin5) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(5); // spiele das fünfte MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin6) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(6); // spiele das sechste MP3 von der SD-Karte
}
if (digitalRead(buttonPin) == LOW && digitalRead(buttonPin7) == LOW)
{ // wenn der Taster gedrückt wird
myDFPlayer.play(7); // spiele das siebte MP3 von der SD-Karte
}
}
Die Beschaltung ist ok.
Das Fehlerbild ist eigenartig.
Ich muss leider passen.
Hast Du irgendein Netzteil mit 7-9V, welches Du umfriemeln kannst und + auf VIN und GND auf - legen kannst?
Dann probier das. Sowas ähnliches habe ich schon mal mit einem Sensor gehabt und aus Verzweiflung ein altes Netzteil einfach um seinen Stecker erleichtert... (Heute habe ich Adapterstecker...)