import machine
from time import sleep, sleep_us, ticks_us, ticks_diff
from ssd1306 import SSD1306_I2C
led = machine.Pin(32, machine.Pin.OUT)
trigger = machine.Pin(18, machine.Pin.OUT)
echo = machine.Pin(19, machine.Pin.IN)
i2c = machine.I2C(1, scl=machine.Pin(22), sda=machine.Pin(21))
oled = SSD1306_I2C(128, 64, i2c)
def lec_distance():
trigger.value(0)
sleep_us(2)
trigger.value(1)
sleep_us(10)
trigger.value(0)
while echo.value() == 0:
start = ticks_us()
while echo.value() == 1:
end = ticks_us()
duration = ticks_diff(end, start)
distance = (duration * 0.0343) / 2
return distance
while True:
distance = lec_distance()
oled.fill(0)
oled.text('Distance: {:.2f} cm'.format(distance), 0, 20)
oled.show()
if distance < 10:
led.value(1)
sleep(5)
else:
led.value(0)
sleep(0.1)