Nouveau ! Création d'une barre de recherche sur la page d'accueil pour naviguer encore plus simplement sur le site.

Tutoriel Raspberry #4
Mesure de distances avec une sonde HC-SR04


Mis à jour le : 10/08/2016


La sonde à ultrasons HC-SR04 permet de mesurer une distance de 2 à 400cm en envoyant des signaux à 40 kHz. En fonction du temps qui sépare l'émission de la réception, on trouve par un calcul la distance. Le capteur possède 4 Pin et nécessite une tension de 5V.

I. Prérequis

Pour utiliser une sonde HC-SR04 avec un Raspberry, il faut :
    - Un Raspberry Pi,
    - Une sonde HC-SR04,
    - Une résistance 1KΩ et 2KΩ.

Une fois tous les éléments réunis, on peut passer au branchement.

II. Connection du capteur au Raspberry

La sonde HC-SR04 se connecte donc au Raspberry grâce à 4 PINs : VCC, Trig, Echo et GND. Pour la connecter au Raspberry, nous aurons besoin de deux résistances une de 1KΩ et une de 2KΩ. Connectez le capteur HC-SR04 comme ceci :


Branchements d'un HC-SR04 au Raspberry

Une fois branché, il suffit d'exécuter un script Python pour obtenir la distance calculée entre le capteur et l'obstacle.

III. Programmation du capteur en Python

Ce script Python va donner une distance en centimètres toutes les secondes pendant un nombre de fois donné :


import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

print "+-----------------------------------------------------------+"
print "|   Mesure de distance par le capteur ultrasonore HC-SR04   |"
print "+-----------------------------------------------------------+"

Trig = 23          # Entree Trig du HC-SR04 branchee au GPIO 14
Echo = 24         # Sortie Echo du HC-SR04 branchee au GPIO 15

GPIO.setup(Trig,GPIO.OUT)
GPIO.setup(Echo,GPIO.IN)

GPIO.output(Trig, False)

repet = input("Entrez un nombre de repetitions de mesure : ")

for x in range(repet):    # On prend la mesure "repet" fois

   time.sleep(1)       # On la prend toute les 1 seconde

   GPIO.output(Trig, True)
   time.sleep(0.00001)
   GPIO.output(Trig, False)

   while GPIO.input(Echo)==0:  ## Emission de l'ultrason
     debutImpulsion = time.time()

   while GPIO.input(Echo)==1:   ## Retour de l'Echo
     finImpulsion = time.time()

   distance = round((finImpulsion - debutImpulsion) * 340 * 100 / 2, 1)  ## Vitesse du son = 340 m/s

   print "La distance est de : ",distance," cm"

GPIO.cleanup()

Une fois le script enregistré et exécuté, vous devriez obtenir un résultat de ce genre :


Resultat du programme d'un HC-SR04 au Raspberry

EspaceRaspberryFrançais ©

N'hésitez pas à aimer notre page Facebook pour apporter du soutien au site !


Pour encore plus de soutien, un don permettrai une meilleure actualisation du site, l'apparition de plus de tutoriels... et me motiverai à proposer de plus en plus de contenu. Merci d'avance :)