Bonjour,
Voici un petit exemple de mise en oeuvre du module à ultrasons HC-SR04.
Nous allons brancher le module ainsi que 3 LEDs à l'Arduino pour faire un détecteur de présence : les différentes LEDS clignoteront de plus en plus rapidement au fur et à mesure que l'objet se rapprochera du capteur, passant de la verte pour un objet lointain à la rouge pour un objet très proche.
- MATÉRIEL -
- Arduino Uno (x1)
- Module HC-SR04 (x1)
- LEDs 10 mm (x3)
- Résistances 150 Ohms (x3)
- Librairie Ultrasonic
- SCHÉMA DU MONTAGE -
- EXPLICATIONS -
Le capteur à ultrasons fonctionne de la manière suivante :
- L'Arduino met la broche Trig du capteur à l'état haut pendant 10 µs,
- Dès qu'elle repasse à l'état bas l'émetteur (un transducteur rond situé sur la face avant) diffuse un signal à 40KHz ,
- Lorsque le son est réfléchi par un obstacle et arrive sur le récepteur (le second transducteur), la broche Echo passe à l'état haut, pendant une durée proportionnelle à la distance de l'objet,
- En mesurant la durée du signal d'écho, la librairie Ultrasonic permet de déterminer la distance parcourue par le signal sonore, et donc celle entre l'objet et le capteur.
- CODE -
- Code: Tout sélectionner
/*
* Détecteur de proximité - HC-SR04 + 3LEDs
* Librairie Ultrasonic : https://github.com/JRodrigoTech/Ultrasonic-HC-SR04/archive/master.zip
* Arduino IDE v1.6.6
*/
#include <Ultrasonic.h>
#define Trig 3 // pin "Trig" du HC-SR04 connectée à pin 3 de l'Arduino
#define Echo 2 // pin "Echo" du HC-SR04 connectée à pin 2 de l'Arduino
#define green 10 // LEDs reliées aux pins de l'Arduino via une résistance
#define yellow 11 // de 150 Ohms.
#define red 12
unsigned long cm; // stockage de la distance de l'objet en cm
Ultrasonic HCSR04(Trig,Echo);
void setup()
{
pinMode(green, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(red, OUTPUT);
}
void loop()
{
// On récupère la distance directement en cm
cm = HCSR04.Ranging(CM);
if(cm > 0 && cm < 10) // objet très proche
{
blink(cm, red);
}
else if(cm >= 10 && cm < 30) // distance moyenne
{
blink(cm, yellow);
}
else if(cm >= 30) // objet lointain
{
blink(cm, green);
}
}
// La fonction ci-dessous fait clignoter la LED correspondant à la distance.
// Le clignotement est de plus en plus rapide à mesure que l'objet se rapproche.
void blink(int pause, int ledPin)
{
pause = cm * 10;
digitalWrite(ledPin, HIGH);
delay(10);
digitalWrite(ledPin, LOW);
delay(pause);
}
La librairie Ultrasonic est susceptible d'évoluer au cours du temps, faites attention à toujours avoir la dernière version !
J'espère que ce petit tutoriel (mon tout premier !) vous aura plu, et bonne bidouille en attendant le prochain !