Commits (2)
// 🔹 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);
}