Go Down

Topic: Lire un son après avoir appuyé sur un bouton.  (Read 118 times) previous topic - next topic

Glozek

Bonjour, voila cela fait un moment que je fais des recherche mais je ne trouve rien pour résoudre mon problème. Je voudrais lorsque j'apuie sur un bouton qu'un son soit joué par l'arduino. J'ai déjà réussis à raccorder mon enceinte et lui faire jouer un son sans carte SD via la bibliothèque  PCM en chargent le son exemple et en appuyant sur le bouton de la carte Uno.

Ce que je voudrais c'est changer ce son et qu'il se déclenche lorsque j'appuie sur un bouton que j'ai relié a la carte avec le code si le bouton et ouvert rien et si le bouton est fermé cela joue le son. Ce n'est rien de compliquer comme cela mais je bloque sur le code et le changement du son.

J'espère que je suis assez claire dans mes explications. Merci par avance de vos réponses.


lesept

Non c'est pas très clair. Ton bouton c'est un interrupteur deux positions ou un bouton poussoir ?
Tu joues le son grâce à un module MP3 ?
Que se passe-t-il si tu manipules ledit bouton pendant qu'un son est en cours ? Faut-il l'arrêter ou ne pas tenir compte du bouton ?

Enfin as-tu déjà un code sur lequel on peut se baser?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Glozek

Alors du coup c'est un bouton poussoir, lorsque j'appuie sur le bouton cela dois jouer le son en entier même si je relâche ou si je réappuie cela dois le jouer en entier et s'arrêter et ensuite lorsqu'il est fini on peu le relancer en réappuyant sur le bouton. Je vais envoyer le codecelui la c'était pour tester avec une led donc ca fait 2 allumages long puis 3 allumages rapide. Un peu comme du morse par exemple. Ce que je voudrais c'est remplacer cette led qui s'allume par un "bruitage" la pour le coup une chouette… on ne posera pas de question LOL. Et je voudrais que ce bruitage soit déjà dans l'Arduino sans ajouter un slot SD. 

Voila mon code.

Code: [Select]


 int pinBouton;
int pinLed1;


void setup() {
  // put your setup code here, to run once:
pinMode (5, OUTPUT);
pinMode (7,INPUT_PULLUP);
pinBouton = 7;
pinLed1 = 5;

}

void loop() {
 boolean etatBouton = digitalRead(pinBouton);
   
   if (etatBouton==LOW)//test si bouton appuyé
  {
   
    digitalWrite(pinLed1,HIGH); //led1 allumée
    delay (1000);
    digitalWrite(pinLed1,LOW);
delay (1000);
    digitalWrite(pinLed1,HIGH); //led1 allumée
    delay (1000);
    digitalWrite(pinLed1,LOW);
delay (1000);

   digitalWrite(pinLed1,HIGH); //led1 allumée
    delay (500);
    digitalWrite(pinLed1,LOW);
delay (500);
    digitalWrite(pinLed1,HIGH); //led1 allumée
    delay (500);
    digitalWrite(pinLed1,LOW);
delay (500);
digitalWrite(pinLed1,HIGH);
delay (500);
digitalWrite(pinLed1,LOW);
delay (1000);

}
 { if (etatBouton==HIGH)//test si bouton levé
  {
   
    digitalWrite(pinLed1,LOW); //led1 éteinte
  }
  delay(2000); //petite attente
}
   
  }
[/code͏]

lesept

Je n'ai jamais fait ça mais ça doit être possible si ton fichier son n'est pas trop gros. Et ça dépend de ta carte Arduino : pour stocker le son sans carte SD, il faudra le mettre dans la flash, et le plus gros Arduino (Mega) dispose de 256ko de flash.
S'il faut plus, il faudra te tourner vers un ESP8266 qui peut avoir 4Mo de flash, qui dispose lui aussi de 4Mo de flash, voire plus.
Sinon tu peux aussi stocker le son dans une mémoire flash externe, mais il faudra réaliser le circuit.

Ensuite pour jouer le son, tu peux t'inspirer de cet exemple
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up