Utiliser un capteur à ultrasons
Objectif
L'objectif de ce cours est de concevoir un télémètre capable de mesurer des distances.
Le principe de la mesure
Par l'intermédiaire du capteur à ultrasons, la carte Arduino va mesurer la durée Δt que met l'onde sonore pour parcourir une distance d jusqu’à un obstacle, se réfléchir puis revenir au récepteur.
L'onde a alors parcouru une distance correspondant à 2d.
Sachant que la distance parcourue est égale à la vitesse v de l'onde multiplié par la durée Δt, on peut écrire que :
2d = v x Δt soit d = v x Δt / 2
La vitesse du son est v = 340 m/s. Elle dépend de la température.
Le capteur à ultrasons
Nous utiliserons un capteur à ultrasons HC-SR04 capable d’émettre des ondes ultrasonores (40 kHz) et de recevoir l'écho d'un obstacle.
Ce capteur est capable de mesurer une distance de 2 cm à 400 cm environ avec une précision de 3 mm.
Pour mesurer la durée d'un aller-retour, il faut :
- envoyer un signal numérique à l’état “High” d'au moins 10 μs sur l'entrée “Trig” ;
- le capteur émet alors une série de 8 impulsions d'ultrasons à 40 kHz, puis il attend le signal réfléchi ;
- si le signal revient, il envoie un signal “High” sur la sortie “Echo”, dont la durée est proportionnelle à la distance mesurée.
Le montage
Pour l'alimentation du capteur connecter :
- la broche Vcc du capteur au 5V de la carte Arduino ;
- la broche GND du capteur au GND de la carte Arduino.
Les autre broches du capteur sont branchées sur des broches numériques de la carte Arduino :
- la broche Trig du capteur sur la broche 3 de la carte Arduino ;
- la broche Echo du capteur sur la broche 2 de la carte Arduino ;
Le code
Le code est suffisamment commenté pour comprendre facilement son fonctionnement.
// Télémètre d'après le blog d'Eskimon int vitesse = 340 ; // vitesse du son 340 m/s int Trig = 3; // Déclencheur sur la broche 3 int Echo = 2; // Réception sur la broche 2 void setup() { pinMode(Trig, OUTPUT); // initialisation de la broche "Trig" comme étant une sortie pinMode(Echo, INPUT); // initialisation de la broche "Echo" comme étant une entrée digitalWrite(Trig, LOW); // Mettre "Trig" niveau bas Serial.begin(9600); } void loop() { digitalWrite(Trig, HIGH); // Un état haut de 10 microsecondes est mis sur la broche "Trig" delayMicroseconds(10); // on attend 10 µs digitalWrite(Trig, LOW); // On remet à l’état bas la broche Trig unsigned long duree = pulseIn(Echo, HIGH); // Lecture de la durée d’état haut sur la broche "Echo" if(duree > 30000) // si la durée est supérieure à 30ms, l'onde est perdue { Serial.print("Onde perdue, mesure échouée !"); } else { // On calcule la distance duree = duree/2; // On divise cette durée par deux pour n'avoir qu'un trajet float temps = duree/1000000.0; //on met en secondes float distance = vitesse*temps; //on multiplie par la vitesse, d=v*t // On affiche la distance Serial.print("D = "); Serial.print(distance); Serial.print(" m"); } // petite pause delay(250); }
Une ligne mérite d’être détaillée :
unsigned long duree = pulseIn(Echo, HIGH);
La fonction pulseIn() renvoie la durée en microsecondes pendant laquelle le signal sur la sortie “Echo” est resté au niveau « High ».
Pour plus de détails sur la fonction pulseIn() : http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.PulseIn
A faire vous-même 1 | |
---|---|
Dans le code précédent, on admet que la vitesse des ultrasons est de 340 m/s. Modifier ce code pour mesurer cette vitesse avec un obstacle situé à une distance d = 1 m. |
A faire vous-même 2 | |
---|---|
Il est possible d'utiliser un capteur d'ultrasons pour détecter la présence d'une personne. Écrire le code permettant de compter le nombre de personnes entrant dans une pièce. Ce nombre sera affiché sur le moniteur série ou sur l'écran LCD. |
A faire vous-même 3 | |
---|---|
Au montage précédent, ajouter un interrupteur pour remettre le compteur à zéro. |
A faire vous-même 4 | |
---|---|
Compléter le montage précédent avec une led qui s'allume lorsque le capteur d'ultrasons détecte une personne. |
Statistiques du site
- Cette page a été consultée par 2 visiteurs aujourd'hui.
- Cette page a été consultée par 727 visiteurs depuis le 02/01/2024.