// 🔹 Définition des broches pour les capteurs ultrason const int trigPin1 = 9; // TRIG du capteur gauche const int echoPin1 = 8; // ECHO du capteur gauche const int trigPin2 = 7; // TRIG du capteur droit const int echoPin2 = 6; // ECHO du capteur droit // 🔹 Définition des broches pour la LED RGB const int redPin = 10; // LED Rouge const int greenPin = 11; // LED Verte const int bluePin = 12; // LED Bleue void setup() { Serial.begin(9600); // Initialisation des capteurs pinMode(trigPin1, OUTPUT); pinMode(echoPin1, INPUT); pinMode(trigPin2, OUTPUT); pinMode(echoPin2, INPUT); // Initialisation de la LED RGB pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { // 🔹 Mesure des distances float distance1 = measureDistance(trigPin1, echoPin1); float distance2 = measureDistance(trigPin2, echoPin2); // 🔹 Envoi des distances sous format JSON Serial.print("{\"gauche\":"); Serial.print(distance1); Serial.print(", \"droite\":"); Serial.print(distance2); Serial.println("}"); // 🔹 Mise à jour de la LED en fonction des distances updateLED(distance1, distance2); delay(500); // Pause pour éviter les mesures trop fréquentes } // 🔹 Fonction pour mesurer la distance avec un capteur ultrason float measureDistance(int trig, int echo) { digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig, HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); long duration = pulseIn(echo, HIGH, 30000); return (duration * 0.0343) / 2; } // 🔹 Fonction pour gérer l'affichage de la LED RGB void updateLED(float distanceGauche, float distanceDroite) { const int seuilDanger = 30; // Seuil d'obstacle critique en cm if (distanceGauche < seuilDanger && distanceDroite < seuilDanger) { // 🔴 Rouge si obstacles des deux côtés setLED(HIGH, LOW, LOW); } else if (distanceGauche < seuilDanger || distanceDroite < seuilDanger) { // 🔵 Bleu si obstacle d'un seul côté setLED(LOW, LOW, HIGH); } else { // 🟢 Vert si tout est dégagé setLED(LOW, HIGH, LOW); } } // 🔹 Fonction utilitaire pour allumer la LED RGB void setLED(int r, int g, int b) { digitalWrite(redPin, r); digitalWrite(greenPin, g); digitalWrite(bluePin, b); }