import max7219
from machine import Pin, SPI
import utime
# Configuración de la matriz LED
NUM_MATRICES = 4 # Número de matrices 8x8 conectadas en cadena (en este caso, solo una)
spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck = Pin(4), mosi = Pin(2)) # Configuración SPI
cs = Pin(15, Pin.OUT) # Pin Chip Select (CS), ajusta según tu conexión
# Inicializar la matriz LED
matriz = max7219.Matrix8x8(spi, cs, NUM_MATRICES)
def dibujar_corazon():
# Definir la forma del corazón usando una lista de filas, 1 es encendido y 0 es apagado
corazon = [
0b01100110, # 01100110
0b11111111, # 11111111
0b11111111, # 11111111
0b11111111, # 11111111
0b01111110, # 01111110
0b00111100, # 00111100
0b00011000, # 00011000
0b00000000, # 00000000
]
matriz.fill(0) # Limpiar la matriz antes de dibujar
for y in range(8):
fila = corazon[y]
for x in range(8):
if fila & (1 << (7 - x)): # Verificar si el bit en la posición x está encendido
matriz.pixel(x, y, 1) # Encender el LED en la posición (x, y)
else:
matriz.pixel(x, y, 0) # Apagar el LED en la posición (x, y)
matriz.show()
def latido(tasa):
# Calcular el intervalo entre latidos en segundos
intervalo = 60 / tasa
while True:
dibujar_corazon() # Mostrar el corazón
utime.sleep(0.5) # Mantener el corazón encendido brevemente
matriz.fill(0) # Apagar todos los LEDs
matriz.show()
utime.sleep(intervalo - 0.5) # Esperar el resto del intervalo
# Llamar a la función con la tasa de pulsación deseada
latido(60) # 60 latidos por minuto