from machine import Pin,Timer
from time import sleep_us,sleep_ms,sleep,ticks_us,ticks_diff
import time
trig = Pin(27,Pin.OUT)
echo = Pin(26,Pin.IN)
led = Pin(25,Pin.OUT)
led.value(0)
distance = 0
derniere_distance=0
def callback_timer(t) :
led.value(not(led.value()))
tim0 = Timer(0)
tim0.init(period=500, mode=Timer.PERIODIC, callback=callback_timer)
def mesureHCSR04():
global distance
t1=0
t0=0
trig.value(0)
sleep_us(20)
trig.value(1)
sleep_us(10)
trig.value(0)
while echo.value()==0:
pass
t0 = time.ticks_us()
while echo.value()==1:
pass
t1 = time.ticks_us()
distance = time.ticks_diff(t1,t0)
distance = (distance * 340 *1e-4)/2
return round(distance,0)
def miseAjourTimer(distance):
global derniere_distance
if abs(distance-derniere_distance) >2 :
derniere_distance = distance
frequence = (distance * 10)
print(frequence)
if frequence > 3000 :
tim0.deinit()
else :
tim0.deinit()
tim0.init(period=int(frequence), mode=Timer.PERIODIC, callback=callback_timer)
while True :
d= mesureHCSR04()
if d>=50 :
print(f"--.--")
else :
print(f"{d}CM")
miseAjourTimer(d)
sleep_ms(200)