from machine import Pin, I2C
from utime import sleep
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd
# Dirección del I2C y tamaño del LCD
I2C_ADDR = 0x27
I2C_NUM_ROWS = 2
I2C_NUM_COLS = 16
# Configuración I2C para la Raspberry Pi Pico
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)
# Configurar LEDs
R = Pin(10, Pin.OUT)
A = Pin(11, Pin.OUT)
V = Pin(12, Pin.OUT)
# Configurar botones con resistencias PULL_DOWN
B_R = Pin(15, Pin.IN, Pin.PULL_DOWN)
B_A = Pin(16, Pin.IN, Pin.PULL_DOWN)
B_V = Pin(17, Pin.IN, Pin.PULL_DOWN)
# Funcion para apagar todos los leds
def leds_off():
R.off()
A.off()
V.off()
# Mensaje inicial
lcd.putstr(" BIENVENIDOS")
sleep(1)
lcd.clear()
while True:
if B_R.value():
lcd.clear()
leds_off()
R.on()
lcd.putstr(" -- alto --")
sleep(0.5)
elif B_A.value():
lcd.clear()
leds_off()
A.on()
lcd.putstr(" -- espere --")
sleep(0.5)
elif B_V.value():
lcd.clear()
leds_off()
V.on()
lcd.putstr(" -- SIGA --")
sleep(0.5)
# Este 'sleep' es crucial para no saturar el procesador y permitir que se registren las pulsaciones.
sleep(0.1)