Menu
CoddyTech

Durée de l’écho ultrasonique

Fait partie de la section Écrans et capteurs du Journey Arduino de Coddy. Leçon 18 sur 24.

Le HC-SR04 mesure la distance comme une chauve-souris : il envoie un clic trop aigu pour que nous puissions l’entendre et mesure le temps que met l’écho. Plus l’objet est éloigné, plus l’écho met longtemps à revenir.

Il possède deux broches de signal. Une courte impulsion HIGH sur TRIG lui indique d’émettre un clic. ECHO passe alors à HIGH et y reste jusqu’au retour de l’écho : la durée de cette impulsion HIGH correspond donc au temps qu’a mis le son.

delayMicroseconds() attend des millionièmes de seconde, une durée suffisamment courte pour l’impulsion de déclenchement de 10 microsecondes. pulseIn(pin, HIGH) attend que la broche passe à HIGH et renvoie le nombre de microsecondes pendant lesquelles elle est restée à HIGH. Si aucune impulsion n’arrive au bout d’une seconde, la fonction abandonne et renvoie 0.

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);     // l’impulsion de déclenchement
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);

Un écho peut durer jusqu’à 38000 microsecondes, ce qui dépasse la capacité d’un int : stockez-le donc dans un long.

challenge icon

Défi

Moyen

TRIG est sur la broche 9 et ECHO sur la broche 10. Dans loop() :

  • envoyer une impulsion HIGH de 10 microsecondes sur TRIG
  • mesurer l’écho avec pulseIn(echoPin, HIGH)
  • afficher la durée avec Serial.println()

Appuie sur Run, rapproche et éloigne l’objet sur la carte, puis appuie sur Check.

Essayez vous-même

const int trigPin = 9;
const int echoPin = 10;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // envoie une impulsion de 10 microsecondes sur TRIG
  // mesure la durée de l’écho avec pulseIn() et affiche-la
  delay(200);
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Écrans et capteurs

Entraînez-vous par vous-même : Playground Arduino