Connecter un capteur ultrasonique HC‑SR04 à un Raspberry Pi – Guide pratique
Dans nos projets précédents, nous avons couvert les capteurs de température, les modules PIR de détection de mouvement et l'interfaçage GPIO de base. Le télémètre ultrasonique HC‑SR04 est un choix populaire pour la mesure de distance, mais sa sortie 5 V doit être réduite à 3,3 V pour protéger les broches GPIO du Raspberry Pi. Ce tutoriel vous guide à travers la physique, l'électronique et le code Python nécessaires pour connecter et utiliser le capteur en toute sécurité.
Matériel nécessaire
- Capteur ultrasonique HC‑SR04
- Résistance 1 kΩ
- Résistance 2 kΩ
- Fils de connexion (mâle‑femelle)
- Optionnel : plaque d'essai
Fonctionnement des capteurs ultrasoniques
Le son se propage sous forme d'ondes de pression ; la hauteur est déterminée par la fréquence de ces ondes. Les capteurs ultrasoniques émettent un son haute fréquence inaudible pour l'homme, qui rebondit sur les objets proches et revient sous forme d'écho. En chronométrant l'aller-retour de l'impulsion, le circuit intégré du capteur calcule la distance en utilisant la vitesse du son (≈ 343 m/s dans l'air).
Brochage et fonctionnement du HC‑SR04
- Vcc – Alimentation 5 V
- GND – Masse
- TRIG – Entrée de déclenchement ; une impulsion de 10 µs lance une mesure
- ECHO – Impulsion de sortie 5 V dont la largeur équivaut au temps de parcours de l'écho
Le capteur émet une impulsion 5 V sur ECHO qui dure depuis la détection de l'écho jusqu'à ce que le capteur soit prêt pour le prochain déclenchement. Comme une broche GPIO du Raspberry Pi ne tolère que 3,3 V, nous devons abaisser cette tension.
Circuit diviseur de tension
Un simple diviseur de tension utilise deux résistances en série. Avec la sortie 5 V ECHO du capteur en entrée, une résistance de 1 kΩ (R1) suivie d'une résistance de 2 kΩ (R2) produira une sortie de 3,3 V au point de jonction :
Vout = Vin × (R2 / (R1 + R2))
Placez la résistance de 1 kΩ entre la ligne ECHO et la broche GPIO du Raspberry Pi, puis connectez la résistance de 2 kΩ de cette jonction à la masse. Cela protège le Pi tout en permettant une mesure précise.
Câblage matériel (méthode plaque d'essai)
Utilisez les broches Raspberry Pi suivantes :
Pin 2– 5 VPin 6– GNDPin 16– GPIO 23 (TRIG)Pin 18– GPIO 24 (ECHO)
- Connectez les broches du HC‑SR04 à la plaque d'essai : Rouge (Vcc), Bleu (TRIG), Jaune (ECHO), Noir (GND).
- Reliez le rail positif de la plaque au 5 V du Pi et le rail négatif au GND du Pi.
- Câblez TRIG vers GPIO 23. Vous pouvez le connecter directement ou via un rail de la plaque.
- Pour la ligne ECHO, placez la résistance de 1 kΩ sur le rail depuis la broche
ECHOdu HC‑SR04, puis ajoutez la résistance de 2 kΩ vers la masse. Connectez GPIO 24 à la jonction entre les deux résistances. - Vérifiez toutes les connexions avant d'alimenter le Pi.
Code Python pour lire la distance
Le script suivant montre comment déclencher le capteur et interpréter la largeur de l'impulsion d'écho pour calculer la distance en centimètres.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.output(TRIG, False)
time.sleep(2) # Laisser le capteur se stabiliser
while True:
# Déclencher le capteur : impulsion haute de 10 µs
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
# Attendre que l'écho passe à l'état haut
pulse_start = time.time()
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
# Attendre que l'écho repasse à l'état bas
pulse_end = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150 # Vitesse du son en cm/s
print("Distance: %0.2f cm" % distance)
time.sleep(1)
GPIO.cleanup()
L'exécution de ce script affichera des lectures de distance en temps réel. Ajustez le délai ou l'intervalle de déclenchement selon votre application.
Conseils de sécurité
- Ne connectez jamais la broche
ECHOdu HC‑SR04 directement à une broche GPIO du Pi sans diviseur de tension. - Alimentez toujours le Pi et le capteur depuis le même rail 5 V pour éviter les décalages de tension.
- Consultez la fiche technique du capteur pour la température maximale de fonctionnement et la charge recommandée.
En suivant ces étapes, vous disposerez d'un système robuste de mesure de distance ultrasonique, sûr pour votre Raspberry Pi et précis pour une large gamme de projets de robotique et d'automatisation.
Processus de fabrication
- Construire un enregistreur de température Raspberry Pi avec capteur I2C à 5 $
- Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Construire une station météo Raspberry Pi qui envoie les données météo quotidiennes par email
- Breakout compact DHT Température & Humidité pour Raspberry Pi – ATtiny85 & DHT22/DHT11
- Intégration de données de capteurs sur Raspberry Pi : Guide pratique complet
- Connexion du capteur ultrasonique HC‑SR04 au Raspberry Pi 3 : Guide complet
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Construire un capteur d'humidité du sol Raspberry Pi low-cost pour irrigation intelligente