J'ai trouvé comment rajouter les gyrophares, je ne sais pas si c'est "propre" mais ça marche.
Voici le code:
#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <SFEMP3Shield.h>
SdFat sd;
SFEMP3Shield MP3player;
const int btnPin=12;
#define NUMBERSWITCH 3 // Nombre de switch
// Switch 1 2 3
const int btnPins[]= {18, 19, 20}; // pin correspondant a chaque switch
const int tracks[] = { 1, 2, 3}; // morceau à lire pour chaque switch
const int gyro[] = {26, 24, 22};
int buttonState = 0;
void setup() {
Serial.begin(9600);
//start the shield
sd.begin(SD_SEL, SPI_HALF_SPEED);
MP3player.begin();
for(int i=0; i<NUMBERSWITCH; i++){
pinMode(btnPins[i], INPUT);
}
}
//do something else now
void loop() {
int tracktoplay = 0;
//detecte le bouton actif
for(int i = 0; i< NUMBERSWITCH; i++){
int state = digitalRead(btnPins[i]);
if(state == LOW){ // le bouton numéro i est appuyé ?
digitalWrite (gyro[i], HIGH);
tracktoplay = tracks[i]; // on va jouer le morceau correspondant
break; // on a trouvé le morceau à jouer
}else
digitalWrite(gyro[i], LOW); // si non alors on n'alimente pas la broche 18 => gyro1 éteint
}
if(tracktoplay != 0){ //Est-ce qu'il y a un morceau à jouer ?
if (! MP3player.isPlaying()) //Est ce que l'on joue déjà le morceau ?
MP3player. playTrack(tracktoplay); // si non, on lance la musique
}
}
La question que je me pose maintenant, est-il possible de lancer une piste dès le début du programme, une musique de fond, admettons qu'elle se nomme "musiquedefond.mp3" qui jouera sans arrêter (même lorsque d'autres sons sont déclenché comme lorsque l'on appui sur les switchs)?