Radar à ultrasons
Le capteur HC-SR04 envoie un « ping », mesure le temps de retour et calcule la distance d'un objet devant lui. Comme les chauves-souris.
SunuMake Capteurs
Mesure ton environnement — 7 composants inclus.
Les étapes
- 1
Matériel
1 capteur HC-SR04 (le module avec 2 « yeux » blancs et 4 broches : VCC, TRIG, ECHO, GND), 5 fils.
- 2
Câble le capteur
VCC → 5 V. GND → GND. TRIG → broche 7 de l'Arduino. ECHO → broche 8 de l'Arduino. Le capteur n'a besoin de rien d'autre.
- 3
Téléverse et ouvre le moniteur série
Téléverse, puis ouvre le moniteur série (à 9600 bauds). Tu vois la distance défiler en cm. Approche ta main du capteur, recule, observe.
- 4
Teste les limites
Le HC-SR04 fonctionne de 2 cm à 400 cm environ. En-dessous de 2 cm il devient imprécis, et au-delà de 4 m il commence à perdre l'écho. Pour les objets très absorbants (tissus, mousse), la portée diminue aussi.
- 5
Bonus : ajoute un LCD
Si tu as un LCD I2C connecté, ajoute les lignes `lcd.print(distance)` du projet « Thermomètre à écran » pour afficher la distance sur l'écran au lieu du moniteur série. Tu obtiens un vrai télémètre portable.
Le programme à téléverser
Copie ce code dans l'IDE Arduino, branche ta carte en USB et clique sur le bouton « Téléverser » (la flèche en haut à gauche).
// Radar à ultrasons — HC-SR04 sur TRIG=7, ECHO=8const int TRIG = 7;const int ECHO = 8;void setup() { pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); Serial.begin(9600);}void loop() { // 1. Envoie un pulse de 10 µs sur TRIG digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); // 2. Mesure combien de temps ECHO reste à HIGH (aller-retour du son) long duree = pulseIn(ECHO, HIGH); // 3. Convertit en cm : son = 343 m/s = 0.0343 cm/µs, on divise par 2 float distance = duree * 0.0343 / 2; Serial.print("Distance : "); Serial.print(distance, 1); Serial.println(" cm"); delay(200);}Comment ça marche ?
Le HC-SR04 fonctionne exactement comme un sonar de sous-marin ou les chauves-souris : il envoie une onde sonore inaudible (40 kHz, trop aigu pour nos oreilles), puis il écoute combien de temps met l'écho à revenir.
Le son se déplace à environ 343 m/s dans l'air — autrement dit 0,0343 cm par microseconde. Si l'écho met 1000 µs à faire l'aller-retour, l'objet est à 1000 × 0,0343 / 2 = 17,15 cm (on divise par 2 parce que le son a fait l'aller ET le retour).
La fonction pulseIn(broche, HIGH) est très pratique : elle mesure pour toi combien de temps la broche reste à HIGH. Sans elle, il faudrait écrire une boucle qui lit la broche en permanence et chronomètre — beaucoup plus de code, pour le même résultat.