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.

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