#27Débutant

HC-SR04 Mesure de la distance (affichage en série)

4.6(44)
64 terminé
HC-SR04 Mesure de la distance (affichage en série)
Le capteur ultrasonique HC-SR04 permet de mesurer la distance et d'afficher le résultat en cm sur le moniteur série. Il enseigne le principe du calcul de la distance à l'aide d'une onde sonore.

Vidéo

Schéma du circuit

HC-SR04 Mesure de la distance (affichage en série) - Circuit

Code source

Arduino (C++)
1int echoPin = 6;
2int trigPin = 7;
3int maxDistance = 100;
4int minDistance = 3;
5
6void setup() {
7  pinMode(trigPin, OUTPUT);
8  pinMode(echoPin, INPUT);
9  Serial.begin(9600); 
10}
11
12void loop() {
13  digitalWrite(trigPin, HIGH);
14  delayMicroseconds(10);
15  digitalWrite(trigPin, LOW);
16  
17  unsigned long duration = pulseIn(echoPin, HIGH);
18  double totalPath = (double)duration * 0.034;
19  int distance = totalPath / 2;
20  
21  if (distance > minDistance && distance < maxDistance) {
22    Serial.print("Distance: ");
23    Serial.print(distance);
24    Serial.println("cm");
25  }
26  
27  delay(500);
28}

FAQ

Comment le HC-SR04 mesure-t-il la distance ?▾

Le capteur émet une onde sonore de 40 kHz et mesure le temps de retour de l'écho. Le son se propage dans l'air à une vitesse d'environ 343 m/s ; la distance est convertie en centimètres à l'aide de la formule : distance = temps × 0,0343 / 2 (la division par 2 correspond à l'aller-retour).

Quelles sont la distance minimale et la distance maximale qu'il peut mesurer ?▾

En pratique, il mesure des distances comprises entre environ 2 cm et 400 cm. À des distances inférieures à 2 cm, ainsi qu'à des distances très éloignées ou sur des surfaces absorbant le son (tissu, mousse), les mesures peuvent être erronées ou indiquer 0.

Parfois, on obtient des valeurs égales à 0 ou très élevées. Pourquoi ?▾

Si l'écho ne revient pas, la fonction pulseIn expire. Assure-toi que le capteur est orienté vers une surface plane et dure, attends au moins 60 ms entre chaque mesure et filtre les lectures erronées dans le code.

Puis-je l'utiliser avec l'ESP32 ?▾

Le HC-SR04 fonctionne à 5 V et la broche ECHO fournit une tension de sortie de 5 V. Comme l'ESP32 fonctionne en logique 3,3 V, tu dois installer un diviseur de tension (par exemple 1 kΩ + 2 kΩ) sur la ligne ECHO ou utiliser le modèle HC-SR04P compatible 3,3 V.

HC-SR04 Mesure de la distance (affichage en série) | BlueGrays