Arduino - Capteur à ultrasons
Dans ce tutoriel, nous allons apprendre :
- Comment fonctionne un capteur ultrasonique
- Comment connecter le capteur ultrasonique à Arduino
- Comment programmer Arduino pour lire l'état du capteur ultrasonique
- Comment utiliser Arduino et le capteur ultrasonique HC-SR04 pour mesurer la distance jusqu'à un objet
- Comment filtrer le bruit des mesures de distance du capteur ultrasonique dans le code Arduino
Préparation du matériel
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 ultrasonique
Le capteur ultrasonique HC-SR04 est utilisé pour mesurer la distance à un objet en utilisant des ondes ultrasonores.
Brochage
Le capteur ultrasonique HC-SR04 comprend quatre broches :
- Broche VCC : doit être connectée à VCC (5V)
- Broche GND : doit être connectée à GND (0V)
- Broche TRIG : cette broche reçoit le signal de commande (impulsion) de l'Arduino.
- Broche ECHO : cette broche envoie un signal (impulsion) à l'Arduino. Arduino mesure la durée de l'impulsion pour calculer la distance.
Comment ça fonctionne
- I. Micro-contrôleur : génère une impulsion de 10 microsecondes sur la broche TRIG.
- I. Le capteur ultrasonore émet automatiquement les ondes ultrasonores.
- I. L'onde ultrasonore est réfléchie après avoir frappé un obstacle.
- I. Le capteur ultrasonore :
- Détecte l'onde ultrasonore réfléchie.
- Mesure le temps de parcours de l'onde ultrasonore.
- I. Capteur ultrasonore : génère une impulsion vers la broche ECHO. La durée de l'impulsion est égale au temps de parcours de l'onde ultrasonore.
- I. Le micro-contrôleur mesure la durée de l'impulsion dans la broche ECHO, puis calcule la distance entre le capteur et l'obstacle.
Comment obtenir la distance à partir d'un capteur à ultrasons
Pour obtenir la distance à partir du capteur ultrasonique, il suffit de réaliser deux étapes (1 et 6 de la partie Comment ça marche).
- Génère une impulsion de 10 microsecondes sur la broche TRIG
- Mesure la durée de l'impulsion sur la broche ECHO, puis calcule la distance entre le capteur et l'obstacle.
Calcul de la distance
Nous avons :
- Le temps de voyage de l'onde ultrasonore (µs) : travel_time = pulse_duration
- La vitesse de l'onde ultrasonore : speed = SPEED_OF_SOUND = 340 m/s = 0,034 cm/µs
Alors :
- La distance parcourue par l'onde ultrasonique (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 - Capteur ultrasonique
Les broches d'Arduino peuvent générer une impulsion de 10 microsecondes et mesurer la durée de l'impulsion. Par conséquent, nous pouvons obtenir la distance à partir du capteur ultrasonique en utilisant deux broches d'Arduino :
- Une broche est connectée à la broche TRIG pour générer une impulsion de 10 µs à la broche TRIG du capteur.
- Une autre broche est connectée à la broche ECHO 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 de l'Arduino en utilisant les fonctions digitalWrite() et delayMicroseconds(). Par exemple, la broche 9 :
- Mesure la durée d'impulsion (µs) sur la broche de l'Arduino en utilisant la fonction pulseIn(). Par exemple, broche 8 :
- Calculez la distance (cm) :
Code Arduino
Étapes rapides
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload sur l'IDE Arduino pour téléverser le code sur Arduino
- Ouvrez le moniteur série
- Déplacez votre main devant le capteur ultrasonique
- Regardez la distance entre le capteur et votre main sur le moniteur série
Explication du code
Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.
Comment filtrer le bruit des mesures de distance d'un capteur ultrasonique.
Le résultat de mesure du capteur ultrasonique contient du bruit. Dans certaines applications, le résultat bruité provoque un fonctionnement indésirable. Nous pouvons supprimer le bruit en utilisant l'algorithme suivant :
- I. prendre plusieurs mesures et les stocker dans un tableau
- I. trier le tableau dans l'ordre croissant
- I. filtrer le bruit
- Les plus petits échantillons sont considérés comme du bruit → les ignorer
- Les plus grands échantillons sont considérés comme du bruit → les ignorer
- Obtenir la moyenne des échantillons du milieu
- Les cinq plus petits échantillons sont considérés comme du bruit → ignorez-les
- Les cinq plus grands échantillons sont considérés comme du bruit → ignorez-les
- ⇒ obtenez la moyenne des 10 échantillons du milieu (du 5ème au 14ème)
L'exemple de code ci-dessous prend 20 mesures
Vidéo
Mettez-vous au défi
Utilisez un capteur à ultrasons pour réaliser l'un des projets suivants :
- Évitement des collisions pour voiture RC.
- Détection du niveau de remplissage de la poubelle.
- Surveillance du niveau de la poubelle.
- Ouverture/fermeture automatique de la poubelle. Indice : Référez-vous à Arduino - Moteur Servo.
Connaissances supplémentaires
Certains fabricants fournissent le capteur ultrasonique qui possède 3 broches. Le signal TRIG et le signal ECHO sont sur la même broche. Dans ce cas, nous devons utiliser uniquement une broche de l'Arduino pour les deux fonctions : générer une impulsion vers le capteur et mesurer l'impulsion provenant du capteur.
Applications des capteurs à ultrasons
- Évitement de collision
- Détection de remplissage
- Mesure de niveau
- Détection de proximité