from machine import Pin, SoftI2C
from utime import sleep_us, ticks_us, sleep
from i2c_lcd import I2cLcd
trigger = Pin(25, Pin.OUT)
echo = Pin(33, Pin.IN)
def ultra():
trigger.off()
sleep_us(2)
trigger.on()
sleep_us(5)
trigger.off()
while echo.value() == 0:
signal_off = ticks_us()
while echo.value() == 1:
signal_on = ticks_us()
try:
time_pass = signal_on - signal_off
except NameError:
return 0
return time_pass / 58
i2c = SoftI2C(sda=Pin(21), scl=Pin(22))
lcd = I2cLcd(i2c, 0x27, 2, 16)
while True:
dist = ultra()
print(f'Distance: {dist:.2f}cm')
sleep(0.5)
lcd.putstr(f'{dist:.2f}cm')