Comment calculer une distance a l’aide d’un capteur ultrason HC-SR04 et d’un Arduino ?
Publié le 23 août 2018, modifié le 29 mars 2023 par Stéphane Robert
Dans ce tutoriel nous allons voir le principe de fonctionnement d’un capteur ultrason ainsi que son utilisation avec Arduino et citer quelque exemple de projets avec ce dernier
5 Pièces Capteur de Distance Ultrasonique HC-SR04, Capteur Ultrason, Module de Mesure Compatible pour Arduino, ppour des Projets de Mesure et des Applications DIY
Compatibilité étendue : Le capteur HC-SR04 est conçu pour fonctionner avec de nombreuses plateformes compatible pour qu’Arduino. Cela le rend idéal pour une variété de projets, qu’il s’agisse de robotique, d’automatisation de la maison ou de dispositifs IoT. Son intégration est simple grâce à des bibliothèques largement disponibles.
Mesures précises de distance : Avec un angle de détection de moins de 15° et un champ de mesure allant de 3 cm à 450 cm, ce capteur offre une précision de 0,3 cm. Cela permet d’effectuer des mesures fiables et répétées, ce qui est essentiel pour des applications nécessitant des données de distance exactes, comme la détection d’obstacles.
Facilité d’utilisation et d’installation : Grâce à son design convivial, le capteur HC-SR04 peut être facilement connecté à diverses cartes de développement. Après avoir envoyé un signal de déclenchement, il émet des impulsions ultrasoniques et attend l’écho, permettant ainsi une configuration rapide et efficace pour tous vos projets technologiques.
Efficacité énergétique : Fonctionnant avec une alimentation de 5V DC et un courant à l’état de repos de moins de 2 mA, le HC-SR04 est conçu pour être économe en énergie. Cela le rend particulièrement adapté aux applications alimentées par batterie ou aux projets où la gestion de l’énergie est cruciale, garantissant ainsi une longue durée de vie des dispositifs.
Contenu du paquet : L’ensemble comprend 5 capteurs HC-SR04 et 40 câbles de connexion, offrant tout le nécessaire pour commencer immédiatement vos projets. Que vous soyez un hobbyiste ou un professionnel, cet ensemble fournit la flexibilité requise pour explorer et développer diverses solutions basées sur la mesure de distance.
Lot de 8 modules à ultrasons compatibles avec HC-SR04, module à ultrasons, capteur de distance, prend en charge 3,3 à 5 V pour Arduino UNO, robot, XBee, ZigBee, etc.
Taille du produit : 45 x 20 x 19 mm (largeur incl. les broches env. 26 mm)
Mesure de distance : Mesure de distance par ultrasons de 2 cm à 3 m environ. Précision de 3 mm.
Tension et courant : DC5V ; 2 mA par mesure, max. 100 mA par seconde.
Fréquence de fonctionnement : jusqu’à 50 mesures par seconde. Angle de détection : < 15°. Plage de détection : 2-500 cm. Précision : 0,3 cm.
Principe de fonctionnement : Le module envoie automatiquement 8 ondes carrées de 40 kHz, détecte si un signal est retourné et émet un niveau élevé via IO. Le temps entre l'émission et le retour de l'ultrason. Distance de test = (temps de haut niveau à vitesse sonore (340 M/S))/2
Les types de capteurs disponible dans le marché
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
Et maintenant intéressons nous a notre capteur ultrasonUn 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 Montage
Le Code
//Initialisation des pins 2 et 3
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3; // Broche ECHO
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s
/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;
void setup() {
/* Initialise le port série */
Serial.begin(115200);
/* Initialise les broches */
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
pinMode(ECHO_PIN, INPUT);
}
void loop() {
/* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
/* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
/* 3. Calcul la distance à partir du temps mesuré */
float distance_mm = measure / 2.0 * SOUND_SPEED;
/* Affiche les résultats en mm, cm et m */
Serial.print(F("Distance: "));
Serial.print(distance_mm);
Serial.print(F("mm ("));
Serial.print(distance_mm / 10.0, 2);
Serial.print(F("cm, "));
Serial.print(distance_mm / 1000.0, 2);
Serial.println(F("m)"));
/* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
delay(500);
}
}
Voila vous n’avez plus qu’a vous amuser 😀
ELEGOO 5 pièces HC-SR04 Module Ultrason de Capteur de Distance pour Mega Nano Robet XBee Zigbee Ultrasonic Module Distance Sensor
Capteur Ultrason de Mesure de Distance HC-SR04 (Ultrasonic Module Distance Sensor)
Le HC-SR04 comprend un émetteur ultrason, un récepteur et un circuit de contrôle. Quand il est activé, il émet des séries d’impulsion ultrasonique à 40 kHz et reçoit l’écho d’un objet. La distance entre le capteur et l’objet est calculée en mesurant le temps de trajet des ondes sonores ( au moyen d’une base temps TTL ) entre l’émission et la réception de l’écho
Alimentation: 5Volt continu; Courant de repos: moins de 5mA; Angle effectif: moins de 15°
Distance mesurée:de 3 cm à 450 cm; Résolution:0,3 cm
Contenu du Paquet: 5 x Module HC-SR04 avec un petit cadeau
AZDelivery 5 x Capteur à Ultrasons Module Compatible avec HC-SR04 Télémètre Compatible avec Arduino et Raspberry Pi y Compris Un eBook
✅ Mesure de distance par ultrasons de 2 cm à 3 m jusqu’à une précision d’environ 3 mm.
✅ Dimensions: 45 x 20 x 19 mm (largeur avec broches env. 26 mm).
✅ Jusqu’à 50 mesures par seconde.
✅ Faible consommation d’énergie (env. 2 mA par mesure, max. 100 mA par seconde).
✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d’exemples d’applications, des guides d’installation complets et des bibliothèques.
L’intégration d’Elasticsearch avec Arduino pour les applications IoT est une évolution significative dans le domaine de la technologie. Ce partenariat entre Elastic, une plateforme leader en matière de solutions basées sur la recherche, et Arduino, Lire la suite…
LabVIEW, connu pour sa capacité à créer des systèmes de mesure et de contrôle basés sur des diagrammes, offre une interface utilisateur graphique puissante et efficace. D’un autre côté, Arduino est un microcontrôleur open-source qui Lire la suite…
L’Arduino Mega est une plaque de développement à microcontrôleur qui s’est fait une place de choix parmi les amateurs d’électronique, les ingénieurs et les étudiants. Fabriquée à partir du microcontrôleur Atmega2560, cette carte offre des Lire la suite…