Arduino tuto capteur ultrason HC-SR04

Aujourd’hui on va apprendre à comment utiliser un capteur ultrason HC-SR04 avec un arduino.

On va seulement survolé la manière de mesurer une distance avec ce capteur, à toi après de l’utiliser pour ce que tu veux, comme un avertisseur de distance au fond du garage pour se garer.

Ultrason_HC-SR04

Avec ce capteur on va pouvoir mesurer des distance entre 2cm à 400cm.

Son fonctionnement est assez simple, on envoie une impulsion de 10us ( documentation module) et on mesure le temps de l’impulsion de retour en microseconde.

On va ensuite faire un petit calcul, on utilise la vitesse moyenne que parcourt le son ( dans l’air) soit 340m/s ce qui donne 29.1 us/cm

Pour calculer la distance on pose : Distance= Temps mesuré / 29.1 usMais ici on a la distance aller retour donc on va devoir diviser par 2 la distance ce qui nous donne : Distance = distance / 2

Et en simplifiant le calcul on aura : Distance=temps mesuré / 58

 

#define PIN_TRIG  7
#define PIN_ECHO  6
#define PIN_LED_ROUGE  5
#define PIN_LED_ORANGE  4
#define PIN_LED_VERTE  3

long duration_hc, distance_hc;

void setup() {
  Serial.begin (9600);
  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECHO, INPUT);

  pinMode(PIN_LED_ROUGE, OUTPUT);
  pinMode(PIN_LED_ORANGE, OUTPUT);
  pinMode(PIN_LED_VERTE, OUTPUT);
}

void loop() {

  mesureDistance();
  Serial.print("Distance ");
  Serial.print(distance_hc);
  Serial.println(" Cm ");

  if(distance_hc > 200){
    // aucune led allumé
    digitalWrite(PIN_LED_ROUGE,LOW);
    digitalWrite(PIN_LED_ORANGE,LOW);
    digitalWrite(PIN_LED_VERTE,LOW);
  }
  else if(distance_hc>100){
    digitalWrite(PIN_LED_ROUGE,LOW);
    digitalWrite(PIN_LED_ORANGE,LOW);
    digitalWrite(PIN_LED_VERTE,HIGH);
  }
  else if(distance_hc>50){
    digitalWrite(PIN_LED_ROUGE,LOW);
    digitalWrite(PIN_LED_ORANGE,HIGH);
    digitalWrite(PIN_LED_VERTE,LOW);
  }
  else if(distance_hc>0){
    digitalWrite(PIN_LED_ROUGE,HIGH);
    digitalWrite(PIN_LED_ORANGE,LOW);
    digitalWrite(PIN_LED_VERTE,LOW);
  }
  else{
    digitalWrite(PIN_LED_ROUGE,LOW);
    digitalWrite(PIN_LED_ORANGE,LOW);
    digitalWrite(PIN_LED_VERTE,LOW);
  }

}

void mesureDistance(){
  digitalWrite(PIN_TRIG, LOW);  
  delayMicroseconds(2); 
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10); 
  digitalWrite(PIN_TRIG, LOW);
  duration_hc = pulseIn(PIN_ECHO, HIGH);
  Serial.println(duration_hc);
  distance_hc = duration_hc / 58;
}

En matériel il nous faut :
– 1 arduino
– 1 capteur HC-SR04
– 3 led et leurs résistances ( rouge,vert, orange ,180Ω , 220Ω , 220Ω ) (option)

Niveau cablage le Vcc et le Gnd pour le capteur HC-SR04 ,le pin TRIG connecté au pin 7 de l’arduino et le pin ECHO au pin 6.

Pour visualiser des valeurs j’ai mis quelques led avec leurs résistances , pin 5,4,3 .

Pour le code rien de compliqué on défini toujours nos pin 7 pour le trig et le 6 pour echo 2 variable pour mesurer la durée du signal et la distance.

Dans le setup le pin TRIG en output et le pin ECHO en input et on oublie pas mes led pour ce tuto en sorties.

Le serial est la pour visualiser la distance avec le moniteur série.

Dans ma boucle j’appelle ma fonction qui mesure la distance , j’affiche la distance avec le serial et puis j’ai mes petites conditions pour l’éclairage des led, rien de compliqué, si ma distance est supérieure à 200cm alors aucune led allumée, sinon si supérieur à 100cm led verte allumée , sinon si supérieur à 50cm led orange allumée, sinon supérieur à 0 led rouge allumée sinon dernier cas (le cas 0 ) aucune led allumée ( 0 pour signaler une erreur de calcul) .

Maintenant parlons de la partie la plus importante la fonction mesureDistance, elle fonctionne comme ceci.

Je met un état bas sur le TRIG pour pouvoir y envoyer 2ms après un signal ( TRIG à HIGH ) pendant 10ms puis je le rebascule à LOW de la j’attends un pulsation de retour de l’ultrason avec pulseIn sur le pin ECHO et j’obtiens une durée en ms.

Cette durée je la divise par 58 pour obtenir ma distance en cm.

Le code est terminé pour le capteur et c’est vraiment facile d’utiliser ce capteur pour vos projets ou vous devez mesurer une distance.

Ici avec le code fourni vous allez pouvoir commencer à faire un détecteur de distance pour votre garage par exemple mais il reste à perfectionner le montage ( consommation électrique capteur et arduino ).

Utiliser le même principe des bouchons du tuto du feu tricolore et des leds puissantes pour faire un feu signalant la distance.

Télécharger le code :Capteur Ultrason HC-SR04

J’en ai terminé avec le capteur ultrason, trouve un usage, utilise ce capteur dans un montage et partage tes créations.

📌 FAQ – Utiliser le capteur ultrason HC-SR04 avec Arduino

Q : Qu’est-ce que le capteur HC-SR04 ?
R : Le HC-SR04 est un capteur de distance à ultrasons qui mesure la distance entre le capteur et un objet en utilisant des ondes sonores à haute fréquence. Il est couramment utilisé dans les projets Arduino pour détecter des obstacles ou mesurer des distances.


Q : Comment fonctionne le HC-SR04 ?
R : Le capteur émet une impulsion ultrasonique via la broche Trig, qui se réfléchit sur un objet et revient au capteur. La broche Echo reçoit cette onde réfléchie. Le temps écoulé entre l’émission et la réception permet de calculer la distance.


Q : Quelles sont les caractéristiques techniques du HC-SR04 ?
R :

  • Tension de fonctionnement : 5 V

  • Consommation : 15 mA

  • Fréquence de fonctionnement : 40 kHz

  • Distance minimale : 2 cm

  • Distance maximale : 400 cm

  • Précision : ±3 mm

  • Angle de détection : environ 15°


Q : Comment connecter le HC-SR04 à un Arduino ?
R :

  • VCC → 5V Arduino

  • GND → GND Arduino

  • Trig → Broche numérique (par exemple D9)

  • Echo → Broche numérique (par exemple D10)

Assurez-vous que les connexions sont correctes pour un fonctionnement optimal.


Q : Peut-on utiliser plusieurs capteurs HC-SR04 avec un seul Arduino ?
R : Oui, il est possible d’utiliser plusieurs capteurs HC-SR04 avec un seul Arduino en connectant chaque capteur à des broches distinctes. Il est important de gérer les déclenchements de manière séquentielle pour éviter les interférences entre les capteurs.

🔗 À découvrir aussi sur Retro&Geek

👉 Utiliser un moteur pas à pas 28BYJ-48 avec ULN2003A
Apprenez à contrôler des moteurs pas à pas pour des mouvements précis dans vos projets Arduino.

👉 Créer une télécommande infrarouge avec Arduino
Contrôlez vos projets électroniques à distance grâce à une télécommande infrarouge.

👉 Utiliser un écran LCD 16×2 avec Arduino
Affichez des informations en temps réel sur un écran LCD, complément idéal pour vos projets Arduino.

👉 Configurer le module Bluetooth HC-05 pour Arduino
Ajoutez une connectivité sans fil à vos projets Arduino pour les contrôler via Bluetooth.

N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne instagramtwitter , facebook ,youtube ; si vous ne comprenez pas certaines parties du tutoriel n’hésitez pas , me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel  et à partager les projets que vous aimeriez créer etc…

Comme toujours allez sur la page de C’est quoi Retro et Geek pour connaître tout ce que je recherche à faire sur la chaîne.

Merci les RetroGeeker et RetroGeekeuse