Capteur à Ultrason HC-SR04 – Raspberry Pi

Les informations sur les caractéristiques du capteur sont disponibles ici.

Le signal de sortie du capteur (ECHO) sur le HC-SR04 est de à 5V. Cependant, nous pouvons envoyer sur la broche d’entrée sur du GPIO Raspberry Pi 3,3V.

En envoyant un signal 5V dans ce port d’entrée de 3,3 V non protégé, on pourrait endommager les broches GPIO.
Nous aurons besoin d’utiliser un diviseur de tension, composé de deux résistances, pour abaisser la tension de sortie du capteur à une tension que le Raspberry Pi peut manipuler.

Schéma de câblage :

# Importer les librairies 
import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

# Definir les ports GPIO
GPIO_TRIGGER = 23
GPIO_ECHO = 24

# Definir les ports GPIO en entrée et Sortie
GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger
GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo

GPIO.output(GPIO_TRIGGER, False)
time.sleep(0.5)

# Envoyer une impulsion de 10us sur le Trigger
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
start = time.time()
while GPIO.input(GPIO_ECHO)==0:
start = time.time()

while GPIO.input(GPIO_ECHO)==1:
stop = time.time()

# Calculer la longueur de la pulsation
elapsed = stop-start

distance = elapsed * 34000
distance = distance / 2

print "Distance : %.1f" % distance

# Reset GPIO
GPIO.cleanup()

 

Capteur à Ultrason HC-SR04 – Arduino

Un capteur ultrason envoie un son puis mesure le temps que l’echo va mettre à revenir.

Le capteur HC-SR04 utilise les ultrasons pour déterminer la distance d’un objet. Il offre une excellente plage de détection sans contact, avec des mesures de haute précision et stables. Son fonctionnement n’est pas influencé par la lumière du soleil ou des matériaux sombres, bien que des matériaux comme les vêtements puissent être difficiles à détecter.

 

Caractéristiques :
– Dimensions : 45 mm x 20 mm x 15 mm
– Plage de mesure : 2 cm à 400 cm
– Résolution de la mesure : 0.3 cm
– Angle de mesure efficace : 15 °
– Largeur d’impulsion sur l’entrée de déclenchement : 10 μs (Trigger Input Pulse width)

 

Nous savons que le son se déplace à une vitesse v = 330m.s-1
Le son met donc 3 secondes pour se déplacer sur 1km et il faut à peu près 3 millisecondes au son pour parcourir 1 mètre :

 

// définition des broches utilisées
int trig = 8;
int echo = 7;
float lecture_echo;
float cm;

void setup()
{
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
Serial.begin(9600);
}

void loop()
{
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
cm = lecture_echo / 58;
Serial.print("Distance : ");
Serial.println(cm);
delay(1000);
}
HC-SR04