Le détecteur à ultrasons HC-SR04 est un module capable de mesurer la distance qui le sépare d'un obstacle. Sa plage de mesure est comprise entre 2 et 400 cm avec une tolérance de 0,3 cm. Sa mise en oeuvre est très simple. Pour déclencher une mesure, nous devons appliquer sur la broche Trig une impulsion d'au moins 10 µs, le module délivre alors une série de 8 impulsions ultrasoniques à 40 KHz et attend le retour de ces impulsions lorsqu'elles auront été réfléchies par un obstacle. La sortie Echo passe alors à l'état haut et la durée de cet état est proportionnelle à la distance de l'obstacle.
LE DETECTEUR A ULTRASONS HC-SR04
Programme :
/* Radar est un programme qui affiche la distance sur le moniteur série */
#define trig 13 // affectation des broches
#define echo 12
long lecture_echo;
long distance;
void setup()
{
Serial.begin(9600); // initialisation du moniteur série
pinMode(trig, OUTPUT); // la broche trig est en sortie
pinMode(echo, INPUT); // la broche echo est en entrée
}
void loop()
{
digitalWrite(trig,HIGH); // envoi d'une impulsion de 10 us
delayMicroseconds(10);
digitalWrite(trig,LOW);
lecture_echo=pulseIn(echo,HIGH); // lecture de la durée de l'impulsion de retour
distance=lecture_echo/58;
if (distance<=2) // hors zone de fonctionnement du capteur
{
Serial.println("Obstacle trop pres du capteur");
}
else
{
Serial.print("Distance=");
Serial.print(distance);
Serial.println(" cm");
}
delay(100);
}
Exemple :
Nous souhaitons afficher sur le moniteur série la distance entre le détecteur HC-SR04 et un obstacle.
Liste du matériel :
-
1 Arduino Uno
-
1 plaquette d'essai
-
1 détecteur à ultrasons HC-SR04
Câblage :
Le langage Arduino possède une instruction permettant d'obtenir la durée d'une impulsion : pulseIn(broche, état) où les paramètres représentent la broche de l'Arduino et l'état (LOW ou HIGH) de l'impulsion.
Dans l'univers Arduino, le détecteur à ultrasons est principalement utilisé dans des applications robotiques ou dans les radars de recul.