KY-050 Capteur à ultrasons
Ce capteur est utilisé pour la mesure de la distance par ultrasons.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Ce module est parfaitement adapté à la mesure de distances dans une plage comprise entre 2 cm et 3 m. Avec une résolution d'environ 3 mm, les distances peuvent être mesurées avec précision par signal ultrasonique. Lorsqu'un signal (front descendant) est appliqué à l'entrée de déclenchement, le capteur démarre une mesure de distance. Le résultat est transmis à la sortie d'écho sous forme de signal PWM-TTL.
Le capteur de distance à ultrasons est particulièrement utile pour la détection d'obstacles, la mesure de distance, les indicateurs de niveau et diverses applications industrielles. Grâce à sa grande précision et à son temps de réaction rapide (le temps minimal entre les mesures est de 50 µs), le capteur peut fonctionner de manière fiable en temps réel.
Ce module est polyvalent et offre une solution simple et efficace pour les projets nécessitant des mesures de distance précises.
Données techniques | |
---|---|
Distance mesurable | 2cm-300cm |
Résolution de mesure | 3mm |
min. Temps entre les mesures | 50µs |
Principe de fonctionnement
Ce module montre comment un haut-parleur à ultrasons et un microphone peuvent être utilisés pour mesurer la distance d'un objet sans contact. Le principe repose sur le fait que la vitesse du son dans l'air reste presque constante à température constante - à 20°C, elle est de 343,2m/s. Cela signifie que la distance peut être mesurée en un temps.
Ce fait peut être utilisé pour convertir la mesure de la distance en une mesure de temps, qui peut ensuite être facilement reprise par les microcontrôleurs.
Lorsqu'il est déclenché, le haut-parleur à ultrasons (transducteur) émet un bruit ultrasonique de 200µs maximum. Le haut-parleur à ultrasons émet un signal de 40 kHz. Cela signifie que 8 périodes (changements de front) sont émises dans les 200µs pendant lesquelles le transducteur émet son bruit ultrasonique. Pour arriver mathématiquement à ces 8 périodes du signal de 40 kHz, nous le calculons comme indiqué ci-dessous.
Nombre de périodes en une seconde = 40000.
Temps = 1s
Durée d'une seule période :
1s / 40000 = 25µs**
Longueur maximale du son ultrasonique = 200us
Durée d'une période unique = 25us
Nombre de périodes dans un son ultrasonique:
200µs / 25µs = 8
Le principe est simple : un son ultrasonique est émis par le haut-parleur situé sur le circuit imprimé, qui est ensuite réfléchi par un objet et capté par le microphone situé sur le circuit imprimé. Les ultrasons sont utilisés parce qu'ils se situent en dehors du champ d'audition de l'oreille humaine (environ 20Hz-22kHz).
La transmission du signal ultrasonore est lancée par la réception d'un signal de démarrage long de 10µs (ActiveHigh) sur la "Trigger Input Pin". Après la transmission, le signal est activé sur la "broche de signal de sortie de l'écho" (ActiveHigh). Si le signal réfléchi est à nouveau capté par le microphone, le signal d'écho est à nouveau désactivé après détection. Le temps entre l'activation et la désactivation du signal d'écho peut être mesuré et converti en distance, car il correspond également au temps nécessaire au signal ultrasonique pour franchir la distance entre le haut-parleur->la paroi réfléchissante ->le microphone dans l'air. La conversion se fait alors par approximation d'une vitesse d'air constante - la distance est alors par conséquent la moitié de la distance parcourue.
Affectation des broches
Arduino | Capteur |
---|---|
Pin 7 | Echo |
5V | +V |
GND | GND |
Pin 8 | Déclencheur |
Exemple de code
Le programme d'exemple active la mesure de distance selon le principe ci-dessus et mesure le temps pendant lequel le signal ultrasonique reste dans l'air à l'aide de la fonction Arduino pulseIn. Ce temps est ensuite pris comme base pour convertir la distance - le résultat est ensuite émis dans la sortie série. Si le signal est en dehors de la plage de mesure, un message d'erreur correspondant est émis.
Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.
Copiez le code ci-dessous dans votre IDE. Pour télécharger le code sur votre Arduino, il vous suffit de cliquer sur le bouton " Upload ".
#define echoPin 7 // Broche d'entrée d'écho
#define triggerPin 8 // Broche de sortie de déclenchement
// Les variables nécessaires sont définies
int maximumRange = 300;
int minimumRange = 2;
long distance;
long duration;
void setup() {
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
Serial.println("KY-050 Mesure de la distance");
}
void loop() {
// La mesure de la distance est lancée à l'aide du signal de déclenchement d'une longueur de 10us
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// On attend maintenant à l'entrée Echo que le signal soit activé
// puis on mesure le temps pendant lequel il reste activé
duration = pulseIn(echoPin, HIGH);
// La distance est maintenant calculée à l'aide du temps enregistré
distance = duration/58.2;
// Vérification si la valeur mesurée se situe dans la distance autorisée
if (distance >= maximumRange || distance <= minimumRange) {
// Si ce n'est pas le cas, un message d'erreur est affiché.
Serial.println("Distance hors de la plage de mesure");
Serial.println("-----------------------------------");
}
else {
// La distance calculée est affichée dans la sortie sérielle
Serial.print("La distance est de: ");
Serial.print(distance);
Serial.println(" cm");
Serial.println("-----------------------------------");
}
// Pause entre les différentes mesures
delay(500);
}
Ce module est parfaitement adapté à la mesure de distances dans une plage comprise entre 2 cm et 3 m. Avec une résolution d'environ 3 mm, les distances peuvent être mesurées avec précision par signal ultrasonique. Lorsqu'un signal (front descendant) est appliqué à l'entrée de déclenchement, le capteur démarre une mesure de distance. Le résultat est transmis à la sortie d'écho sous forme de signal PWM-TTL.
Le capteur de distance à ultrasons est particulièrement utile pour la détection d'obstacles, la mesure de distance, les indicateurs de niveau et diverses applications industrielles. Grâce à sa grande précision et à son temps de réaction rapide (le temps minimal entre les mesures est de 50 µs), le capteur peut fonctionner de manière fiable en temps réel.
Ce module est polyvalent et offre une solution simple et efficace pour les projets nécessitant des mesures de distance précises.
Données techniques | |
---|---|
Distance mesurable | 2cm-300cm |
Résolution de mesure | 3mm |
min. Temps entre les mesures | 50µs |
Principe de fonctionnement
Ce module montre comment un haut-parleur à ultrasons et un microphone peuvent être utilisés pour mesurer la distance d'un objet sans contact. Le principe repose sur le fait que la vitesse du son dans l'air reste presque constante à température constante - à 20°C, elle est de 343,2m/s. Cela signifie que la distance peut être mesurée en un temps.
Ce fait peut être utilisé pour convertir la mesure de la distance en une mesure de temps, qui peut ensuite être facilement reprise par les microcontrôleurs.
Lorsqu'il est déclenché, le haut-parleur à ultrasons (transducteur) émet un bruit ultrasonique de 200µs maximum. Le haut-parleur à ultrasons émet un signal de 40 kHz. Cela signifie que 8 périodes (changements de front) sont émises dans les 200µs pendant lesquelles le transducteur émet son bruit ultrasonique. Pour arriver mathématiquement à ces 8 périodes du signal de 40 kHz, nous le calculons comme indiqué ci-dessous.
Nombre de périodes en une seconde = 40000.
Temps = 1s
Durée d'une seule période :
1s / 40000 = 25µs**
Longueur maximale du son ultrasonique = 200us
Durée d'une période unique = 25us
Nombre de périodes dans un son ultrasonique:
200µs / 25µs = 8
Le principe est simple : un son ultrasonique est émis par le haut-parleur situé sur le circuit imprimé, qui est ensuite réfléchi par un objet et capté par le microphone situé sur le circuit imprimé. Les ultrasons sont utilisés parce qu'ils se situent en dehors du champ d'audition de l'oreille humaine (environ 20Hz-22kHz).
La transmission du signal ultrasonore est lancée par la réception d'un signal de démarrage long de 10µs (ActiveHigh) sur la "Trigger Input Pin". Après la transmission, le signal est activé sur la "broche de signal de sortie de l'écho" (ActiveHigh). Si le signal réfléchi est à nouveau capté par le microphone, le signal d'écho est à nouveau désactivé après détection. Le temps entre l'activation et la désactivation du signal d'écho peut être mesuré et converti en distance, car il correspond également au temps nécessaire au signal ultrasonique pour franchir la distance entre le haut-parleur->la paroi réfléchissante ->le microphone dans l'air. La conversion se fait alors par approximation d'une vitesse d'air constante - la distance est alors par conséquent la moitié de la distance parcourue.
Affectation des broches
Raspberry Pi | Capteur |
---|---|
5 V [Pin 2] | +V |
Masse [Pin 6] | GND |
- | Déclencheur |
- | Echo |
Capteur | KY-051 |
---|---|
Déclencheur | B1 |
Echo | B2 |
+V | - |
GND | - |
Raspberry Pi | KY-051 |
---|---|
3,3 V [Pin 1] | Vcca |
5 V [Pin 4] | Vccb |
GND [Pin 14] | GND |
GPIO 17 [Pin 11] | A1 |
GPIO 27 [Pin 13] | A2 |
Exemple de programmation dans le langage de programmation Python
Niveau de tension de 5V, il faut donc respecter ce qui suit.
Le Raspberry Pi avec son processeur ARM, contrairement à l'Arduino basé sur Atmel Atmega, fonctionne à un niveau de tension de 3,3V au lieu de 5V - cependant, ce capteur ne fonctionne qu'au niveau de tension le plus élevé. Si vous deviez faire fonctionner le capteur sans restriction sur le Raspberry Pi sans précautions, cela pourrait causer des dommages permanents aux entrées du Raspberry Pi.
Pour de tels cas, ce kit de capteurs avec le KY-051 dispose d'un traducteur de tension qui ajuste les niveaux de tension et garantit ainsi un fonctionnement sûr. Celui-ci doit être connecté entre le Rasperry Pi et le capteur.
Pour plus d'informations, consultez la page d'information sur le KY-051.
Exemple de code
Le programme d'exemple active la mesure de distance selon le principe ci-dessus et mesure le temps pendant lequel le signal ultrasonique reste dans l'air à l'aide d'une sorte de chronomètre. Ce chronomètre est réalisé en lisant l'heure actuelle du système à partir de time.time() au moment de l'enclenchement du signal d'écho ; la différence entre l'heure d'enclenchement et l'heure de déclenchement est le temps recherché pendant lequel le signal est en route. Ce temps est ensuite pris comme base pour la conversion de la distance - le résultat est alors édité dans la cosnole. Si le signal est en dehors de la plage de mesure, un message d'erreur correspondant est émis.
from gpiozero import DistanceSensor
import time
# Définir les broches du capteur
trigger_pin = 17
echo_pin = 27
# La pause entre les différentes mesures peut être réglée ici en secondes
sleeptime = 0.8
# Initialiser le capteur ultrasonique
sensor = DistanceSensor(echo=echo_pin, trigger=trigger_pin)
# Boucle du programme principal
try:
while True:
# Mesure la distance et l'affiche
distance = sensor.distance * 100 # Conversion de mètres en centimètres
if distance < 2 or distance > 300:
print("Distance en dehors de la plage de mesure")
print("------------------------------")
else:
# L'espacement est formaté à deux décimales.
print(f"La distance est de: {distance:.2f} cm")
print("------------------------------")
# Pause entre les différentes mesures
time.sleep(sleeptime)
# Nettoyer les lieux après la fin du programme
except KeyboardInterrupt:
print("Le programme a été interrompu par l'utilisateur”)
Ce module est parfaitement adapté à la mesure de distances dans une plage comprise entre 2 cm et 3 m. Avec une résolution d'environ 3 mm, les distances peuvent être mesurées avec précision par signal ultrasonique. Lorsqu'un signal (front descendant) est appliqué à l'entrée de déclenchement, le capteur démarre une mesure de distance. Le résultat est transmis à la sortie d'écho sous forme de signal PWM-TTL.
Le capteur de distance à ultrasons est particulièrement utile pour la détection d'obstacles, la mesure de distance, les indicateurs de niveau et diverses applications industrielles. Grâce à sa grande précision et à son temps de réaction rapide (le temps minimal entre les mesures est de 50 µs), le capteur peut fonctionner de manière fiable en temps réel.
Ce module est polyvalent et offre une solution simple et efficace pour les projets nécessitant des mesures de distance précises.
Données techniques | |
---|---|
Distance mesurable | 2cm-300cm |
Résolution de mesure | 3mm |
min. Temps entre les mesures | 50µs |
Principe de fonctionnement
Ce module montre comment un haut-parleur à ultrasons et un microphone peuvent être utilisés pour mesurer la distance d'un objet sans contact. Le principe repose sur le fait que la vitesse du son dans l'air reste presque constante à température constante - à 20°C, elle est de 343,2m/s. Cela signifie que la distance peut être mesurée en un temps.
Ce fait peut être utilisé pour convertir la mesure de la distance en une mesure de temps, qui peut ensuite être facilement reprise par les microcontrôleurs.
Lorsqu'il est déclenché, le haut-parleur à ultrasons (transducteur) émet un bruit ultrasonique de 200µs maximum. Le haut-parleur à ultrasons émet un signal de 40 kHz. Cela signifie que 8 périodes (changements de front) sont émises dans les 200µs pendant lesquelles le transducteur émet son bruit ultrasonique. Pour arriver mathématiquement à ces 8 périodes du signal de 40 kHz, nous le calculons comme indiqué ci-dessous.
Nombre de périodes en une seconde = 40000.
Temps = 1s
Durée d'une seule période :
1s / 40000 = 25µs**
Longueur maximale du son ultrasonique = 200us
Durée d'une période unique = 25us
Nombre de périodes dans un son ultrasonique:
200µs / 25µs = 8
Le principe est simple : un son ultrasonique est émis par le haut-parleur situé sur le circuit imprimé, qui est ensuite réfléchi par un objet et capté par le microphone situé sur le circuit imprimé. Les ultrasons sont utilisés parce qu'ils se situent en dehors du champ d'audition de l'oreille humaine (environ 20Hz-22kHz).
La transmission du signal ultrasonore est lancée par la réception d'un signal de démarrage long de 10µs (ActiveHigh) sur la "Trigger Input Pin". Après la transmission, le signal est activé sur la "broche de signal de sortie de l'écho" (ActiveHigh). Si le signal réfléchi est à nouveau capté par le microphone, le signal d'écho est à nouveau désactivé après détection. Le temps entre l'activation et la désactivation du signal d'écho peut être mesuré et converti en distance, car il correspond également au temps nécessaire au signal ultrasonique pour franchir la distance entre le haut-parleur->la paroi réfléchissante ->le microphone dans l'air. La conversion se fait alors par approximation d'une vitesse d'air constante - la distance est alors par conséquent la moitié de la distance parcourue.
Affectation des broches
Externe | Capteur |
---|---|
5V Externe | +V |
Micro:Bit GND + GND Externe | GND |
- | Déclencheur |
- | Echo |
Capteur | KY-051 |
---|---|
Déclencheur | B1 |
Echo | B2 |
+V | - |
GND | - |
Micro:Bit | KY-051 |
---|---|
3,3 V | Vcca |
- | Vccb |
GND + GND Externe | GND |
Pin 2 | A1 |
Pin 1 | A2 |
Externe | KY-051 |
---|---|
5V Externe | Vccb |
Exemple de code
Ceci est un exemple MakeCode pour Micro:Bit qui fait essentiellement la même chose que les exemples des deux autres variantes. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.
Une bibliothèque supplémentaire est nécessaire pour l'exemple de code suivant :
pxt-sonar de Microsoft | publié sous la licence MIT
Vous devez ajouter cette bibliothèque à votre IDE avant de pouvoir utiliser le code.
Pour ce faire, allez dans Extensions dans votre IDE et utilisez l'URL suivante https://github.com/microsoft/pxt-sonar.git pour rechercher la bibliothèque et l'ajouter.
let p = 0
basic.forever(function () {
p = sonar.ping(
DigitalPin.P1,
DigitalPin.P2,
PingUnit.Centimeters
)
led.plotBarGraph(
p,
0
)
})
Téléchargement d'un exemple de programme
Ce module est parfaitement adapté à la mesure de distances dans une plage comprise entre 2 cm et 3 m. Avec une résolution d'environ 3 mm, les distances peuvent être mesurées avec précision par signal ultrasonique. Lorsqu'un signal (front descendant) est appliqué à l'entrée de déclenchement, le capteur démarre une mesure de distance. Le résultat est transmis à la sortie d'écho sous forme de signal PWM-TTL.
Le capteur de distance à ultrasons est particulièrement utile pour la détection d'obstacles, la mesure de distance, les indicateurs de niveau et diverses applications industrielles. Grâce à sa grande précision et à son temps de réaction rapide (le temps minimal entre les mesures est de 50 µs), le capteur peut fonctionner de manière fiable en temps réel.
Ce module est polyvalent et offre une solution simple et efficace pour les projets nécessitant des mesures de distance précises.
Données techniques | |
---|---|
Distance mesurable | 2cm-300cm |
Résolution de mesure | 3mm |
min. Temps entre les mesures | 50µs |
Principe de fonctionnement
Ce module montre comment un haut-parleur à ultrasons et un microphone peuvent être utilisés pour mesurer la distance d'un objet sans contact. Le principe repose sur le fait que la vitesse du son dans l'air reste presque constante à température constante - à 20°C, elle est de 343,2m/s. Cela signifie que la distance peut être mesurée en un temps.
Ce fait peut être utilisé pour convertir la mesure de la distance en une mesure de temps, qui peut ensuite être facilement reprise par les microcontrôleurs.
Lorsqu'il est déclenché, le haut-parleur à ultrasons (transducteur) émet un bruit ultrasonique de 200µs maximum. Le haut-parleur à ultrasons émet un signal de 40 kHz. Cela signifie que 8 périodes (changements de front) sont émises dans les 200µs pendant lesquelles le transducteur émet son bruit ultrasonique. Pour arriver mathématiquement à ces 8 périodes du signal de 40 kHz, nous le calculons comme indiqué ci-dessous.
Nombre de périodes en une seconde = 40000.
Temps = 1s
Durée d'une seule période :
1s / 40000 = 25µs**
Longueur maximale du son ultrasonique = 200us
Durée d'une période unique = 25us
Nombre de périodes dans un son ultrasonique:
200µs / 25µs = 8
Le principe est simple : un son ultrasonique est émis par le haut-parleur situé sur le circuit imprimé, qui est ensuite réfléchi par un objet et capté par le microphone situé sur le circuit imprimé. Les ultrasons sont utilisés parce qu'ils se situent en dehors du champ d'audition de l'oreille humaine (environ 20Hz-22kHz).
La transmission du signal ultrasonore est lancée par la réception d'un signal de démarrage long de 10µs (ActiveHigh) sur la "Trigger Input Pin". Après la transmission, le signal est activé sur la "broche de signal de sortie de l'écho" (ActiveHigh). Si le signal réfléchi est à nouveau capté par le microphone, le signal d'écho est à nouveau désactivé après détection. Le temps entre l'activation et la désactivation du signal d'écho peut être mesuré et converti en distance, car il correspond également au temps nécessaire au signal ultrasonique pour franchir la distance entre le haut-parleur->la paroi réfléchissante ->le microphone dans l'air. La conversion se fait alors par approximation d'une vitesse d'air constante - la distance est alors par conséquent la moitié de la distance parcourue.
Affectation des broches
Comme la KY-050 fonctionne avec 5V, un voltage translator et une alimentation externe sont nécessaires pour la faire fonctionner avec le Raspberry Pi Pico. Vous pouvez utiliser le KY-051 comme translateur de tension et une alimentation externe, par exemple un Arduino ou un Raspberry Pi.
Voltage Translator | KY-050 |
---|---|
Vccb | +V |
GND | GND |
B1 | Echo |
B2 | Trig |
Raspberry Pi Pico | Externe |
---|---|
GND | Externe GND |
Voltage Translator | Externe |
---|---|
Vccb | Externe 5V |
GND | Externe GND |
Voltage Translator | Raspberry Pi Pico |
---|---|
Vcca | 3,3V |
GND | GND |
A1 | GPIO16 |
A2 | GPIO17 |
Exemple de code
Le programme d'exemple active la mesure de la distance selon le principe ci-dessus et calcule le temps jusqu'à ce que le signal ultrasonique soit capté par le microphone. Ce temps est ensuite pris comme base pour la conversion de la distance - le résultat est ensuite émis dans la sortie série. Si le signal est en dehors de la plage de mesure, un message d'erreur correspondant est émis.
Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico).
Copiez maintenant le code ci-dessous dans votre IDE et cliquez sur Run.
# Charger des bibliothèques
from machine import Pin
import time
# Initialisation de GPIO16 comme entrée et GPIO17 comme sortie
trigger_pin = Pin(17, Pin.OUT)
echo_pin = Pin(16, Pin.IN, Pin.PULL_DOWN)
print("KY-050 Mesure de la distance")
# Boucle infinie pour mesurer la distance
while True:
# La mesure de la distance est lancée au moyen du signal de déclenchement de 10us
trigger_pin.value(0)
time.sleep(0.1)
trigger_pin.value(1)
# On attend maintenant à l'entrée Echo que le signal soit activé.
# Ensuite, on mesure le temps pendant lequel il reste activé
time.sleep_us(2)
trigger_pin.value(0)
while echo_pin.value()==0:
pulse_start = time.ticks_us()
while echo_pin.value()==1:
pulse_end = time.ticks_us()
pulse_duration = pulse_end - pulse_start
# Maintenant, la distance est calculée à l'aide du temps enregistré
distance = pulse_duration * 17165 / 1000000
distance = round(distance, 0)
# Sortie en série
print ('Distance:',"{:.0f}".format(distance),'cm')
time.sleep(1)