#include <Servo.h>
int GREEN = 9; // LED verte
int RED = 8; // LED rouge
int trigPin = 2; // Broche Trig du capteur
int echoPin = 3; // Broche Echo du capteur
int buttonPin = 4; // Broche du bouton
Servo door; // Définir l'objet Servo
void setup() {
door.attach(10); // Attacher le Servo à la broche 10
pinMode(GREEN, OUTPUT);
pinMode(RED, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buttonPin, INPUT); // Configurer le bouton en entrée
}
void loop() {
long duration, distance;
// Mesurer la distance avec le capteur ultrason
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Calculer la distance en cm
// Vérifier l'état du bouton
if (digitalRead(buttonPin) == HIGH) { // Si le bouton est pressé
door.write(0); // Ouvrir la porte
digitalWrite(GREEN, HIGH); // Allumer la LED verte
digitalWrite(RED, LOW); // Éteindre la LED rouge
delay(2000); // Attendre 2 secondes pour que la porte s'ouvre
}
// Vérifier si un objet est détecté à moins de 10 cm
else if (distance < 10) {
door.write(0); // Ouvrir la porte
digitalWrite(GREEN, HIGH); // Allumer la LED verte
digitalWrite(RED, LOW); // Éteindre la LED rouge
}
else {
door.write(90); // Fermer la porte
digitalWrite(GREEN, LOW); // Éteindre la LED verte
digitalWrite(RED, HIGH); // Allumer la LED rouge
}
}