Bonjour a tous, je vient vous voir car j'ai un petit problème.
J'ai fait un montage a base de servomoteur et de 3 Leds et 2 boutons. Le but du jeu étant :
Repos : Led verte allumée.
Appuie sur le bouton 1 : Rotation du servo de 180° plus allumage des 3 Leds synchronisé.
Appuie sur le bouton 2 : Clignotement des Leds selon le schéma suivant ( Led verte / Led rouge)(Led jaune - Led jaune)( Led verte / Led rouge).
Pour la partie 1 pas de problème, mon servo fait son boulot, les leds aussi
Par contre dès que j'appuis sur le bouton 2, le clignotement ce fait, mais je ne peut pas le couper, plus rien ne ce passe.
Je vous joint une petite vidéo du problème (Arduino - YouTube)
#include <Servo.h>
Servo servo;
int pos = 0;
const int bouton = 2;
const int bouton2 = 3;
const int ledVert = 6;
const int ledJaune = 5;
const int ledRouge = 4;
int etatBouton;
void setup()
{
pinMode(bouton, INPUT);
pinMode(bouton2, INPUT);
pinMode(ledVert, OUTPUT);
pinMode(ledJaune, OUTPUT);
pinMode(ledRouge, OUTPUT);
digitalWrite(ledVert, HIGH);
digitalWrite(ledJaune, HIGH);
digitalWrite(ledRouge, HIGH);
etatBouton = HIGH;
servo.attach(9); // Servo sur pin 9
servo.write(0); // Servo en position 0
}
void loop()
{
etatBouton = digitalRead(bouton2);
while(etatBouton == HIGH) // Tant que le bouton est pressé...
{
digitalWrite(ledVert, LOW);
digitalWrite(ledRouge, LOW);
delay(100);
digitalWrite(ledVert, HIGH);
digitalWrite(ledRouge, HIGH);
delay(100);
digitalWrite(ledJaune, LOW);
delay(100);
digitalWrite(ledJaune, HIGH);
delay(100);
digitalWrite(ledJaune, LOW);
delay(100);
digitalWrite(ledJaune, HIGH);
delay(100);
}
digitalWrite(ledVert, LOW); // Bouton 2 relâcher (repos)
etatBouton = digitalRead(bouton);
if(etatBouton == HIGH) // Si bouton actif alors clignotement led selon schéma
{
digitalWrite(ledVert, LOW);
digitalWrite(ledJaune, LOW);
digitalWrite(ledRouge, LOW);
delay(5);
digitalWrite(ledVert, HIGH);
digitalWrite(ledJaune, HIGH);
digitalWrite(ledRouge, HIGH);
servo.write(167);
}
else // sinon servo retourne a la position 0
{
servo.write(0);
}
}