Arduino, Tutoriels

HC-SR04 capteur ultrason avec Arduino

Hc-Sr04 Capteur Ultrason Avec Arduino

Capteur ultrason HC-SR04 :

HC-SR04 est un capteur ultrason communément utilisé pour mesurer les distances. Il est relativement peu coûteux et facile à utiliser avec un microcontrôleur tel qu’un Arduino. Ce capteur émet un signal sonore à une fréquence élevée et mesure le temps qu’il prend pour que l’écho de ce signal revienne. En utilisant la vitesse du son dans l’air, il est possible de calculer la distance jusqu’à l’objet.

Hc-Sr04&Nbsp;Capteur Ultrason Arduino

Principe du fonctionnement :

Le fonctionnement de l’HC-SR04 est assez simple. Il comporte deux éléments principaux : un émetteur ultrasonique et un récepteur ultrasonique. Voici les étapes clés du fonctionnement du capteur :

  1. Lorsque le capteur est alimenté, l’émetteur envoie une impulsion ultrasonique à une fréquence spécifique (généralement de 40 kHz).
  2. Lorsque cette impulsion sonore atteint un objet, elle rebondit et est renvoyée vers le récepteur ultrasonique comme un écho.
  3. Le récepteur mesure le temps entre le moment où l’impulsion a été émise et celui où l’écho a été reçu.
  4. En utilisant la vitesse connue du son dans l’air (environ 343 m/s ou 34,3 cm/µs) et la durée de l’écho mesurée, le capteur calcule la distance jusqu’à l’objet en utilisant la formule : distance = (durée de l’écho / 2) * vitesse du son.
  5. Le résultat est ensuite converti en une distance numérique et envoyé au Arduino via une sortie numérique.

Le montage:

Pour utiliser l’HC-SR04 avec un Arduino, vous aurez besoin d’un Arduino Uno, du capteur HC-SR04, de quelques fils pour relier les composants, et d’un afficheur ou d’un moniteur série pour afficher les résultats (facultatif).

Commençons par brancher le capteur:

  • Branchez l’alimentation 5V d’ Arduino à la broche VCC du capteur pour le mettre sous tension.
  • Connectez la broche GND de la carte Arduino à la broche GND du capteur pour assurer une liaison à la masse.
  • Raccordez la broche D12 d’ Arduino à la broche TRIGGER du capteur pour déclencher l’émission de l’impulsion ultrasonique.
  • Reliez la broche D11 de la carte Arduino à la broche ECHO du capteur pour recevoir l’écho de l’impulsion ultrasonique.

Hc-Sr04&Nbsp;Capteur Ultrason Avec Arduino

Le code :

const int trigPin = 12;
const int echoPin = 11;
void setup() {
  //configurer les broches trigPin et echoPin en entrée/sortie
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600); //initialiser le moniteur série
}
void loop() {
  long duration, distance;
  
  // envoyer une impulsion de 10 microsecondes
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // mesurer la durée de l'impulsion écho en microsecondes
  duration = pulseIn(echoPin, HIGH);
  
  // calculer la distance en utilisant la vitesse du son (34300 cm/s)
  distance = (duration/2) / 29.1;
  
  if (distance >= 200 || distance <= 0){
    Serial.println("Distance non valide");
  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
  }
  
  delay(500); // attendre un peu avant de répéter la mesure
}

Explication du code :

Le code ci-dessus est un exemple de programme Arduino qui utilise le capteur HC-SR04 pour mesurer les distances. Il utilise des fonctions intégrées d’Arduino pour envoyer et recevoir des signaux, ainsi que pour effectuer des calculs simples.

  • Tout d’abord, les lignes const int trigPin = 12; et const int echoPin = 11; déclarent des constantes pour les broches trigPin et echoPin, respectivement. Ces broches sont utilisées pour envoyer un signal de déclenchement à l’émetteur ultrasonique et pour recevoir l’écho du signal reçu par le récepteur ultrasonique.
  • La fonction setup() est exécutée une seule fois lorsque le programme démarre. Elle utilise la fonction pinMode() pour configurer les broches trigPin et echoPin en tant qu’entrées et sorties, respectivement. La fonction Serial.begin(9600); permet d’initialiser la communication série avec un moniteur série ou un afficheur.
  • La fonction loop() est exécutée en boucle à chaque fois que le programme est en cours d’exécution. Il utilise d’abord digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); pour envoyer un signal de déclenchement à l’émetteur ultrasonique. Le signal de déclenchement est maintenu à l’état haut pendant 10 microsecondes.
  • Ensuite, la fonction pulseIn(echoPin, HIGH); est utilisée pour mesurer la durée de l’écho reçu sur la broche echoPin. Cette durée est enregistrée dans la variable duration.
  • Ensuite, le code calcule la distance en utilisant la formule distance = (durée de l’écho / 2) / 29.1 (cm/us). Cette valeur est enregistrée dans la variable distance.
  • Le résultat est ensuite testé pour vérifier si il est valide ( inférieur à 200cm et supérieur à 0cm)
  • Si il est valide, le résultat est affiché en utilisant la fonction Serial.print() et le cm est affiché pour indiquer l’unité de mesure.
  • Sinon un message d’erreur « Distance non valide » est affiché.
  • Enfin, la fonction delay(500); est utilisée pour attendre 500 millisecondes avant de répéter la mesure. Cela permet au capteur de se reposer entre les mesures et empêche la surcharge de données.

Video explicatif :

https://www.youtube.com/watch?v=gpjB4qNfUkw

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.