"""
from machine import Pin
import utime

trigger = Pin(7, Pin.OUT)
echo = Pin(6, Pin.IN)

distance = 0
def ultrasound():
    global distance
    trigger.low()
    utime.sleep_us(2)
    trigger.high()
    utime.sleep_us(5)
    trigger.low()
    while echo.value() == 0:
        signaloff = utime.ticks_us()
    while echo.value() == 1:
        signalon = utime.ticks_us()
    timepassed = signalon - signaloff
    distance = (timepassed * 0.0343) / 2

while True:
    ultrasound()
    print("The distance from object is ", distance, "cm")
    utime.sleep(1)
"""

from machine import Pin, I2C, SoftI2C
import ssd1306
import time
import utime
from lcd_api import LcdApi
from i2c_lcd import I2cLcd

trigger = Pin(7, Pin.OUT)
echo = Pin(6, Pin.IN)

#You can choose any other combination of I2C pins
i2c = SoftI2C(scl=Pin(5), sda=Pin(4))

oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)


I2C_ADDR     = 0x27
I2C_NUM_ROWS = 2
I2C_NUM_COLS = 16

i2c = I2C(0, sda=machine.Pin(0), scl=machine.Pin(1), freq=400000)
lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)

distance = 0
def ultrasound():
    global distance
    trigger.low()
    utime.sleep_us(2)
    trigger.high()
    utime.sleep_us(5)
    trigger.low()
    while echo.value() == 0:
        signaloff = utime.ticks_us()
    while echo.value() == 1:
        signalon = utime.ticks_us()
    timepassed = signalon - signaloff
    distance = (timepassed * 0.0343) / 2
        
def dispTemp():
    lcd.clear()
    lcd.move_to(0,0)
    lcd.putstr("Distance= ")
    lcd.move_to(0,1)
    lcd.putstr(str(distance))
    
while True:
    distance_string = str(distance)
    ultrasound()
    dispTemp()
    oled.fill(0)
    oled.text("Distance:",0,0)
    oled.text(distance_string, 0, 10)
    oled.show()
    time.sleep_ms(750)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT