/* * Code d'exemple pour un capteur à ultrasons HC-SR04. */ /* Constantes pour les broches */ const byte TRIGGER_PIN = 2; // Broche TRIGGER const byte ECHO_PIN = 3; // Broche ECHO const byte LED_PIN = 12; // Broche LED /* Constantes pour le timeout: le temps à partir duquel le capteur considère qu'il n'y a aucun obstacle à portée (temps de parcours d'environ 25 ms soit 8m aller-retour. Le capteur n'est pas sensible au delà de 4 m. */ const unsigned long MEASURE_TIMEOUT = 50000UL; // 25ms = ~8m a 340m/s /* Vitesse du son dans l'air en mm/microsecondes */ const float SOUND_SPEED = 340.0 / 1000; /** Fonction setup() */ void setup() { /* Initialise le port serie */ Serial.begin(115200); /* Initialise les broches */ pinMode(TRIGGER_PIN, OUTPUT); digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit etre LOW au repos pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); pinMode(ECHO_PIN, INPUT); } /** Fonction loop() */ void loop() { /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10 microsec sur la broche TRIGGER */ digitalWrite(TRIGGER_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIGGER_PIN, LOW); /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son echo (s'il existe) */ long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT); /* 3. Calcule la distance à partir du temps mesuré */ float distance_mm = measure / 2.0 * SOUND_SPEED; if(distance_mm/1000 < 2){ // CHANGER ICI LA DISTANCE DE DETECTION D'OBSTACLES digitalWrite(LED_PIN, HIGH); // si un obstacle est à moins de 2m, allume la LED } // Affiche les résultats en m Serial.print(F("Distance: ")); Serial.print(distance_mm / 1000.0, 2); Serial.println(F("m)")); /* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */ delay(200); digitalWrite(LED_PIN, LOW); }