Bonjour, je voudrais allumer 2 leds avec un bouton et ensuite allumer une 3eme led après un délais de 5 seconde a l'aide de la fonction millis puis l'éteindre 5 seconde après .Pour les 2 premières sa fonctionne mais pour la 3eme c'est plus compliqué. au premier appuis du bouton les 2 leds s'allument comme voulu par contre après 5 seconde la 3eme reste éteinte et lorsque j’appuie une seconde fois sur le bouton les 2 première s’éteignent et la 3eme s'allume sans délais pourriez vous m'expliquer se que je n'ai pas du comprendre merci
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | const int L1 = 8; //initialisation de la led pin 8 const int L2 = 9; //initialisation de la led pin 9 const int L3 = 10; //initialisation de la led pin 10 const int BT1 = 2; //initialisation du bouton pin 2 unsigned long temps; //Variable qui stoke le temps*** int etat_BT1; //variable qui stoke l'etat du bouton int etat_Leds; //variable qui stoke l'etat de la led void setup() { pinMode(L1, OUTPUT); //initialisation de la led en que sortie pinMode(L2, OUTPUT); pinMode(L3, OUTPUT); pinMode(BT1, INPUT); //initialisation du bouton en tant qu'entré Serial.begin(9600); //initialisation sortie serie(écran) //temps = millis(); //initialisation du temps*** } void loop() { /*********************Allumage led 1 et 2 avec le bouton*******************/ Serial.print(digitalRead(etat_Leds)); //affichage a l'écran etat_BT1 = digitalRead(BT1); //enregistre l'état du bouton dans la variable etat_BT1 if(etat_BT1 == LOW) //Si le bouton est a l'état bas { if(etat_Leds == HIGH) { digitalWrite(L1, HIGH); digitalWrite(L2, HIGH); etat_Leds = LOW; delay(10); } else { digitalWrite(L1, LOW); digitalWrite(L2, LOW); etat_Leds = HIGH; delay(10); } temps = millis(); } while(digitalRead(BT1)==LOW); /********************Allumage Led 3 avec millis***************************/ if(etat_Leds == LOW) { if(millis()-temps > 5000) { digitalWrite(L3, HIGH); temps = millis(); } } } |
+0
-0