#From para importar exactamente lo que queremos usar, en este caso el pin del i2c
from machine import Pin,I2C
#para trabajar con los tiempos
from time import sleep
#Se llama al modulo i2c donde está todo asignado o programado
from pico_i2c_lcd import I2cLcd
#Crear la conección i2c pines 0, sda utiliza el pin 0 y scl se usa pin 1 y
#velocidad de frecuencia determina qué tan rápido se envían y reciben los datos,
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
#Como se van a trabajar los valores del bus i2c, es parte de la descripcion asignada para trabajar con i2c
I2C_ADDR=i2c.scan()[0]
#Se crea un objeto tipo lcd, se utiliza lo creado para crear el objeto que tenga los valores del i2c
#asignamos 2 y 16 que es el tamaño de la pantalla 2 filas x 16 columnas
lcd=I2cLcd(i2c,I2C_ADDR,2,16)
#se configura pin del boton
button = Pin(7, Pin.IN, Pin.PULL_UP)
led_rojo = Pin(21, Pin.OUT)
mensajes = 0
#se crea loop
while True:
if button.value() == 0:
mensajes += 1
if mensajes > 3:
mensajes = 1
lcd.clear() # Borra la pantalla antes de mostrar el nuevo mensaje
led_rojo.value(1) # Enciende el led cuando se muestra un mensaje
if mensajes == 1:
#lcd.putsrt funcion del modulo pico_i2c_lcd para enviar informacion
lcd.putstr("Mensaje 1")
elif mensajes == 2:
lcd.putstr("Mensaje 2")
elif mensajes == 3:
lcd.putstr("Mensaje 3")
sleep(1) #tiempo en pantalla
lcd.clear() # borra el mensaje
led_rojo.value(0) #apaga el led cuando el mensaje desaparece
#evitar multiples detecciones del boton
sleep(0.5)