meta données pour cette page
Tutoriel inspiré de http://tiptopboards.free.fr
Capteur de distance à ultrasons HC SR-04, utilisation avec Arduino
Composants utilisés
- 1 shield breadboard de montage
- 2 LED (rouge et verte) en série avec une résistance de 470 Ohm
Principe de fonctionnement
Le capteur émet une salve d’ultra-sons, le récepteur chronomètre leur temps d’aller/ retour.
On en déduit la distance précise entre le capteur et l’obstacle qui réfléchit le son :
Le module HC SR-04 est monté, prêt à l’emploi.
Caractéristiques
Le module à ultra-sons permet de détecter automatiquement un obstacle dans un angle de visée étroit de 15°, et de mesurer une distance sans contacts, sur une portée de 2 cm à 450 cm.
- On peut mesurer une distance jusqu’à 0.3 cm près.
- Courant de repos moins de 2 mA
- Signal de sortie : signal électrique 5V haut niveau, 0V niveau bas.
- Un quartz produit une onde inaudible de fréquence 40 kHz de forme carrée.
- Taille 45 x 20 x 15 mm
Calcul de la distance
La vitesse du son est de 340 m/s (il faut 29,4 microsecondes pour parcourir 1 cm).
En 1 ms, l’onde ultrasonore se déplace de 340 mm = 34 cm.
Le capteur fournit une sortie de durée proportionnelle à la distance .
Câblage
Capteur –> Arduino
- pin 1 Alimentation Vcc –> +5V Arduino
- pin 2 Emission d’ultrasons (Trig) –> pin de sortie p13
- pin 3 Réception du signal Echo (signal de sortie TTL en largeur d’impulsion modulée)–> pin d’entrée p12
- pin 4 Gnd –> Masse Arduino
On rajoute dans ce montage deux Leds (rouge et verte) sur les pin 10 et 11 (en série avec 470 ohm).
Elles servent de témoins de distance trop près / trop loin.
Programmation Arduino
Il n’y a pas besoin d’installer de librairie spécialisée.
On peut éventuellement se servir de #include <Ultrasonic.h>
#define trigPin 13 Trig Ultrasons (sortie)
’’
#define echoPin 12 Echo Ultrasons (entrée)
#define ledVerte 11 Led verte
#define ledRouge 10 Led rouge
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT); Trig est une sortie
pinMode(echoPin, INPUT); Echo est le retour, en entrée
pinMode(ledVerte, OUTPUT);
pinMode(ledRouge, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); Trig déclenché 10ms sur HIGH
digitalWrite(trigPin, LOW);
Calcul de l’écho
duration = pulseIn(echoPin, HIGH);
Distance proportionnelle à la durée de sortie
distance = duration*340/(2*10000); Vitesse du son théorique
if (distance < 4) { Distance trop près
digitalWrite(ledVerte,HIGH); Vert éclairé seulement
digitalWrite(ledRouge,LOW);
}
else { Trop loin
digitalWrite(ledVerte,LOW);
digitalWrite(ledRouge,HIGH);
}
Hors de portée (duration)
if ( distance ⇐ 0){
Serial.print(duration);
Serial.println(“Hors de portee”);
}
else {
Serial.print(distance);
Serial.print(“ cm ”);
Serial.print(duration);
Serial.println(“ ms”);
}
delay(100); 0.1 sec entre deux mesures
}
Le code envoie une impulsion de 10us sur Trig pour déclencher la mesure (séquence de 8 pulses carrés sur la fréquence 40 kHz).
En réponse, la durée d’impulsion en sortie est proportionnelle à la distance (aller/retour), avec Distance = Durée de l’impulsion * Vitesse du son / 2
Vidéo de démo<html><iframe width=“853” height=“480” src=“www.youtube-nocookie.com/embed/Le_4Nfwxntg?rel=0&showinfo=0” frameborder=“0” allowfullscreen></iframe></html>
Références
En anglais http://www.instructables.com/id/Simple- ... he-sketch/
Le capteur HCSR04 http://www.micropik.com/PDF/HCSR04.pdf
http://wiki.tetrasys-design.net/HCSR04Ultrasonic