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

trig_pin = Pin(16, Pin.OUT)
echo_pin = Pin(17, 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))