# Importa dos funciones del módulo 'time':
# sleep_ms para pausar en milisegundos y ticks_ms para obtener el tiempo actual en milisegundos
from time import sleep_ms, ticks_ms
# Importa las clases I2C y Pin del módulo machine para controlar los pines y el bus I2C
from machine import I2C, Pin
# Importa la clase I2cLcd desde un archivo o librería llamada 'i2c_lcd' que permite manejar pantallas LCD por I2C
from i2c_lcd import I2cLcd
# Define la dirección del LCD en el bus I2C (0x27 es la dirección más común)
AddressOfLcd = 0x27
# Configura la comunicación I2C:
# scl (reloj) en GPIO 22, sda (datos) en GPIO 21, y una frecuencia de 400kHz
i2c = I2C(scl=Pin(21), sda=Pin(22), freq=400000)
# Crea un objeto lcd usando la clase I2cLcd con:
# el bus I2C configurado, la dirección del LCD, 2 filas y 16 columnas
lcd = I2cLcd(i2c, AddressOfLcd, 2, 16)
# Define una función llamada testLcd que recibe un número como argumento
def testLcd(num):
# Mueve el cursor a la posición columna 3, fila 0 (segunda posición de la primera fila)
lcd.move_to(3,0)
# Escribe el texto "Micropython" en esa posición
lcd.putstr('Micropython')
# Mueve el cursor al inicio de la segunda fila (columna 0, fila 1)
lcd.move_to(0,1)
# Escribe "hello" seguido del número recibido como argumento (convertido a texto)
lcd.putstr("hello " + str(num))
# a línea if __name__ == '__main__': es una estructura de control en
# Python que se usa para determinar si un archivo está siendo ejecutado
# directamente o si está siendo importado como módulo en otro archivo.
if __name__ == '__main__':
# Ejecuta la función testLcd 100 veces, pasando valores del 0 al 99
for i in range(100):
testLcd(i) # Llama a la función para mostrar el texto en el LCD
sleep_ms(200) # Espera 200 milisegundos antes de actualizar