Bonjour tout le monde,
Avant de vous posez ma question, je tiens à préciser que je suis nouveau sur le forum.
J'ai un problème de lecture des fichiers mp3 de DFPlayer Mini j'arrive pas à lire le fichier FOLDER_titre et FOLDER_vitesse
#define FOLDER_titre 1
#define FOLDER_vitesse 2
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
void setup() {
SoftwareSerial mySoftwareSerial(0, 11);
Serial.println();
if (!myDFPlayer.begin(mySoftwareSerial, true, false)) { //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);
}
}
Serial.println(F("DFPlayer Mini en ligne."));
myDFPlayer.setTimeOut(500);
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
myDFPlayer.volume(30); //Set volume value. From 0 to 30
}
void loop(){
myDFPlayer.volume(30); //Set volume value. From 0 to 30
Lecture();
}
void Lecture() {
myDFPlayer.playFolder(FOLDER_titre, 1);
delay(1000);
myDFPlayer.playFolder(FOLDER_vitesse, 6);
delay(1000);
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;
}
}
Vérifiez qu’il n’y a pas de répertoires ou fichiers cachés sur votre carte SD (si vous êtes sur Mac vous aurez potentiellement un fichier d’indexation Spotlight par exemple qui bien sûr ne pourra pas être joué)
donc l'appel de fonction qui est dans le code est transformé en
myDFPlayer.playFolder(1, 1);
donc vous passez deux nombres entiers à la fonction.
je ne sais pas quelle est votre bibliothèque mais est-ce cohérent avec ce qu'attend la fonction et quel est le nom sous jacent que la puce va aller chercher sur la carte SD
C'est correct, par contre il me semble que les répertoires de la µSD doivent être formatés avec 2 digits : 01 et 02.
Les noms de fichiers doivent être formatés avec 3 digits, et peuvent contenir d'autres caractères :
001-sonnerie.mp3 par exemple.