Voici un bout de code à tester - je n'ai pas le module donc je me suis simplement inspiré de l'exemple disponible.
Connectez votre shield MP3 de la façon suivante à votre MEGA
- vérifiez bien que le module que vous avez est en 5V
- vérifiez bien aussi que sur votre module les pins du modules Gnd, Vcc, Rx et Tx sont bien comme cela:
Mettez la vitesse en baud de l'interface Série de l'IDE à 115200 bauds (le popup en bas de la fenêtre), une carte SD dans le lecteur avec des fichiers. Je pense qu'ils seront joués dans l'ordre d'ajout sur la carte SD.
// on inclut la librairie adaptée
#include
// l'arduino Mega dispo de plusieurs port séries matériels
// Serial: 0 (RX) and 1 (TX); le port Serial est connecté à l'USB qui va à l'ordinateur
// Serial 1: 19 (RX) and 18 (TX);
// Serial 2: 17 (RX) and 16 (TX);
// Serial 3: 15 (RX) and 14 (TX).
// (RX) c'est pour recevoir et (TX) transmettre des données séries TTL
// dans cet exemple je vais utiliser Serial1, donc les pin 19 pour Rx et 18 pour Tx
// la pin 19 du Mega sera donc connecté au Tx du module Grove
// la pin 18 du Mega sera donc connecté au Rx du module Grove
// modifier le MP3Player_KT403A.h de la librairie pour avoir au début la variable mp3 en port hardware, pas softwareSerial
// // #include // <-- commenter
// // extern SoftwareSerial mp3; // <-- commenter
// extern HardwareSerial mp3; // <-- redéfinir comme cela
HardwareSerial mp3 = Serial1; // la librairie attend une variable mp3.
void setup()
{
// On parlera avec l'ordinateur à 115200 bauds, mettre la console à cette vitesse
Serial.begin(115200);
// le module grove est configré pour discuter à 9600 bauds, donc c'est la vitesse que l'on choisit
mp3.begin(9600);
// petit délai pour s'assurer que tout s'initialise bien
delay(100);
// On configure la libraire pour utiliser la carte SD
SelectPlayerDevice(0x02);
// On met le volume à 15, les valeurs admissibles sont entre 0 et 30
SetVolume(15);
Serial.println(F("------ Commmandes ------"));
Serial.println(F("J\tJouer #1"));
Serial.println(F("P\tPause"));
Serial.println(F("C\tContinuer"));
Serial.println(F(">\tSuivante"));
Serial.println(F("<\tPrecedente"));
Serial.println(F("B\tboucle sur toutes les chansons"));
Serial.println(F("+\tAugmente le volume"));
Serial.println(F("-\tDiminue le volume"));
Serial.println(F("------------------------"));
}
void loop()
{
int caractereRecu = 0;
// On attend un ordre sur le port Série (à travers la console Série de l'IDE)
while (Serial.available());
caractereRecu = Serial.read();
switch ((char) caractereRecu)
{
case 'j':
case 'J':
SpecifyMusicPlay(1); // index de la chanson entre 0 et 65535 (unsigned int - uint16_t)
Serial.println("J");
break;
case 'p':
case 'P':
PlayPause();
Serial.println("P");
break;
case 'c':
case 'C':
PlayResume();
Serial.println("C");
break;
case '>':
PlayNext();
Serial.println(">");
break;
case '<':
PlayPrevious();
Serial.println("<");
break;
case 'b':
case 'B':
PlayLoop();
Serial.println("B");
break;
case '+':
IncreaseVolume();
Serial.println("+");
break;
case '-':
DecreaseVolume();
Serial.println("-");
break;
}
// éventuellement on affiche ce que nous dit le module mp3
printReturnedData();
}
voilà, normalement vous tapez dans la console série de l'IDE des commande J par exemple pour commencer à jouer la première chanson, > pour passer à celle suivante etc... Vous pouvez valider après chaque entrée mais si vous tapez plusieurs commandes à la suite, elles seront gérées correctement. par exemple si vous tapez +++ vous allez augmenter 3 fois le son.