Arduino Nano - Capteur à ultrasons
Ce tutoriel vous explique comment utiliser un Arduino Nano et un capteur ultrasonique pour mesurer la distance jusqu'aux obstacles ou objets. Plus en détail, nous apprendrons :
- Comment fonctionne le capteur ultrasonique
- Comment connecter le capteur ultrasonique à Arduino Nano
- Comment programmer l'Arduino Nano pour mesurer la distance à l'aide du capteur ultrasonique
- Comment filtrer le bruit des mesures de distance du capteur ultrasonique dans le code Arduino Nano
Préparation du matériel
1 | × | Arduino Nano | |
1 | × | USB A to Mini-B USB cable | |
1 | × | Ultrasonic Sensor | |
1 | × | Jumper Wires | |
1 | × | (Optional) 9V Power Adapter for Arduino Nano | |
1 | × | (Recommended) Screw Terminal Adapter for Arduino Nano |
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du capteur à ultrasons
Le capteur ultrasonique HC-SR04 est utilisé pour mesurer la distance jusqu'à un objet en utilisant des ondes ultrasonores.
Le brochage du capteur ultrasonique
Le capteur ultrasonique HC-SR04 dispose de quatre broches :
- Broche VCC : doit être connectée à VCC (5V)
- Broche GND : doit être connectée à GND (0V)
- Broche TRIG : reçoit un signal de commande (impulsion) de l'Arduino Nano
- Broche ECHO : envoie un signal (impulsion) à l'Arduino Nano. L'Arduino Nano mesure la longueur de l'impulsion pour calculer la distance.
Comment ça marche
- L'Arduino Nano produit une impulsion de 10 microsecondes sur la broche TRIG, ce qui amène le capteur ultrasonique à émettre des ondes ultrasoniques.
- Lorsque les ondes rencontrent un obstacle, elles sont réfléchies.
- Le capteur ultrasonique est capable de détecter l'onde réfléchie et de mesurer son temps de parcours.
- Le capteur génère alors une impulsion vers la broche ECHO, d'une durée équivalente au temps de parcours de l'onde ultrasonique.
- L'Arduino Nano mesure la durée de l'impulsion dans la broche ECHO et calcule la distance entre le capteur et l'obstacle.
Comment obtenir la distance à partir d'un capteur ultrasonique
Pour calculer la distance à partir du capteur ultrasonique, nous devons simplement écrire un code Arduino pour effectuer deux étapes (1 et 6 dans Comment ça marche) :
- Arduino Nano génère une impulsion de 10 microsecondes sur la broche TRIG.
- Arduino Nano mesure la durée de l'impulsion sur la broche ECHO.
- Ensuite, Arduino Nano utilise la durée de l'impulsion mesurée pour calculer la distance entre le capteur et l'obstacle.
Calcul de distance
Nous avons :
- Temps de trajet de l'onde ultrasonore (µs) : travel_time = pulse_duration
- Vitesse de l'onde ultrasonique : speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Alors :
- La distance de parcours de l'onde ultrasonore (cm) : distance_de_parcours = vitesse × temps_de_parcours = 0.034 × durée_d'impulsion
- La distance entre le capteur et l'obstacle (cm) : distance = distance_de_parcours / 2 = 0.034 × durée_d'impulsion / 2 = 0.017 × durée_d'impulsion
Arduino Nano - Capteur à ultrasons
Les broches de l'Arduino Nano peuvent produire une impulsion de 10 microsecondes et mesurer la durée de l'impulsion. Cela nous permet d'utiliser deux des broches de l'Arduino Nano pour déterminer la distance entre le capteur à ultrasons et un objet. Nous devons simplement :
- Connectez une broche de l'Arduino Nano à la broche TRIG du capteur ultrasonique. Cette broche de l'Arduino Nano est utilisée pour générer une impulsion de 10 µs à la broche TRIG du capteur.
- Connectez une autre broche de l'Arduino Nano à la broche ECHO du capteur ultrasonique. Cette broche de l'Arduino Nano est utilisée pour mesurer l'impulsion provenant du capteur.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Comment programmer pour un capteur ultrasonique
- Générez une impulsion de 10 microsecondes sur la broche 3 de l'Arduino en utilisant les fonctions digitalWrite() et delayMicroseconds(). Par exemple :
- Mesurez la durée de l'impulsion (en microsecondes) sur la broche 2 de l'Arduino en utilisant la fonction pulseIn(). Par exemple :
- Calculez la distance (cm) :
Code Arduino Nano
Étapes rapides
- Copiez le code et ouvrez-le avec l'IDE Arduino.
- Ensuite, cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code vers l'Arduino Nano.
- Ouvrez le moniteur série
- Placez votre main devant le capteur ultrasonique
- Vérifiez la distance entre le capteur et votre main affichée sur le moniteur série
Explication du code
Découvrez l'explication ligne par ligne contenue dans les commentaires du code source !
Comment filtrer le bruit des mesures de distance d'un capteur ultrasonique
Le résultat de mesure d'un capteur ultrasonique peut contenir du bruit, ce qui peut entraîner des opérations indésirables dans certaines applications. Pour éliminer le bruit, nous pouvons utiliser l'algorithme suivant :
- I. Prenez plusieurs mesures et stockez-les dans un tableau
- Ii. Triez le tableau dans un ordre croissant
- Iii. Filtrez les bruits en :
- Considérant les échantillons les plus petits comme du bruit et en les ignorant
- Considérant les échantillons les plus grands comme du bruit et en les ignorant
- Prenant la moyenne des échantillons du milieu
- Ignorez les cinq échantillons les plus petits.
- Ignorez les cinq échantillons les plus grands.
- Obtenez la moyenne des 10 échantillons du milieu, du cinquième au quatorzième.
L'exemple de code ci-dessous prend 20 mesures :
Vidéo
Lancez-vous un défi
Utilisez un capteur ultrasonique pour l'un des projets suivants :
- Construction d'un système d'évitement de collision pour une voiture télécommandée.
- Établir la plénitude d'une poubelle.
- Suivi du niveau d'une poubelle.
- Ouverture et fermeture automatiques d'une poubelle. Conseil : Voir Arduino Nano - Moteur Servo.
Applications des capteurs à ultrasons
- Éviter les collisions
- Détecter la plénitude
- Mesurer le niveau
- Détecter la proximité