# ♡ ∩_∩
# („• ֊ •„)♡
# | ̄U U ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
# | • Lenguajes de Interfaz en TECNM Campus ITT |
# | • Autor: Alejandro Suarez Sandoval |
# | • Fecha: 2025/05/21 |
# | • Descripción: Programa en micropython que muestra los numeros del 1 al 100 |
# | en un LCD I2C con Raspberry Pi Pico. |
# | • Link simulación en Wokwi: https://wokwi.com/projects/376276878140728321 |
#  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
#
# ⠂⠄⠄⠂⠁⠁⠂⠄⠄⠂⠁⠁⠂⠄⠄⠂ ⠂⠄⠄⠂☆
# ═════════•°• Código en lenguaje MicroPython Raspberry Pi Pico•°•═══════
from machine import I2C, Pin
from time import sleep
from pico_i2c_lcd import I2cLcd
# Crea un objeto I2C en el bus 0, usando los pines GP0 para SDA y GP1 para SCL, con velocidad de 400 kHz
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
# Escanea dispositivos I2C conectados y guarda la dirección del primero encontrado
I2C_ADDR = i2c.scan()[0]
# Crea el objeto lcd, indicando el bus I2C, la dirección del dispositivo, y que es una pantalla de 4 filas por 20 columnas
lcd = I2cLcd(i2c, I2C_ADDR, 4, 20)
i = 0 # Contador inicializado en 0
# Bucle principal
while True:
# Escribe el número actual en la pantalla, y rellena con espacios para evitar que queden dígitos viejos
lcd.putstr(str(i) + " " * len(str(i)))
# sleep(1) # Puedes descomentar esto si quieres que se vea más lento el conteo
i = i + 1 # Incrementa el contador
# Cada 20 números, limpia la pantalla para evitar que se llene
if i % 20 == 0:
lcd.clear()
# Detiene el bucle cuando llega a 100
if i >= 100:
break