Bonjour,
je suis en train de fabriquer une sorte de petit livre sonore.
un contact à bille sur chaque page. Quand la page est tournée, la bille glisse en position ON, et déclenche le son.
parfait. j'ai fait l'éssai avec des leds à la place des sons, c'est good, ça roule!
MAIS quand je veux utiliser le shield MP3 Sparkfun (que j'ai testé, et qui fonctionne très bien),
je tourne la page 1 = le son1 est déclenché
je tourne la page 2 = je suis obligé d'attendre que le son 1 soit arrivé en fin de lecture pour qu'il lise le son 2
(j'utilise la librairie simplifié de Bill Porter SFEMP3Shield library)
je décide donc d'arrêter de faire stop en début de boucle, puis de lire le fichier son.
Mais ma boucle est infiniment courte, et il ne fait que stop lire stop lire .... c'est pas bon!!
Et comme je suis une buse, je ne sais comment faire pour que ma boucle dure suffisamment (j'ai bien éssayé avec delay mais c'est pas bon non plus il faut attendre la fin du delay ...)
je m'arrache les cheveux!! si ça vous dit quelque chose :
#include <SPI.h>
//Add the SdFat Libraries
#include <SdFat.h>
#include <SdFatUtil.h>
//and the MP3 Shield Library
#include <SFEMP3Shield.h>
//create and name the library object
SFEMP3Shield zic;
char* tracks[11]={"numero1.mp3", "numero2.mp3", "numero3.mp3", "numero4.mp3", "numero5.mp3", "numero6.mp3", "numero7.mp3", "numero8.mp3", "numero9.mp3", "numero10.mp3"};
//les numero ci dessus sont les sons 1,2,3,4, ...
int bille1 =44; //les contacts à bille
int bille2 =42;
int bille3 =40;
int bille4 =38;
int bille5 =36;
int bille6 =34;
int bille7 =32;
int bille8 =30;
int bille9 =28;
int bille10 =26;
boolean etat1 = false;//son1 allume ou eteinte
boolean etat2 = false;//son2 idem
boolean etat3 = false;
boolean etat4 = false;
boolean etat5 = false;
boolean etat6 = false;
boolean etat7 = false;
boolean etat8 = false;
boolean etat9 = false;
boolean etat10 = false;
void setup(){
Serial.begin(9600);
//boot up the MP3 Player Shield
zic.begin();
zic.SetVolume(25,25); //VOLUME à 250 c'est off, et 0 à donf
pinMode (bille1, INPUT);
pinMode (bille2, INPUT);
pinMode (bille3, INPUT);
pinMode (bille4, INPUT);
pinMode (bille5, INPUT);
pinMode (bille6, INPUT);
pinMode (bille7, INPUT);
pinMode (bille8, INPUT);
pinMode (bille9, INPUT);
pinMode (bille10, INPUT);
}
void loop() {
int etat1 = digitalRead(bille1);
int etat2 = digitalRead(bille2);
int etat3 = digitalRead(bille3);
int etat4 = digitalRead(bille4);
int etat5 = digitalRead(bille5);
int etat6 = digitalRead(bille6);
int etat7 = digitalRead(bille7);
int etat8 = digitalRead(bille8);
int etat9 = digitalRead(bille9);
int etat10 = digitalRead(bille10);
if (etat1==LOW && etat2==LOW && etat3==LOW ) //PAGES OFF
{zic.stopTrack();
Serial.println("stop");
}
else if (etat1==HIGH && etat2==LOW ) //PAGE 1
{ zic.stopTrack();
zic.playMP3(tracks[0]);
Serial.println("page1");
}
else if (etat1==HIGH && etat2==HIGH & etat3==LOW) //PAGE2
{
zic.stopTrack();
zic.playMP3(tracks[1]);
Serial.println("page2");
}
else if (etat1==HIGH && etat2==HIGH && etat3==HIGH ) //PAGE3
{
zic.stopTrack();
zic.playMP3(tracks[2]);
Serial.println("page3");}
}
[code]
[/code]