norr@manorshi.com         +86-519-89185720
1
Centre de nouvelles

Comment utiliser le capteur à ultrasons avec Arduino ?

Vues : 164     Auteur : Grace Heure de publication : 2021-07-26 Origine : Site

bouton de partage Facebook
bouton de partage Twitter
bouton de partage de ligne
bouton de partage WeChat
bouton de partage LinkedIn
bouton de partage Pinterest
bouton de partage WhatsApp
bouton de partage Kakao
bouton de partage Snapchat
bouton de partage de télégramme
partager ce bouton de partage

Comment utiliser le capteur à ultrasons avec Arduino : Guide HC-SR04

Le Le capteur à ultrasons HC-SR04 est l'un des modules de mesure de distance les plus populaires pour les projets Arduino. Il est largement utilisé dans les robots d'évitement d'obstacles, les capteurs de stationnement, la détection de niveau, les poubelles intelligentes, les télémètres et d'autres applications de détection sans contact.

Le module émet des ondes ultrasonores de 40 kHz via un émetteur. Lorsque l’onde sonore rencontre un objet, elle est réfléchie vers le récepteur. En mesurant le temps d'écho et en utilisant la vitesse du son, Arduino peut calculer la distance entre le capteur et l'objet.

Module de capteur à ultrasons HC-SR04 pour la mesure de distance Arduino

Paramètres techniques principaux du HC-SR04

Paramètre Valeur
Tension de fonctionnement typique 5 V CC
Courant de travail statique Moins de 5 mA sur certaines versions de module
Fréquence de fonctionnement Onde ultrasonique de 40 kHz
Distance de détection Plage commune : 2 cm à 400 cm ; certaines versions à gain ajusté peuvent prendre en charge une portée plus longue.
Angle de détection Généralement à moins de 15 degrés ; certaines versions avec un gain plus élevé peuvent atteindre environ 30 degrés.
Précision Jusqu'à environ 0,3 cm dans des conditions de test appropriées
Zone aveugle Distance de mesure minimale d'environ 2 cm

Description de la broche HC-SR04

Le module ultrasonique HC-SR04 dispose de quatre broches : VCC, TRIG, ECHO et GND. Arduino envoie une courte impulsion de déclenchement à la broche TRIG, puis lit l'impulsion de retour de la broche ECHO.

Broche HC-SR04 Connexion Arduino Fonction
VCC 5V Alimentation du module à ultrasons.
TRIGONOMÉTRIE Broche numérique 9 Entrée de déclenchement. Arduino applique une impulsion de 10 us pour commencer à mesurer.
ÉCHO Broche numérique 10 Sortie écho. Arduino lit la largeur d'impulsion pour calculer la distance.
GND GND Connexion à la terre.

Brochage du capteur à ultrasons HC-SR04 VCC TRIG ECHO GND

Principe de fonctionnement du capteur à ultrasons HC-SR04

Le HC-SR04 fonctionne par mesure du temps de vol. Arduino envoie un signal de déclenchement de haut niveau d'au moins 10 microsecondes à la broche TRIG. Le module envoie alors automatiquement huit impulsions ultrasoniques de 40 kHz et attend l'écho réfléchi.

Lorsque le signal ultrasonique réfléchi est détecté, la broche ECHO émet une impulsion de haut niveau. La durée de cette impulsion est le temps de trajet aller-retour de l'onde ultrasonore.

Distance = Temps d'écho de haut niveau × Vitesse du son / 2

Dans le code Arduino, la formule simplifiée courante est :

Distance en cm = durée × 0,0343 / 2

Principe de fonctionnement du module ultrasonique HC-SR04, temps de vol

Diagramme de synchronisation du module ultrasonique HC-SR04

Le processus de synchronisation est simple : Arduino maintient TRIG bas brièvement, envoie une impulsion élevée de 10 us, puis ramène TRIG au niveau bas. Le HC-SR04 envoie une rafale ultrasonique et règle ECHO à un niveau élevé jusqu'à ce que le signal réfléchi revienne ou que la mesure expire.

Pour éviter des lectures instables, laissez un court délai entre les mesures. Un cycle de mesure d'environ 60 ms est couramment utilisé afin que l'écho ultrasonore précédent ait le temps de disparaître avant le prochain déclenchement.

Bases de la programmation Arduino : fonction pulseIn

La fonction Arduino pulseIn() est utilisée pour mesurer la durée pendant laquelle une broche numérique reste ÉLEVÉE ou FAIBLE. Pour le HC-SR04, Arduino utilise pulseIn(echoPin, HIGH) pour lire la largeur d'impulsion de haut niveau à partir de la broche ECHO.

Syntaxe Signification
pulseIn (broche, valeur) Lit la durée d’une impulsion ÉLEVÉE ou FAIBLE.
pulseIn (broche, valeur, délai d'attente) Lit l'impulsion avec une valeur de délai d'attente en microsecondes.

L'utilisation d'un délai d'attente est recommandée. Si aucun écho n'est renvoyé, la fonction peut arrêter d'attendre et renvoyer 0 au lieu de bloquer le programme trop longtemps.

Carte Arduino utilisée avec le capteur de distance à ultrasons HC-SR04

Comment connecter le capteur à ultrasons HC-SR04 à Arduino

Le câblage est simple. Connectez VCC à 5 V, GND à GND, TRIG à une broche de sortie numérique Arduino et ECHO à une broche d'entrée numérique Arduino. L'exemple suivant utilise Arduino Uno, TRIG sur la broche 9 et ECHO sur la broche 10.

Schéma de câblage de la planche à pain Arduino Uno pour le capteur à ultrasons HC-SR04

Code Arduino du capteur à ultrasons HC-SR04

Le programme Arduino typique suivant envoie une impulsion de déclenchement de 10us, lit la largeur d'impulsion ECHO, calcule la distance en centimètres et imprime le résultat sur le moniteur série.

const int trigPin = 9 ; const int echoPin = 10 ; longue durée; distance de flottementCm ; void setup() { pinMode(trigPin, SORTIE);   pinMode(echoPin, INPUT);   Série.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicroseconds(2);   digitalWrite(trigPin, ÉLEVÉ);   delayMicroseconds(10);   digitalWrite(trigPin, FAIBLE);   durée = pulseIn (echoPin, HIGH, 30000);   if (durée == 0) { Serial.println('Hors plage');   } else { distanceCm = durée * 0,0343 / 2 ;     Serial.print('Distance : ');     Serial.print(distanceCm);     Serial.println(' cm');   } délai (60); }

Si vous voyez des valeurs de distance sur le moniteur série, le capteur à ultrasons HC-SR04 et le câblage Arduino fonctionnent correctement. Vous pouvez ensuite utiliser les données de distance pour la détection d'obstacles, le contrôle des mouvements du robot, les portes automatiques, les rappels de stationnement ou les projets de niveau de liquide.

Programme de télémétrie du capteur à ultrasons Arduino HC-SR04

Comment améliorer la précision des mesures du HC-SR04

  • Gardez l'objet mesuré dans la plage de distance recommandée et en dehors de la zone aveugle de 2 cm.

  • Utilisez une surface cible plate et solide pour une meilleure réflexion des ultrasons.

  • Évitez de mesurer des matériaux mous, inclinés, poreux ou insonorisants.

  • Utilisez une alimentation 5 V stable et gardez le câblage court et sécurisé.

  • Ajoutez un délai d'attente à pulseIn() pour éviter un blocage prolongé lorsqu'aucun écho ne revient.

  • Filtrez la moyenne ou la médiane de plusieurs lectures pour réduire le bruit.

  • Pour une plus grande précision, compensez la température car la vitesse du son change avec la température de l'air.

Applications courantes des projets de capteurs à ultrasons Arduino

Application Comment le HC-SR04 est utilisé
Robot d'évitement d'obstacles Détecte les objets à proximité et aide le robot à changer de direction.
Capteur d'aide au stationnement Mesure la distance entre le véhicule et un obstacle.
Détection du niveau de liquide Mesure la distance entre le capteur et la surface du liquide sans contact.
Poubelle intelligente Détecte une main ou un objet à proximité et déclenche l'ouverture automatique du couvercle.

Résumé

Pour utiliser un capteur à ultrasons HC-SR04 avec Arduino, connectez VCC à 5 V, GND à GND, TRIG à une broche de sortie numérique et ECHO à une broche d'entrée numérique. Envoyez une impulsion de déclenchement de 10 us, lisez la durée de l'écho avec pulseIn() et calculez la distance avec la formule de temps de vol.

Le HC-SR04 est peu coûteux, facile à utiliser et adapté à de nombreux projets de mesure de distance Arduino. Pour de meilleurs résultats, faites attention à la surface cible, à l'angle de mesure, à la zone aveugle, à la puissance stable, à la gestion du délai d'attente et aux effets de la température.

Foire aux questions sur le capteur à ultrasons Arduino HC-SR04

Comment fonctionne le capteur à ultrasons HC-SR04 avec Arduino ?

Arduino envoie une impulsion de 10us à la broche TRIG. Le HC-SR04 émet huit impulsions ultrasoniques de 40 kHz et règle la broche ECHO à un niveau élevé jusqu'à ce que le son réfléchi revienne. Arduino mesure ce temps d'impulsion et calcule la distance.

Quelle est la formule de distance pour les projets Arduino HC-SR04 ?

La formule est distance = durée × vitesse du son / 2. En centimètres, une formule Arduino courante est distanceCm = durée × 0,0343 / 2, où la durée est mesurée en microsecondes.

Pourquoi divise-t-on le résultat du capteur à ultrasons par 2 ?

Le temps d'écho mesuré est le temps aller-retour du capteur à l'objet et retour au capteur. La division par 2 donne la distance aller simple entre le capteur et l'objet.

Quelles broches Arduino dois-je utiliser pour TRIG et ECHO ?

Vous pouvez utiliser la plupart des broches numériques Arduino. Dans de nombreux exemples, TRIG est connecté à la broche numérique 9 et ECHO est connecté à la broche numérique 10. Le code doit correspondre aux broches utilisées dans votre câblage.

Pourquoi mon capteur à ultrasons HC-SR04 renvoie-t-il des valeurs nulles ou aléatoires ?

Les causes courantes incluent un câblage desserré, une alimentation 5 V instable, des numéros de broches TRIG ou ECHO erronés, aucun objet à portée, des surfaces cibles inclinées, des matériaux souples, des têtes de capteur bloquées ou l'absence de délai d'attente dans la fonction pulseIn().

Quelle est la zone aveugle du capteur à ultrasons HC-SR04 ?

La zone aveugle est la distance minimale sur laquelle le module ne peut pas mesurer de manière fiable. Pour le HC-SR04, la zone aveugle est généralement d'environ 2 cm. Des objets plus proches que cela peuvent produire des lectures instables.

Le HC-SR04 peut-il mesurer le niveau d'eau avec Arduino ?

Oui, le HC-SR04 peut être utilisé pour des projets simples de niveau d'eau sans contact si le capteur est protégé de l'humidité et monté au-dessus de la surface du liquide. Pour les réservoirs humides, extérieurs ou industriels, un capteur à ultrasons étanche est recommandé.

Comment puis-je rendre les lectures du capteur à ultrasons Arduino plus stables ?

Utilisez une alimentation stable, maintenez le capteur perpendiculaire à la cible, évitez les surfaces molles ou inclinées, ajoutez un délai d'attente pulseIn, effectuez plusieurs lectures, utilisez un filtrage médian et attendez environ 60 ms entre les mesures.

Table des matières