seeed studio grove - mp3 v2.0

Bonjour,

Dans le cadre d'un petit projet simple à faire chez moi, je cherche via un grove et un arduino uno à lire 3 ou 4 mp3 en boucle avec un délais de 40sec entre eux.

Etant débutant en codage, je vous avoue que cela fait 3 weekends que je planche dessus et que mon morale commence à baissé de plus en plus ...

Il y aurait il une âme charitable, qui serait à même de m'orienté vers la voie de la rédemption :smiley:

titus

Ce modèle ?

As-tu essayé les exemples de la librairie ?

En effet, j'ai essayé d'utiliser l'exemple et de le modifier pour pouvoir m'en servir dans mon cas sans sucés.

Si tu ne dis pas ce que tu as fait, difficile d’aider.
Poste le code. Entre balises STP (bouton </> en haut à gauche).

Oups désolé je poste cela de suite, merci :

#include <SD.h>
#include <MP3Player_KT403A.h>



const byte COMMAND_BYTE_START = 0x7E;
const byte COMMAND_BYTE_VERSION = 0xFF;
const byte COMMAND_BYTE_STOP = 0xEF;

const byte DEVICE_SDCARD = 0x02;


void send_kt_command(byte command, byte data_h, byte data_l, unsigned long cmd_delay) {
  Serial.write(COMMAND_BYTE_START);
  Serial.write(COMMAND_BYTE_VERSION);
  Serial.write((byte) 0x06);
  Serial.write(command);
  Serial.write((byte) 0x00);
  Serial.write(data_h);
  Serial.write(data_l);
  Serial.write(COMMAND_BYTE_STOP);
  // 16-bits checksum is optionnal
 delay(cmd_delay);
}
void playTrack(uint16_t track_number) {
 send_kt_command(0x03, highByte(track_number), lowByte(track_number), 10);
}

void selectSourceDevice(byte device) {
  send_kt_command(0x09, 0, device, 200);
}

void setVolume(byte volume) {
 if (volume > 30) volume = 30;
 send_kt_command(0x06, 0, volume, 10);

}


void setup() {

 Serial.begin(9600);
  selectSourceDevice(DEVICE_SDCARD);
  setVolume(15);

}

/** Fonction loop() */
void loop() {

 
playTrack(0001);

delay(40000);

playTrack(0002);

delay(40000);

playTrack(0003);

delay(4000);

}

En bidouillant, j arrive à lire mes piste, mais je n arrive pas à mettre 40 sec de délaie entre chaque mp3 (on dirait que le délaie correspond a la duré de lecture du dit mp3 )

Non, la fonction playTrack démarre le morceau.
Donc le délai de 40s commence à cet instant-là.

Je connais le DFPLAYER mais ils se ressemblent.

Apparemment, il y aurait une fonction QueryPlayStatus qui permet de savoir si le morceau est terminé.

playTrack(0001);
while(QueryPlayStatus() != 0);
delay(40000);