// Définition des broches
#define TRIG_PIN 5 // Broche TRIG du capteur HC-SR04
#define ECHO_PIN 18 // Broche ECHO du capteur HC-SR04
#define LED_GREEN_PIN 19 // Broche connectée à la LED verte (selon câblage réel)
#define LED_RED_PIN 21 // Broche connectée à la LED rouge (selon câblage réel)
void setup() {
// Initialisation des broches
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_RED_PIN, OUTPUT);
// Éteindre les LEDs au démarrage
digitalWrite(LED_GREEN_PIN, LOW);
digitalWrite(LED_RED_PIN, LOW);
// Initialiser la communication série pour le débogage
Serial.begin(115200);
}
void loop() {
// Envoyer une impulsion de 10 microsecondes sur TRIG_PIN pour déclencher la mesure
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Lire la durée de l'impulsion renvoyée par ECHO_PIN
long duration = pulseIn(ECHO_PIN, HIGH);
// Vérifier si une mesure a été reçue
if (duration == 0) {
Serial.println("Aucune mesure reçue");
digitalWrite(LED_GREEN_PIN, LOW);
digitalWrite(LED_RED_PIN, LOW);
delay(100);
return;
}
// Convertir la durée en distance (en cm)
float distance = (duration / 2.0) * 0.0343;
// Affichage sur le moniteur série
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Seuil de détection (ajuster selon tes besoins)
float threshold = 10.0;
// Allumer la LED verte si l'objet est proche, sinon la rouge
if (distance < threshold) {
digitalWrite(LED_GREEN_PIN, HIGH);
digitalWrite(LED_RED_PIN, LOW);
} else {
digitalWrite(LED_GREEN_PIN, LOW);
digitalWrite(LED_RED_PIN, HIGH);
}
delay(100); // Petite pause pour stabiliser les lectures
}