import time
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
i2c = I2C(0, sda=Pin(4), scl=Pin(5), freq=400000)
WIDTH = 128
HEIGHT = 64
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)
# Función para dibujar un marco con líneas decorativas
def dibujar_marco():
# Marco exterior (borde completo)
oled.rect(0, 0, WIDTH, HEIGHT, 1) # Rectángulo en las esquinas
#MARCO DECORATIVO
oled.rect(0, 0, 128, 64, 1) # EXTERNO
oled.rect(10, 10, 108, 44, 1) # INTERNO
# 3. Pequeñas esquinas decorativas (opcional)
oled.line(0, 0, 5, 5, 1) # Esquina superior izquierda
oled.line(WIDTH, 0, WIDTH - 5, 5, 1) # Esquina superior derecha
oled.line(0, HEIGHT, 5, HEIGHT - 5, 1) # Esquina inferior izquierda
oled.line(WIDTH, HEIGHT, WIDTH - 5, HEIGHT - 5, 1) # Esquina inferior derecha
# Función para mostrar el contador centrado
def mostrar_contador(valor):
oled.fill(0) # Limpiar pantalla
# Dibujar marco y líneas
dibujar_marco()
# Formatear el contador (0000-9999)
texto = "{:04d}".format(valor)
# Calcular posición para centrar el texto
x = (WIDTH - len(texto) * 8) // 2
y = (HEIGHT - 8) // 2
# Mostrar el contador
oled.text(texto, x, y)
oled.show()
# Bucle principal
contador = 0
while True:
mostrar_contador(contador)
contador += 1
if contador >= 10000:
contador = 0
time.sleep(0.1) # Ajusta la velocidad