#include <Servo.h>
const int trigPin = 9;
const int echoPin = 8;
const int ledPin = 3; // optionnel
const int servoPin = 10;
Servo servo;
long duration;
int distance;
bool isOpen = false;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
servo.attach(servoPin);
servo.write(0); // Poubelle fermée
Serial.begin(9600);
}
void loop() {
// Mesure de distance avec HC-SR04
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Conversion en cm
Serial.print("Distance : ");
Serial.println(distance);
if (distance < 15 && !isOpen) {
servo.write(90); // Ouvrir couvercle
digitalWrite(ledPin, HIGH);
isOpen = true;
delay(3000); // Attendre 3 secondes
} else if (isOpen) {
servo.write(0); // Fermer couvercle
digitalWrite(ledPin, LOW);
isOpen = false;
delay(1000);
}
delay(200);
}