Bonjour, pour un devoir je dois réalisé un code avec quatre leds rouge, une led verte et six boutons, tel que si j'appuie sur les boutons dans un ordre précis (j'ai choisi 4,5,3,6) je déverrouille mon coffre. A chaque fois que j'appuie sur le bon bouton une led rouge s'allume, quand les quatres sont allumés, la led verte s'allume pour montrer que le code est bon. Si l'ordre des boutons n'est pas respecté alors les leds rouges clignotes (3 fois) puis le code doit me renvoyer au début et je dois recommencer depuis le premier chiffre de la combinaison.
j'ai deux problèmes avec le code que j'ai rédigé: -la led verte est allumée en permanence.
-je ne sais pas comment faire pour que ma fonction attende que je clique sur un bouton pour passer à l'étape suivant.
Je débute sur Arduino donc mon code n'est pas très beau et je dois pouvoir le simplifier mais mon plus gros problème c'est de le faire fonctionner.
(pour qu'il soit plus court j'ai enlever une partie du code mais vue qu'il doit faire la même chose pour les leds 2, 3 et 4 je ne pense pas que ça soit un problème)
const int led1 = 13;
const int led2 = 12;
const int led3 = 11;
const int led4 = 10;
const int led5 = 9;
int etatLed1;
int etatLed2;
int etatLed3;
int etatLed4;
int etatLed5;
const int bouton1 = 7;
const int bouton2 = 6;
const int bouton3 = 5;
const int bouton4 = 4;
const int bouton5 = 3;
const int bouton6 = 2;
int etatBouton1; //variable qui enregistre l'état des boutons
int etatBouton2;
int etatBouton3;
int etatBouton4;
int etatBouton5;
int etatBouton6;
int i = 0;
void setup () {
Serial.begin(9600);
pinMode(led1, OUTPUT); //La led1 est déclarée comme une sortie
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(bouton1, INPUT); //Le bouton1 est déclarée comme une sortie
pinMode(bouton2, INPUT);
pinMode(bouton3, INPUT);
pinMode(bouton4, INPUT);
pinMode(bouton5, INPUT);
pinMode(bouton6, INPUT);
digitalWrite(bouton1, HIGH); //Pullup interne sur le bouton
digitalWrite(bouton2, HIGH);
digitalWrite(bouton3, HIGH);
digitalWrite(bouton4, HIGH);
digitalWrite(bouton5, HIGH);
digitalWrite(bouton6, HIGH);
etatBouton1 = HIGH; //L'état du bouton1 est initialisé comme "relaché"
etatBouton2 = HIGH;
etatBouton3 = HIGH;
etatBouton4 = HIGH;
etatBouton5 = HIGH;
etatBouton6 = HIGH;
etatLed1 = LOW;
etatLed2 = LOW;
etatLed3 = LOW;
etatLed4 = LOW;
etatLed5 = LOW;
Serial.println("Entrer le code de l'agence");
}
void loop() {
while (i=0){
if (etatBouton4 == LOW) {
digitalWrite(led1, HIGH);
etatLed1 = HIGH;
}
else {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(700);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(700);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(700);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(700);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(700);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(700);
}
}
while(i=4){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
Serial.print("Niveau d'identification 1 valider");
}
}
Merci beaucoup pour votre aide ![]()

