from machine import Pin, SoftI2C, time_pulse_us
from i2c_lcd import I2cLcd
from time import sleep
TRIG_PIN = 16
ECHO_PIN = 17
SOUND_SPEED = 340.29
trig = Pin(TRIG_PIN, Pin.OUT)
echo = Pin(ECHO_PIN, Pin.IN)
def measure_distance():
trig.value(0)
sleep(0.000002)
trig.value(1)
sleep(0.00001)
trig.value(0)
duration = time_pulse_us(echo, 1)
distance = (duration * SOUND_SPEED) / (2 * 10000)
return distance
I2C_ADDR = 0x27
totalRows = 4
totalColumns = 20
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=100000)
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)
while True:
distance = measure_distance()
lcd.clear()
lcd.move_to(0, 0)
lcd.putstr(f"Distance: {distance:.2f} cm")
sleep(2)
oled.invert(True) #change background to white
#oled.pixel(21,24,1)
oled.text('Distance', 30, 30, 1)
oled.show()
# from machine import Pin, SoftI2C, time_pulse_us
# from i2c_lcd import I2cLcd
# from time import sleep
# TRIG_PIN = 16
# ECHO_PIN = 17
# SOUND_SPEED = 340.29
# trig = Pin(TRIG_PIN, Pin.OUT)
# echo = Pin(ECHO_PIN, Pin.IN)
# def measure_distance():
# trig.value(0)
# sleep(0.000002)
# trig.value(1)
# sleep(0.00001)
# trig.value(0)
# duration = time_pulse_us(echo, 1)
# distance = (duration * SOUND_SPEED) / (2 * 10000)
# return distance
# I2C_ADDR = 0x27
# totalRows = 4
# totalColumns = 20
# i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=100000)
# lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)
# while True:
# distance = measure_distance()
# lcd.clear()
# lcd.move_to(0, 0)
# lcd.putstr(f"Distance: {distance:.2f} cm")
# sleep(2)