const int Led1= 2; const int Bp1 =3; int MemLed1 =0; int MemBp1 =0; int tempo =50; void DebugVar(int nb) { Serial.print("temps = ");Serial.println(nb); Serial.print("Bp1 =");Serial.println(digitalRead(Bp1)); Serial.print("MemBp1 =");Serial.println(MemBp1); Serial.print("MemLed1 =");Serial.println(MemLed1); delay(250); } void setup() { Serial.begin(9600); pinMode(Led1, OUTPUT); pinMode(Bp1, INPUT); digitalWrite(Led1, LOW); //DebugVar(10); } void loop() { int valeurBp1 = digitalRead(Bp1);// On lit la valeur de Bp1 au début de la boucle delay(tempo); /* //Temps 0 if (valeurBp1 == 0 && MemBp1 ==0 && MemLed1 == 0) {// etat present digitalWrite(Led1, LOW);MemBp1 =0;MemLed1 = 0; // Etat futur //delay(tempo);DebugVar(0); } */ //Temps 1 if (valeurBp1 == 1 && MemBp1 ==0 && MemLed1 == 0) { digitalWrite(Led1, HIGH);MemBp1 =1;MemLed1 = 1; //delay(tempo);DebugVar(1); } //Temps 2 if (valeurBp1 == 0 && MemBp1 ==1 && MemLed1 == 1) { digitalWrite(Led1, HIGH);MemBp1 =0;MemLed1 = 1; //delay(tempo);DebugVar(2); } //Temps 3 if (valeurBp1 == 1 && MemBp1 ==0 && MemLed1 == 1) { digitalWrite(Led1, LOW);MemBp1 =1;MemLed1 = 0; //delay(tempo);DebugVar(3); } //Temps 4 if (valeurBp1 == 0 && MemBp1 ==1 && MemLed1 == 0) { digitalWrite(Led1, LOW);MemBp1 =0;MemLed1 = 0; //delay(tempo);DebugVar(4); } }