from machine import Pin, Timer
import time
def blink(timer):
global led, led_state
led.value(led_state)
led_state = not led_state
def measure_distance():
trig.value(1)
time.sleep_us(10)
trig.value(0)
while echo.value() == 0:
start = time.ticks_us()
while echo.value() == 1:
end = time.ticks_us()
pulse_duration = time.ticks_diff(end, start)
distance = (pulse_duration * 0.0343) / 2
return distance
trig = Pin(18, Pin.OUT)
echo = Pin(19, Pin.IN)
led = Pin(0, Pin.OUT)
led_state = False
blink_timer = Timer(-1)
while True:
distance = measure_distance()
if 0 < distance <= 200:
period = int((distance + 50) + 10)
blink_timer.init(period=period, mode=Timer.PERIODIC, callback=blink)
else:
blink_timer.deinit()
led.value(0)
time.sleep(5) # Attendre 2 secondes avant de mesurer à nouveau la distance