Mesurer une distance avec un capteur à ultrason HC-SR04 et une carte Arduino / Genuino
Parfois quand on réalise un projet, on a besoin de mesurer des distances, détecter des obstacles, etc.
En robotique par exemple, il est très classique d'avoir un capteur de distance sur l'avant du robot pour éviter de se prendre un mur en pleine face.
Comment mesurer une distance
À l'anglaise : avec votre pouce, votre pied, ou n'importe quoi en fait. God save the queen.
Pour mesurer des distances, il faut un capteur de distance (s'en blague !). Il existe sur le marché un grand nombre de capteurs de distance : infrarouge (réflectif), laser (par temps de parcours ou par calcul d'angle), physique (règles optiques absolues ou incrémentielles), ou ultrason.
Les capteurs infrarouges ont l’avantage d’être bon marché, relativement précis et disponibles à peu près partout. Malheureusement, ils sont assez complexes à mettre en oeuvre du fait de leurs non-linéarités. Il faut appliquer une formule complexe pour obtenir une mesure utilisable. De plus, ils sont très sensibles à la lumière ambiante et au coefficient de réflexion lumineuse de la surface en face du capteur.
Les (vrais) capteurs de distance laser sont extrêmement précis, mais aussi extrêmement chers. Un capteur de distance laser (par mesure de temps de parcours) coûte facilement plus de 200€, mais fait des mesures à plus de 30 mètres sans problème pour certains modèles. C'est donc au final une question de budget / utilisation.
PS Il existe des (faux) capteurs de distance laser fonctionnant par triangulation. Au lieu de mesurer le temps d'aller-retour d'un faisceau laser, ces modules calculent l'angle entre le point du laser et le capteur. Ces modules sont moins chers, mais aussi beaucoup moins précis.
Les capteurs physiques, le plus souvent un duo comportant une règle graduée et un capteur optique, sont à la fois bon marché et très précis. Mais ils sont très limités en distance mesurable et se retrouvent donc généralement dans des imprimantes.
Reste les capteurs ultrasons, et ça tombe bien, c'est le sujet de cet article.
Un capteur de distance à ultrason utilise le même principe qu’un capteur laser, mais en utilisant des ondes sonores (inaudible) au lieu d’un faisceau de lumière. Ils sont bien moins chers qu’un capteur laser, mais aussi bien moins précis. Cependant, contrairement aux capteurs à infrarouge, la lumière ambiante et l’opacité de la surface en face du capteur ne jouent pas sur la mesure.
Le capteur HC-SR04
Capteur à ultrason HC-SR04
Le capteur qui nous intéresse dans ce tutoriel est un capteur à ultrason made in chinois, bien connu des amateurs de robotique et d'Arduino : le HC-SR04 (aussi disponible sous d'autres références en fonction du vendeur).
Le capteur HC-SR04 est un capteur à ultrason low cost. Ce capteur fonctionne avec une tension d'alimentation de 5 volts, dispose d'un angle de mesure de 15° environ et permet de faire des mesures de distance entre 2 centimètres et 4 mètres avec une précision de 3mm (en théorie, dans la pratique ce n'est pas tout à fait exact).
N.B. Il existe des capteurs à ultrason bien plus haut de gamme (donc précis). Un capteur à ultrason monocapsule de qualité coûte entre 20€ et 30€. Un capteur HC-SR04 revient seulement à 3€, frais de port inclus en import de Chine. Ce capteur est donc clairement "low cost", mais pas mauvais pour autant comme on le verra plus tard.
Principe de fonctionnement du capteur
Illustration du signal TRIGGER et ECHO
Le principe de fonctionnement du capteur est entièrement basé sur la vitesse du son.
Voilà comment se déroule une prise de mesure :
On envoie une impulsion
HIGHde 10µs sur la brocheTRIGGERdu capteur.Le capteur envoie alors une série de 8 impulsions ultrasoniques à 40KHz (inaudible pour l'être humain, c'est quand plus agréable qu'un biiiiiiiip).
Les ultrasons se propagent dans l'air jusqu'à toucher un obstacle et retourne dans l'autre sens vers le capteur.
Le capteur détecte l'écho et clôture la prise de mesure.
Le signal sur la broche ECHO du capteur reste à HIGH durant les étapes 3 et 4,
ce qui permet de mesurer la durée de l'aller-retour des ultrasons et donc de déterminer la distance.
N.B. Il y a toujours un silence de durée fixe après l'émission des ultrasons pour éviter de recevoir prématurément un écho en provenance directement du capteur.
Le montage
Matériel nécessaire
Pour réaliser ce premier montage, il va nous falloir :
Une carte Arduino UNO (et son câble USB),
Un capteur HC-SR04,
Une plaque d'essai et des fils pour câbler notre montage.
Vue prototypage du montage
Le montage est d'une simplicité déconcertante :
L'alimentation
5Vde la carte Arduino va sur la brocheVCCdu capteur.La broche
GNDde la carte Arduino va sur la brocheGNDdu capteur.La broche
D2de la carte Arduino va sur la brocheTRIGGERdu capteur.La broche
D3de la carte Arduino va sur la brocheECHOdu capteur.
Le montage fini
Vous pouvez choisir d'utiliser d'autres broches que D2 et D3 si vous le souhaitez.
Il suffira de mettre à jour les numéros de broches dans le code du chapitre suivant.
N.B. La plaque d'essai est ici totalement optionnelle. Si vous avez des fils mâles / femelles, vous pouvez directement câbler le capteur à la carte Arduino.
Télécharger le Code
Utilisation du capteur Ultrason HC-SR04 avec l’Arduino Affichage LCD
But de ce tutoriel:
Dans ce tutoriel nous allons apprendre à utiliser un capteur de distance à ultrason de référence HC-SR04 avec Arduino.
Composants nécessaires
- carte Arduino UNO
- capteur ultrason HC-SR04
- Afficheur LCD
- des fils de connexion
- Plaque d’essai
Montage
Télécharge le Schema
Télécharge le Code






