DF Player mit Mega 2560

Hallo zusammen,

ich brauche noch mal eure Hilfe

Ich habe aktuell einen DF Player mini an meinem Arduino MEga 2560 angeschlossen.

Pin 1 auf 5,5 V

Pin 2 über 1k Ohm an TX2 Pin 16

Pin 3 an RX2 Pin 17

Pin 10 an GND

Lautsprecher an PIN 6 und 8

mp3 Sound auf einer normalen 32GB SD Karte

Ich habe den Beispiel Sketch GetStarted hochgeladen, aber es wird nichts abgespielt.

Der serielle Monitor gibt aus:

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!

Auch Ändern von #define FPSerial Serial auf Serial2 bringt nichts, falls das überhaupt notwendig sein sollte..

Was könnte das sein?

Danke für eure Hilfe!!

Gruß, Christoph

Unlogisch!
Es gibt nur einenTX2.
Bei einem meinst du bestimmt RX2

Vorsicht, der dfPlayer ist da recht pingelig.
Mag nicht jedes MP3 Format, nicht jede Formatierung und das mit den Dateinamen ist auch so ein Ding.

Sorry, meinte RX2

Aber welcher TX2 ein RX2 ist, möchtest du nicht verraten....
Auch ok.

Ist nur eine MP3 Date mit 0001TEXT.MP3 drauf

Doch, gerne.
TX2 Pin 16
RX2 Pin 17

Sorry, eben falsch gelesen.

Hatte im Sketch die Übertrgung übrigens auf 9600 gestellt. Also für die Übermittlung an den seriellen Monitor. Sonst war nur Kauderwelsch zu sehen

Und ich hoffe du hast im Sketch auch die serielle zum DFplayer auch richtig eingestellt.
Und hast du denn schon mal den Player manuell getestet ?
Also per druck auf einen Tastenpin.

Ich denke ja.

hier mal der Sketch

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

#if (defined(ARDUINO_AVR_UNO) || defined(ESP8266))   // Using a soft serial port
#include <SoftwareSerial.h>
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
#define FPSerial softSerial
#else
#define FPSerial Serial2
#endif

DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup()
{
#if (defined ESP32)
  FPSerial.begin(9600, SERIAL_8N1, /*rx =*/D3, /*tx =*/D2);
#else
  FPSerial.begin(9600);
#endif

  Serial.begin(9600);

  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
  
  if (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) {  //Use serial 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(10);  //Set volume value. From 0 to 30
  myDFPlayer.play(1);  //Play the first mp3
}

void loop()
{
  static unsigned long timer = millis();
  
  if (millis() - timer > 3000) {
    timer = millis();
    myDFPlayer.next();  //Play next mp3 every 3 second.
  }
  
  if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
  }
}

void printDetail(uint8_t type, int value){
  switch (type) {
    case TimeOut:
      Serial.println(F("Time Out!"));
      break;
    case WrongStack:
      Serial.println(F("Stack Wrong!"));
      break;
    case DFPlayerCardInserted:
      Serial.println(F("Card Inserted!"));
      break;
    case DFPlayerCardRemoved:
      Serial.println(F("Card Removed!"));
      break;
    case DFPlayerCardOnline:
      Serial.println(F("Card Online!"));
      break;
    case DFPlayerUSBInserted:
      Serial.println("USB Inserted!");
      break;
    case DFPlayerUSBRemoved:
      Serial.println("USB Removed!");
      break;
    case DFPlayerPlayFinished:
      Serial.print(F("Number:"));
      Serial.print(value);
      Serial.println(F(" Play Finished!"));
      break;
    case DFPlayerError:
      Serial.print(F("DFPlayerError:"));
      switch (value) {
        case Busy:
          Serial.println(F("Card not found"));
          break;
        case Sleeping:
          Serial.println(F("Sleeping"));
          break;
        case SerialWrongStack:
          Serial.println(F("Get Wrong Stack"));
          break;
        case CheckSumNotMatch:
          Serial.println(F("Check Sum Not Match"));
          break;
        case FileIndexOut:
          Serial.println(F("File Index Out of Bound"));
          break;
        case FileMismatch:
          Serial.println(F("Cannot Find File"));
          break;
        case Advertise:
          Serial.println(F("In Advertise"));
          break;
        default:
          break;
      }
      break;
    default:
      break;
  }
  
}

Nein, mit Tasten noch nicht.

Dann mach das doch mal. Dann kannst du sehen, ob der selbst ok ist.

Und warum überhaupt an 5,5 Volt ?

Die ganzen Tutorials, die ich gesehen habe, nutzen dem 5,5V Pin vom Arduiono für die Versorgung...
Oh, ja, sorry 5V

Okay, wenn ich den Pin 9 IO1 auf GND triggere, passiert auch nichts...

Das passt dann.
Und im Sketch kann ich selbst keinen Fehler erkennen.
Somit tippe ich auf einen Fehler im Aufbau.
Wie hast du alles verkabelt ?
Poste doch ein Foto, auf dem alles gut zu erkennen ist.

Aufbaufehler !
Wackelkontakt, schlechte Kabel .....

Kabel, also für TX ud RX hatte ich bereits getauscht

Alle Kabel getauscht - keine BEsserung

So wie du es oben beschrieben hast, ist es richtig.
Im Bild kann ich den Verlauf der seriellen Kabel nicht verfolgen.

Wenn aber der manuelle Funktion nicht da ist, ist ein Fehler mit der Spannung, oder der Player kann die Datei nicht lesen. Wie hast du die Karte formatiert ?