from machine import Pin, time_pulse_us
import time
# Constantes
vitesse_son = 340 # m/s
TRIG_PULSE_US = 10 # Durée de l'impulsion TRIG en microsecondes
# Initialisation des broches
trig = Pin(2, Pin.OUT)
echo = Pin(4, Pin.IN)
led_B = Pin(22, Pin.OUT)
led_V = Pin(8, Pin.OUT)
led_R = Pin(12, Pin.OUT)
while True:
# Envoi d'une impulsion sur TRIG
trig.value(0)
time.sleep_us(2)
trig.value(1)
time.sleep_us(TRIG_PULSE_US)
trig.value(0)
# Mesure du temps de retour de l'onde
ultrason = time_pulse_us(echo, 1, 30000) # attente du signal HIGH
if ultrason > 0:
# Calcul de la distance en cm
distance_cm = (vitesse_son * ultrason) / 2 / 10000 # divisé par 2 (aller-retour) et conversion µs → cm
print(f"Distance: {distance_cm:.2f} cm")
# Logique des LEDs
if distance_cm > 200:
led_B.on()
led_R.off()
led_V.off()
elif 100 < distance_cm <= 200:
led_B.on()
led_R.on()
led_V.off()
else:
led_B.on()
led_R.on()
led_V.on()
else:
print("Erreur de mesure")
time.sleep_ms(500)