#include <Servo.h>
const int trigPin = 9; // Broche de déclenchement du capteur ultrasonique
const int echoPin = 10; // Broche d'écho du capteur ultrasonique
const int servoPin = 6; // Broche de contrôle du servo moteur
Servo myServo; // Création de l'objet Servo pour contrôler le servo moteur
void setup() {
Serial.begin(9600); // Initialisation de la communication série
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(servoPin, OUTPUT);
myServo.attach(servoPin); // Attache le servo à la broche spécifiée
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Calcul de la distance en centimètres
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Si la distance est inférieure à 20 cm, ouvrez la poubelle
if (distance < 20) {
openBin();
} else {
closeBin();
}
delay(1000); // Délai d'une seconde entre les lectures du capteur
}
void openBin() {
// Ouvrir la poubelle
myServo.write(90); // Angle pour ouvrir la poubelle
delay(500); // Attendre 0.5 seconde (ajustez selon vos besoins)
}
void closeBin() {
// Fermer la poubelle
myServo.write(0); // Angle pour fermer la poubelle
delay(500); // Attendre 0.5 seconde (ajustez selon vos besoins)
}