from machine import Pin, SoftI2C
import utime
from i2c_lcd import I2cLcd
trigger = Pin(26, Pin.OUT)
echo = Pin(27, Pin.IN)
sda_pin = Pin(21)
scl_pin = Pin(22)
i2c = SoftI2C(sda=sda_pin, scl=scl_pin, freq=10000)
device = 0x27
lcd = I2cLcd(i2c, device, 2, 16)
def ultra():
trigger.off()
utime.sleep_us(2)
trigger.on()
utime.sleep_us(5)
trigger.off()
while echo.value() == 0:
signal_off = utime.ticks_us()
while echo.value() == 1:
signal_on = utime.ticks_us()
try:
time_passed = signal_on - signal_off
except NameError:
return 0
return time_passed/58
while True:
distance = ultra()
print(f"Distance from object is {distance:6.2f}cm.")
lcd.putstr(f"{distance:6.2f}")
utime.sleep(1)
lcd.clear()
lcd.move_to(10,1)
lcd.putstr(f"{distance:6.2f}")
utime.sleep(1)
lcd.clear()