from machine import Pin, time_pulse_us
import time
# Configuration des broches
trigger_pin = Pin(5, Pin.OUT) # Pin pour Trigger de l'ultrason
echo_pin = Pin(18, Pin.IN) # Pin pour Echo de l'ultrason
buzzer_pin = Pin(21, Pin.OUT) # Pin pour le buzzer
led_pin = Pin(19, Pin.OUT) # Pin pour la LED
# Fonction pour mesurer la distance avec le capteur ultrasonique
def measure_distance():
# Envoi d'une impulsion de 10 µs sur la broche Trigger
trigger_pin.value(0)
time.sleep_us(2)
trigger_pin.value(1)
time.sleep_us(10)
trigger_pin.value(0)
# Mesure du temps que met l'écho à revenir
pulse_time = time_pulse_us(echo_pin, 1, 30000) # 30ms timeout
# Calcul de la distance en cm (vitesse du son = 340 m/s)
if pulse_time > 0:
distance = (pulse_time / 2) / 29.1 # Conversion en cm
return distance
else:
return None
# Fonction pour faire bip le buzzer et clignoter la LED
def beep_and_blink(interval):
buzzer_pin.value(1)
led_pin.value(1)
time.sleep(interval) # Temps que le buzzer et la LED restent allumés
buzzer_pin.value(0)
led_pin.value(0)
time.sleep(interval) # Temps que le buzzer et la LED restent éteints
# Boucle principale
while True:
distance = measure_distance()
if distance is not None:
print("Distance mesurée:", distance, "cm")
# Limiter la distance entre 0 et 100 cm
distance = min(max(distance, 0), 100)
# Calculer l'intervalle de temps entre 0 et 1 seconde
interval = (100 - distance) / 100 # Intervalle de temps entre 0 et 1 s
# Faire bip le buzzer et clignoter la LED
beep_and_blink(interval)
else:
print("Erreur de mesure")
time.sleep(0.1) # Petite pause avant la prochaine mesure