# modulos
from machine import Pin
import uasyncio
from machine import Pin, I2C,time_pulse_us
from time import sleep, sleep_us
from pico_i2c_lcd import I2cLcd
#crear Pines
led1 = Pin(4, Pin.OUT)
led2 = Pin(5, Pin.OUT)
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
I2C_ADDR=i2c.scan()[0]
ECHO_PIN=26
TRIGGER_PIN=27
#crear objeto tipo lcd
lcd=I2cLcd(i2c,I2C_ADDR,2,16)
trigger=Pin(TRIGGER_PIN,Pin.OUT)
echo=Pin(ECHO_PIN,Pin.IN)
async def blink(led, period):
while True:
led.value(1)
await uasyncio.sleep(period)
led.value(0)
await uasyncio.sleep(period)
async def main():
uasyncio.create_task(blink(led1, 0.16))
uasyncio.create_task(blink(led2, 0.33))
await uasyncio.sleep_ms(10_000)
uasyncio.run(main())
def medir_distancia():
trigger.low()
sleep_us(2)
trigger.high()
sleep_us(10)
trigger.low()
#duracion
pulso_duracion=time_pulse_us(echo,Pin.high)
#CALCULAR LA DISTANCIA
distancia=pulso_duracion*0.034/2
return round(distancia)
#LOOP
while True:
distancia_lcd=medir_distancia()
print("Distancia: {:0.1f} cm".format(distancia_lcd))
lcd.clear()
lcd.putstr(str(distancia_lcd)+ "cm")
sleep(2)