from machine import Pin, SPI
import max7219
import time
# --- Configuración SPI y matriz ---
spi = SPI(1, baudrate=10000000, polarity=0, phase=0,
sck=Pin(18), mosi=Pin(23), miso=Pin(19))
cs = Pin(5, Pin.OUT)
matriz = max7219.Matrix8x8(spi, cs, 1)
matriz.fill(0)
matriz.show()
# --- Función para dibujar ambas diagonales con desplazamiento horizontal ---
def dibujar_diagonales(offset):
matriz.fill(0)
for i in range(8):
x = (i + offset) % 8 # desplazamiento horizontal
y = i
# Diagonal normal (i, i)
matriz.pixel(x, y, 1)
# Diagonal invertida (i, 7 - i)
matriz.pixel((i + offset) % 8, 7 - i, 1)
matriz.show()
# -------------------------
# ANIMACIÓN PRINCIPAL
# -------------------------
while True:
# -----------------------------
# IDA: mover diagonales a la derecha (offset 0 → 7)
# -----------------------------
for offset in range(0, 8):
dibujar_diagonales(offset)
time.sleep(0.2)
time.sleep(0.4)
# -----------------------------
# VUELTA: mover diagonales a la izquierda (offset 7 → 0)
# -----------------------------
for offset in range(7, -1, -1):
dibujar_diagonales(offset)
time.sleep(0.2)
time.sleep(0.4)