// Déclaration des variables
int button = 3;
int pinLED1 = 2;
int pinLED2 = 1;
int pinLED3 = 0;
int buttonState = 0; // état du bouton est a 0
int lastButtonState = 0; // l'ancien état est a 0
int pause = 500;
// le setup
void setup()
{
// initialise les led en sortie
pinMode(pinLED1, OUTPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinLED3, OUTPUT);
// initialise le bouton en entrée
pinMode(button, INPUT_PULLUP);
// les 3 led éteintes
digitalWrite(pinLED1, LOW);
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, LOW);
}
// fonction chenillard
void chen()
{
for (int i=0; i <= 5; i++)
{
digitalWrite(pinLED1, HIGH);
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, LOW);
delay(pause);
digitalWrite(pinLED1, LOW);
digitalWrite(pinLED2, HIGH);
digitalWrite(pinLED3, LOW);
delay(pause);
digitalWrite(pinLED1, LOW);
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, HIGH);
delay(pause);
}
}
// fonction clignotte
void clign()
{
for (int i=0; i <= 5; i++)
{
digitalWrite(pinLED1, HIGH);
digitalWrite(pinLED2, HIGH);
digitalWrite(pinLED3, HIGH);
delay(pause);
digitalWrite(pinLED1, LOW);
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, LOW);
delay(pause);
}
}
// la boucle
void loop()
{
// lit l'état du bouton
buttonState = digitalRead(button);
// compare avec l'état précédant
if (buttonState != lastButtonState) {
// si l'état du bouton est a 0 (bouton enclenché)
if (buttonState == LOW) {
chen();
delay(1000);
clign();
delay(1000);
}
// Delay pour la sensibilité du bouton
delay(50);
}
// sauve l'état du bouton pour la réinitialiser la boucle
lastButtonState = buttonState;
}