Forum: Mikrocontroller und Digitale Elektronik Arduino Dfplayer Probleme beim einschalten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich hoffe Ihr könnt mir helfen. Ich habe für meinen Sohn einen Dfplayer 
gekauft und wollte diesen über einen Arduino steuern. Es soll 
alsSound/Effekt Wiedergabe an seinem Elektroauto eingebaut werden.

Nun habe ich diese Sound alle auf der Sdkarte und den Code geschrieben.
Hier kommt das Problem:

Starte ich den Arduino bzw. den DFplayer lädt dieser einmal hoch und 
gibt mir in einer wilden Reihenfolge die Sounds wieder. Erst nach 
einigen Sek. wenn die Sounds abgespielt sind und nichts mehr kommt, kann 
ich über meine Buttons die gewünschten Sound abspielen.

Nach diesen paar sek. funktioniert alles wunderbar aber ich würde gerne 
die Sounds beim einschalten bzw. Spannungsversorgung abgestellt 
bekommen.
Vielleicht hat ja jemand Erfahrung damit gemacht.
Der Code ist sehr Simpel und wurde von der Original Homepage benutzt, 
genauso wie die Library.

von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;

const int button1 = 2;
int buttonState1 = 0;
const int button2 = 3;
int buttonState2 = 0;
const int button3 = 4;
int buttonState3 = 0;


void printDetail(uint8_t type, int value);

void setup()
{
  mySoftwareSerial.begin(9600);
  Serial.begin(9600);
  pinMode(button1,INPUT);
  pinMode(button2,INPUT);
  pinMode(button3,INPUT);



  myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms


  myDFPlayer.volume(15);  //Set volume value (0~30).



  myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);

  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);



}

void loop()
{

  buttonState1 = digitalRead(button1);
    if (buttonState1 == HIGH)
    {
    myDFPlayer.play(1);
    }
    else
    {

    }

    buttonState2 = digitalRead(button2);
    if (buttonState2 == HIGH)
    {
    myDFPlayer.play(2);
    }
    else
    {

    }

    buttonState3 = digitalRead(button3);
    if (buttonState3 == HIGH)
    {
    myDFPlayer.play(3);
    }
    else
    {

    }


}

von Brain 2.0 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich kenne ein ähnliches Problem, wenn die Betriebsspannung des DFPlayers 
nicht sauber 5 Volt im getrennt von der des Arduinos ist.
Hast du Widerstände in RX und TX
Leitungen ?

von Brain 2.0 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hast du Pulldown-Widerstände an deinen Eingangspins ?

von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
habe wie auf der Seite beschrieben 1 K ohm widerstand genommen zwischen 
RX und TX.

Pulldown widerstände habe ich bei allen 3 Buttons.
diese Dimension weiss ich aber gerade nicht genau.
was würdet ihr empfehlen? ich meine ich habe nur unter 1K ohm.

Habe nach dem Wirrwarr ja keine Probleme, daher bin ich nicht auf die 
Widerstände gekommen.

von Brain 2.0 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Und die Spannung des DFPlayer ist ok ?
Macht er das auch, wenn die Loop leer ist, also keine Mp3 gestartet 
werden ?

von Brain 2.0 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ach, die Werte der Widerstände sind hier unkritisch.

von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Spannung ist ok, habe diese über einen Regler mal hoch und 
runtergenommen um zu testen.

Ne das mit der loop habe ich noch nicht getestet.
versuche ich mal

von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Habe heute nochmal alles aufgebaut um eure Vorschläge zu testen und was 
musste ich feststellen, der Fehler ist weg hahahaha

habe am Sketch nichts verändert. Ich kann es mir auch nicht erklären

von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
jetzt ist nur noch die Kleinigkeit, dass es beim Laden einmal knackt an 
dem Lautsprecher.
Habt ihr dafür eine Lösung?

von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
habe das war rausgefunden. Immer wenn im Serial Monitor die Verbindung 
zu Software Serial steht, dann kommt kommt dieses kurze kratzen im 
Lautsprecher.

  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  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);
  }
  Serial.println(F("DFPlayer Mini online."));



bei dieser ausgabe

von Brain 2.0 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe keine direkte Lösung dafür, aber ein Workaround.
Ich verwende in meinem Projekt einen externen Verstärker, den ich 
zusätzlich ein bzw. ausschalte.
Da hört man keinen Knacks.

von Tobias K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Worüber schaltest du den externen Verstärker?
Relais oder einen Schalter?

von Brain 2.0 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Den schalte ich mit einem Mosfet IRF5305 (o.ä. IRFU9024N), der wiederum 
durch einen BC548 angesteuert wird.

von Trace84 (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe ein ähnliches Problem wie vom Anfangsthread. Bei mir ist es eine 
Schaltung zur Beleuchtung und für Soundeffekte für ein Sci-Fi-Modell.

Den Sketch für die Lichteffekte habe ich online gefunden. Dieser 
funktioniert auch ohne Probleme.

Habe dann den Sketch für die Funktionen des DFPlayers erweitetert. Und 
hier habe ich das Problem, dass beim Einschalten der Spannung, der 
ersten Teil des Skechtes abgespielt wird (Disruptor-Effekt). Sowohl 
Lichteffekte als auch der entsprechende Sound

Danach funktioniert alles ganz normal. Es passiert nur dann etwas, wenn 
ich den Knopf drücke bzw. halte.

Habe Widerstände in TX RX. Spannungen sind in Ordnung, keine Lötfehler 
auf den Boards zu sehen.

Nehme ich aus dem Loop die Soundfunktion wieder raus, bleibt das Problem 
gleich, nur eben ohne Sound.

Es ist ein Arduino-Nano-Clone mit CH340 Chip und DFPlayer mini.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.