const int buttonPin = 2; // Broche du bouton poussoir
const int ledPin = 9; // Broche de la LED
int buttonState = 0; // Variable pour lire l'état du bouton
int lastButtonState = 0; // Variable pour stocker l'état précédent du bouton
int effect = 0; // Variable pour suivre l'effet actuel
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // Initialisation de la communication série à 9600 bauds
}
void loop() {
buttonState = digitalRead(buttonPin);
// Détection du relâchement du bouton (passage de HIGH à LOW)
if (lastButtonState == HIGH && buttonState == LOW) {
effect++;
if (effect > 2) {
effect = 0;
}
delay(200); // Anti-rebond pour éviter les multiples détections
}
// Mise à jour de l'état précédent du bouton
lastButtonState = buttonState;
// Affichage des variables sur le moniteur série
Serial.print("Button State: ");
Serial.print(buttonState);
Serial.print(" | Effect: ");
Serial.println(effect);
Serial.print("LastButton: ");
Serial.print(lastButtonState);
Serial.print("|");
delay(200);
switch (effect) {
case 0:
analogWrite(ledPin, 0); // LED éteinte
break;
case 1:
analogWrite(ledPin, 128); // LED à moitié puissance
break;
case 2:
analogWrite(ledPin, 255); // LED à pleine puissance
break;
}
delay(100); // Petite pause pour stabiliser le programme
}