HC-SR04: tout sur le capteur à ultrasons

Capteur HC-SR04

Parfois c'est nécessaire Mesurer les distances et pour cela vous avez à votre disposition plusieurs capteurs. Nous avons déjà dédié un article pour parler d'un capteur de distance de haute précision tel que le VL52L0X. Ce capteur était de type ToF et reposait sur des mesures très précises grâce à son laser. Mais si la précision n'est pas si importante pour vous et que vous voulez quelque chose qui vous permette de mesurer des distances à petit prix, une autre possibilité qui vous avez à portée de main est le HC-SR04.

Dans le cas d' Capteur de distance HC-SR04, la distance est mesurée par ultrasons. Le système est similaire à la méthode optique du VL52L0X. Autrement dit, il est émis, il y a un rebond et il est reçu, mais dans ce cas, au lieu d'être un laser ou IR, il s'agit d'ultrasons. Si vous êtes passionné d'électronique, de robotique ou de fabricant amateur, vous pouvez l'utiliser pour une multitude de projets DIY tels que des systèmes de détection d'obstacles pour robots, des capteurs de présence, etc.

Qu'est-ce que le HC-SR04?

Eh bien, il est évident, comme je l'ai déjà commenté dans les paragraphes précédents, Le HC-SR04 est un capteur de distance de faible précision basé sur les ultrasons. Avec lui, il permet de mesurer les distances de manière simple et rapide, bien qu'en principe il ne soit généralement pas utilisé pour cela. Le plus souvent, il est utilisé comme transducteur pour détecter les obstacles et les éviter grâce à d'autres mécanismes associés à la réponse du capteur.

L'apparition du HC-SR04 est très distinctif et facilement reconnaissable. De plus, c'est un élément très populaire dans les kits de démarrage Arduino et nécessaire pour une multitude de projets. Il est facilement identifiable car il possède deux «yeux» qui sont en fait les appareils à ultrasons que ce module intègre. L'un d'eux est un émetteur d'ultrasons et l'autre un récepteur. Il fonctionne à une fréquence de 40 kHz, il est donc inaudible pour les humains.

Principes du capteur à ultrasons

Le principe selon lequel Il est basé sur la simulation de celui utilisé lorsque vous jetez une pierre dans un puits pour mesurer sa profondeur. Vous jetez la pierre et chronométrez le temps qu'il faut pour tomber au fond. Ensuite, vous calculez la vitesse en fonction du temps écoulé et vous obtenez la distance parcourue par la pierre. Mais dans ce cas, le capteur, c'est vous.

ESP8266
Article connexe:
ESP8266: le module WIFI pour Arduino

Dans le HC-SR04, l'émetteur émettra des ultrasons et lorsqu'ils rebondiront sur un objet ou un obstacle qui se trouve sur la façon dont ils seront capturés par le récepteur. le circuit fera les calculs nécessaires de cet écho pour déterminer la distance. Cela peut également vous être familier si vous connaissez le système utilisé par certains animaux tels que les dauphins, les baleines ou les chauves-souris pour localiser les obstacles, les proies, etc.

En comptant le temps entre le moment où l'impulsion est envoyée et la réception de la réponse, le temps et donc la distance peuvent être déterminés avec précision. Rappelle-toi que [Espace = temps de vitesse] mais dans le cas du HC-SR04, vous devez diviser cette quantité par / 2, car le temps a été mesuré à partir du moment où l'ultrason sort et parcourt l'espace jusqu'à ce qu'il heurte l'obstacle et le chemin du retour, donc ce sera approximativement la moitié de cela ...

Brochage et fiches techniques

Vous savez déjà que pour voir les données complètes du modèle que vous avez acquis, le mieux est trouver la fiche technique béton du fabricant. Par exemple, voici un Fiche technique Sparkfun, mais il y en a beaucoup plus disponibles en PDF. Cependant, voici les données techniques les plus importantes du HC-SR04:

  • Brochage: 4 broches pour l'alimentation (Vcc), le déclencheur (Trigger), le récepteur (Echo) et la masse (GND). Le déclencheur indique quand le capteur doit être activé (lorsque l'ultrason est lancé), et ainsi il sera possible de connaître le temps écoulé lorsque le récepteur reçoit le signal.
  • Alimentation: 5 v
  • Fréquence des ultrasons: 40 Khz, l'oreille humaine n'entend que de 20Hz à 20Khz. Tout ce qui est en dessous de 20Hz (infrasons) et au-dessus de 20Khz (ultrasons) ne sera pas perceptible.
  • Consommation (veille): <2 mA
  • Consommation de travail: 15mA
  • Angle effectif: <15º, selon les angles des objets, vous pouvez obtenir des résultats meilleurs ou moins bons.
  • Distance mesurée: de 2cm à 400cm, bien qu'à partir de 250 cm la résolution ne sera pas très bonne.
  • Résolution moyenne: Variation de 0.3 cm entre la distance réelle et la mesure, donc bien qu'elles ne soient pas considérées comme très précises comme le laser, les mesures sont tout à fait acceptables pour la plupart des applications.
  • PRIX: à partir de 0,65 € environ

Intégration avec Arduino

HC-SR04 avec Arduino

Pour le connecter à Arduino ne pourrait pas être plus simple. Il vous suffit d'être en charge de connecter GND à la sortie correspondante de votre Arduino marquée comme telle, Vcc avec l'alimentation Arduino 5v et les deux autres broches du HC-SR04 avec les entrées / sorties choisies pour votre projet. Vous pouvez voir que c'est simple dans le schéma Fritzing supérieur ...

Vous devez juste avoir une considération, que le tigrou doit recevoir une impulsion électrique d'au moins 10 microsecondes pour qu'il s'active correctement. Auparavant, vous devez vous assurer qu'il est en valeur LOW.

Quant à code pour Arduino IDE, vous n'avez pas besoin d'utiliser de bibliothèque ou quoi que ce soit comme ça avec d'autres composants. Il suffit de faire la formule pour calculer la distance et rien d'autre ... Bien sûr, si vous voulez que votre projet fasse quelque chose en réponse à la mesure du capteur HC-SR04, vous devrez ajouter le code dont vous avez besoin. Par exemple, au lieu d'afficher simplement les mesures sur la console, vous pouvez faire bouger les servomoteurs dans un sens ou dans un autre sur certaines distances pour éviter l'obstacle, ou pour qu'un moteur s'arrête, une alarme à activer lorsqu'il détecte une proximité, etc. .

 Plus d'informations sur la programmation: Manuel Arduino (PDF gratuit)

Par exemple, vous pouvez voir ceci code de base à utiliser comme base:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


Un commentaire, laissez le vôtre

Laisser un commentaire

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

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Jose dit

    J'ai trouvé l'explication très utile et simple.