Bonjour,
Je suis certain de faire une duplication de topic mais je ne l'ai pas trouvé.
Merci d'avance si vous l'avez trouvé et que vous me le communiquez :).
J'ai débuté quelques projets et là je but.
Mon Projet: boite a "Ta gueule" (on ne juge pas c'est une demande :p)
Description:Une petite boite avec un bouton (le reste on verra plut tard). A chaque appuis sur le bouton un "Ta gueule" différent est joué.
Je me suis procuré un lecteur mp3 avec son "enceinte":Serial MP3 Player A (OPEN-SMART).
J'ai réussi a codé ce que je voulais a part pour l'aléatoire.
Voici le morceau de code qui ne fonctionne pas:
if (t <= 15) {
char tmp1[10] = "0x0", tmp2[10] = {0};
itoa(t, tmp2, 16);
strcat(tmp1, tmp2);
Serial.write((byte)(tmp1));
}
else {
char tmp1[10] = "0x", tmp2[10] = {0};
itoa(t, tmp2, 16);
strcat(tmp1, tmp2);
Serial.write((byte)(tmp1));
}
il me permettrais en fonction du nombre aléatoire t de sortir en 0x** en fonction nombre.
J'ai tenté beaucoup de chose toutes aussi stupide les unes que les autres ou ce qu'on voit au dessus.
Voici le code complet au cas ou:
const byte Start = 0x7E;
const byte Stop = 0xEF;
const int buton = 12;
const int comTx = 17;
int butonS = 0;
void setup() {
Serial.begin (9600);
pinMode(buton, INPUT);
pinMode (comTx, OUTPUT);
delay(200);//Wait chip initialization is complete
//select the TF card
Serial.write(Start);
Serial.write((byte)0x02);
Serial.write((byte)0x35);
Serial.write((byte)0x01);
Serial.write(Stop);
delay(100);
//select volume
Serial.write(Start);
Serial.write((byte)0x03);
Serial.write((byte)0x31);
Serial.write((byte)0x0F);
Serial.write(Stop);
delay(200);//wait for 200ms
}
void loop() {
butonS = digitalRead(buton);
if (butonS == 1) {
//reset
Serial.write(Start);
Serial.write((byte)0x03);
Serial.write((byte)0x35);
Serial.write((byte)0x02);
Serial.write(Stop);
delay(100);
//int t = random(19);
int t = 2; //force pour test
//play t
Serial.write(Start);
Serial.write((byte)0x04);
Serial.write((byte)0x41);
Serial.write((byte)0x00);
if (t <= 15) {
char tmp1[10] = "0x0", tmp2[10] = {0};
itoa(t, tmp2, 16);
strcat(tmp1, tmp2);
Serial.write((byte)(tmp1));
} else {
char tmp1[10] = "0x", tmp2[10] = {0};
itoa(t, tmp2, 16);
strcat(tmp1, tmp2);
Serial.write((byte)(tmp1));
}
Serial.write(Stop);
delay(100);
}
}
J'imagine que je ne suis pas du tout partis dans la bonne direction merci d'avance a ceux qui auront la gentillesse de me pointer le bon chemin. ![]()
Nostan