ultrasonic sensor definition
Le capteur HC-SR04 est un capteur à ultrasons qui peut mesurer la distance à laquelle se trouve un obstacle ou un objet.
Principe de fonctionnement
Le capteur émet des impulsions à ultrason de 40 000 Hz et s’il y a un obstacle sur son champ de vision, le signal réfléchi vers le HC-SR04. Compte tenu du temps de trajet et de la vitesse du son, vous pouvez déterminer la distance.
Caractéristiques du HC-SR04
Plage de mesure : 2 cm à 4 m
Angle de mesure efficace : <15°
Largeur d'impulsion : 10 μs
Résolution de la mesure : 0.3 cm
Fréquence : 40KHZ
Dimensions : 45 mm x 20 mm
Les broches du capteur HC-SR04
- Vcc= Alimentation +5 V
- Trig = est l'entrée qui nous permet de déclencher l'émission d'un ultrason.
- Echo = est la sortie qui se met à 5 V pendant une durée égale à l'aller-retour de l'ultrason, (Echo output).
- GND = Masse
But d’article
Le but de ce tutoriel est d’apprendre comment on peut utiliser le capteur ultrason HC-SR04 avec la carte Arduino uno afin de mesurer une distance et détecter un obstacle.
Matériels utilisées
Un capteur ultrason HC-SR04
Une carte Arduino uno
Trois LED
Une plaque d’essai
Des fils
Avant d’utiliser le capteur ultrason HC-SR04 sur Proteus ISIS il faut télécharger et ajouter la bibliothèque Ultrasonic Sensor Library for Proteus.
Branchement avec la carte Arduino uno
La broche Vcc du capteur HC-SR04 à la borne 5V de la carte Arduino uno.
La broche GND du capteur HC-SR04 à la borne GND de la carte Arduino uno.
La broche Trig du capteur HC-SR04 à la borne numérique 10 de la carte Arduino uno.
La broche Echo du capteur HC-SR04 à la borne numérique 9 de la carte Arduino uno.
Montage sur Proteus ISIS
ultrasonic sensor code arduino
int echo=9;
int trig=10;
int ledblue=5;
int ledred=4;
int ledgreen=3;
long lecture_echo;
long distance;
void setup()
{
Serial.begin(9600);
pinMode(eccho,INPUT);
pinMode(trig,OUTPUT);
pinMode(ledblue,OUTPUT);
pinMode(ledred,OUTPUT);
pinMode(ledgreen,OUTPUT);
}
void loop()
{
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
lecture_echo=pulseIn(echo,HIGH);
distance=lecture_echo/58;
if(distance >
10.0)
{
digitalWrite(ledblue,HIGH);
digitalWrite(ledred,LOW);
digitalWrite(ledgreen,LOW);
}
if(distance <
10.0)
{
digitalWrite(ledblue,LOW);
digitalWrite(ledred,HIGH);
digitalWrite(ledgreen,LOW);
}
if(distance==15.0)
{
digitalWrite(ledblue,LOW);
digitalWrite(ledred,LOW);
digitalWrite(ledgreen,HIGH);
}
delay(500); //Délai pour ne pas surcharger le terminal
}