#include <Servo.h>
Servo servoRadar;
const int boutonGauche = 8;
const int boutonDroite = 7;
const int buzzer = 9;
const int led = 10;
const int trigPin = 12;
const int echoPin = 11;
int angle = 90;
void setup() {
servoRadar.attach(6);
pinMode(boutonGauche, INPUT_PULLUP);
pinMode(boutonDroite, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
pinMode(led, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servoRadar.write(angle);
Serial.begin(9600);
}
long mesureDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duree = pulseIn(echoPin, HIGH);
long distance = duree * 0.034 / 2; // en cm
return distance;
}
void loop() {
// Contrôle du servomoteur avec les boutons
if (digitalRead(boutonGauche) == LOW) {
angle -= 2; // déplacement plus grand par pas
if (angle < 0) angle = 0;
servoRadar.write(angle);
delay(5); // délai réduit pour plus de vitesse
}
if (digitalRead(boutonDroite) == LOW) {
angle += 2; // déplacement plus grand par pas
if (angle > 180) angle = 180;
servoRadar.write(angle);
delay(5);
}
// Vérification de la distance avec le capteur
long dist = mesureDistance();
Serial.print("Distance: ");
Serial.print(dist);
Serial.println(" cm");
if (dist > 0 && dist < 30) {
tone(buzzer, 1000); // buzzer actif
digitalWrite(led, HIGH); // LED allumée
} else {
noTone(buzzer); // buzzer éteint
digitalWrite(led, LOW); // LED éteinte
}
}