import time
import machine
from machine import Pin, I2C
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd
I2C_ADDR = 0x27
I2C_NUM_ROWS = 2
I2C_NUM_COLS = 16
# Inicializa I2C en los pines GP0 (SDA) y GP1 (SCL) con frecuencia de 400kHz
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)
trigger = Pin(16, Pin.OUT)
echo = Pin(17, Pin.IN)
time.sleep_ms(300)
while True:
# Enviar pulso ultrasónico
trigger.value(0)
time.sleep_us(2)
trigger.value(1)
time.sleep_us(10)
trigger.value(0)
# Esperar que el pin echo se active
while echo.value() == 0:
ini = time.ticks_us()
# Esperar que el pin echo se desactive
while echo.value() == 1:
fin = time.ticks_us()
# Calcular duración del pulso y distancia
duracion = time.ticks_diff(fin, ini)
distancia = duracion * 0.0171 # en cm
# Mostrar en la pantalla LCD
lcd.clear()
lcd.putstr("Distancia: %5.2f cm" % distancia)
time.sleep(1)
'''
import time
import machine
from machine import Pin, I2C
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd
I2C_ADDR = 0x27
I2C_NUM_ROWS = 2
I2C_NUM_COLS = 16
# Inicializa I2C en los pines GP0 (SDA) y GP1 (SCL) con frecuencia de 400kHz
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)
trigger = Pin(16, Pin.OUT)
echo = Pin(17, Pin.IN)
time.sleep_ms(300)
while True:
# Enviar pulso ultrasónico
trigger.value(0)
time.sleep_us(2)
trigger.value(1)
time.sleep_us(10)
trigger.value(0)
# Esperar que el pin echo se active
while echo.value() == 0:
ini = time.ticks_us()
# Esperar que el pin echo se desactive
while echo.value() == 1:
fin = time.ticks_us()
# Calcular duración del pulso y distancia
duracion = time.ticks_diff(fin, ini)
distancia = duracion * 0.0171 # en cm
# Mostrar en la pantalla LCD
lcd.clear()
lcd.putstr("Distancia: %5.2f cm" % distancia)
time.sleep(1)
'''