En este tutorial vas a aprender a conectar un controlador MAX7219 para desplazar texto a través de una matriz de puntos. Gracias a que estos módulos usan el chip controlador de LED MAX7219, vas a poder prender y apagar los 64 LEDs de cada módulo usando solamente 3 pines de tu placa UNO.
Vista general
El objetivo es manejar una matriz LED de 8x8 mediante una interfaz serie. Como el chip MAX7219 se encarga de la multiplexación, el trabajo del microcontrolador se simplifica muchísimo, permitiendo un control total con muy pocos cables.
Componentes necesarios
(1) x Elegoo Uno R3
(1) x Módulo Max7219
(5) x Cables puente M-M (Macho a Macho)
Introducción al componente
Este proyecto consiste en un Arduino conectado por interfaz serie a un MAX7219 que opera una matriz LED de 8x8. El integrado MAX7219 es un controlador de pantalla de cátodo común con entrada/salida serie que sirve de interfaz entre microprocesadores y pantallas LED numéricas de 7 segmentos (hasta 8 dígitos), barras gráficas o 64 LEDs individuales.
Para mayor comodidad, acá usamos una matriz LED de 8x8 integrada con un chip MAX7219 en un módulo ya precableado. Las especificaciones típicas de este módulo son:
Voltaje de operación: DC 4.7V ‒ 5.3V
Voltaje típico: 5V
Corriente de operación: 320mA
Corriente de operación máxima: 2A
Esquema de conexión y diagrama de cableado
Seguí las indicaciones de los pines para asegurar el correcto funcionamiento. Conectá el pin 12 al DataIn, el pin 11 al LOAD(CS) y el pin 10 al CLK del módulo.
Código
Podés hacer clic en el enlace de texto azul para descargar el programa a tu dispositivo y, una vez terminada la descarga, hacé doble clic en el archivo para abrirlo. Fijate bien: antes de abrir el archivo, asegurate de tener instalado el IDE de Arduino y los soportes de placa necesarios para el UNO R3. Si tenés dudas sobre este proceso, mirá la sección "part 1" de la documentación para una guía detallada.
📥 DOWNLOAD led_matrix.ino
Este código muestra cómo usar la librería LedControl para manejar la matriz. Vas a ver la palabra "Arduino" y varios efectos de animación en la pantalla. Podés abrir el Monitor Serie para ver detalles adicionales, tal como se explica en el tutorial 4 de la parte 2.
#include "LedControl.h" // Definimos los pines y el objeto lc LedControl lc=LedControl(12,10,11,1); unsigned long delaytime1=500; unsigned long delaytime2=50;
Inclusiones y definiciones:
#include "LedControl.h": Incluye la librería necesaria para el control del MAX7219.
LedControl lc=LedControl(12,10,11,1);: Crea el objeto con los pines (DataIn, CLK, LOAD, cantidad de dispositivos).
delaytime1: Tiempo de espera para el cambio de imágenes (500ms).
delaytime2: Tiempo de espera para los efectos de animación (50ms).
Función Setup:
lc.shutdown(0,false);: Despierta al chip del modo de ahorro de energía.
lc.setIntensity(0,8);: Ajusta el brillo a un valor medio (rango de 0 a 15).
lc.clearDisplay(0);: Limpia la pantalla al iniciar.
Función writeArduinoOnMatrix():
Esta función define arreglos de bytes para cada letra de la palabra "Arduino". Luego, muestra cada carácter en la matriz uno tras otro con un pequeño retraso y finalmente limpia la pantalla.
Función rows():
Esta función prende algunos LEDs en una fila y repite el patrón en cada fila. El patrón parpadea según el número de la fila (por ejemplo, la fila 4 parpadeará 4 veces).
Solución de problemas
Si la matriz no enciende, revisá que los cables estén bien ajustados y que los pines coincidan con los definidos en el código. También asegurate de que la alimentación sea la adecuada, ya que una matriz completa consumiendo corriente máxima puede requerir una fuente estable.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.