#include <Servo.h> // Inclure la bibliothèque Servo
Servo servo; // Créer un objet Servo
const int ledPin = 2; // Déclarer la broche de la LED
const int boutonPin = 6; // Broche du bouton
const int servoPin = 3; // Broche du servomoteur
bool etatBoutonPrecedent = LOW; // État précédent du bouton
bool servoPosition90 = true; // Position actuelle du servomoteur (true = 90°, false = 180°)
void setup() {
pinMode(ledPin, OUTPUT); // Configurer la broche de la LED en sortie
pinMode(boutonPin, INPUT_PULLUP); // Configurer la broche du bouton avec résistance pull-up interne
servo.attach(servoPin); // Attacher le servomoteur à la broche 3
servo.write(90); // Initialiser le servomoteur à 90°
digitalWrite(ledPin, LOW); // Éteindre la LED au départ
}
void loop() {
bool etatBouton = digitalRead(boutonPin); // Lire l'état du bouton
// Détection d'un appui (transition LOW -> HIGH)
if (etatBouton == HIGH && etatBoutonPrecedent == LOW) {
if (servoPosition90) {
servo.write(180); // Passer à 180°
digitalWrite(ledPin, LOW); // Allumer la LED
} else {
servo.write(90); // Passer à 90°
digitalWrite(ledPin, HIGH); // Éteindre la LED
}
servoPosition90 = !servoPosition90; // Inverser la position actuelle
delay(300); // Anti-rebond pour éviter plusieurs détections
}
etatBoutonPrecedent = etatBouton; // Mettre à jour l'état précédent
}