from machine import Pin, SoftI2C
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
import time 

trig_pin = Pin(23, Pin.OUT)
echo_pin = Pin(19, Pin.IN)

I2C_ADDR = 0x27
totalRows = 2
totalColumns = 16

i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000)
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)

while True:
    trig_pin.on()
    time.sleep_us(10)
    trig_pin.off()

    while echo_pin.value() == 0:
        pulse_start = time.ticks_us()
    while echo_pin.value() == 1:
        pulse_end = time.ticks_us()

    pulse_duration = pulse_end - pulse_start
    distance = (pulse_duration * 0.034) / 2

    print('Distance:', distance, 'cm')
    time.sleep(1)

    lcd.move_to(0,0)
    lcd.putstr("Distance:")
    lcd.move_to(0,1)
    lcd.putstr("{:.2f} cm".format(distance))