Matriz LED MAX7219 con Arduino

Para controlar la matriz de puntos con MAX7219 usando Arduino y mostrar diferentes patrones/caracteres en la matriz de puntos

En este tutorial, aprenderemos a conectar la pantalla de matriz de puntos LED MAX7219 con Arduino. Lo familiarizaremos con la pantalla de matriz de puntos MAX7219 y programaremos Arduino para mostrar varias demostraciones de visualización de textos y símbolos.

Introducción

Analizaremos la introducción y el pinout del módulo de pantalla de matriz de puntos LED MAX7219. Es una matriz de LED que se utiliza para mostrar varios tipos de textos y símbolos en forma de puntos que consta de LED. Las matrices de puntos LED están disponibles en múltiples dimensiones. El chip MAX7219 facilita el control de la matriz de puntos. El módulo MAX7219 tiene 5 pines. un lado tiene las conexiones de entrada y el otro lado tiene las conexiones de salida A continuación puede ver el pinout del módulo Max7219. Puede controlar más de una matriz a la vez. Para eso, solo necesita conectarlos entre sí, ya que tienen pines en ambos lados para extender la matriz de puntos.

Módulo de matriz LED MAX7219

Circuito Interno

La matriz de 8×8 tiene 64 LEDs, 8 para cada fila y columna. Cada LED está direccionado por su número de fila y columna. Cada LED se refiere a un punto. Para hacer una matriz de puntos de 8 × 8, todos los terminales de ánodo se conectan en filas de R1 a R8, y los cátodos se conectan en columnas de C1 a C8. Conectar todas las filas y columnas juntas es guardar la cantidad requerida de pines para controlar cada punto LED. De lo contrario, necesitaremos 64 pines para controlar una matriz LED de 8×8. Este método de controlar una gran cantidad de LED con pocos pines se conoce como multiplexación. Para reducir esta complejidad, está disponible el IC MAX7219 que tiene 24 pines. Al final, tienes 5 pines para conectar al Arduino o cualquier otro microcontrolador.

Matriz LED 8×8

El chip MAX7219 se comunicará mediante el protocolo SPI. Entonces, debe enviar solicitudes a través de la interfaz de 5 hilos y, a través de esto, puede controlar cada LED en la matriz de puntos.

Lo que necesitamos

Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

Consulta precios de hardware en los siguientes enlaces:

Procedimiento paso a paso

Diagrama de cableado de MAX7219 con Arduino

  • VCC: este pin suministra energía al módulo MAX7219. Se conecta con el pin de 5V del Arduino.
  • GND: este es el pin de tierra que debe asociarse con el pin de tierra de Arduino.
  • DIN: Este es el pin data_in. Usamos esto como la entrada SPI al módulo. En nuestro caso lo conectamos con el pin 10 del Arduino.
  • CS: Este es el pin Chip Select para la comunicación SPI. En nuestro caso lo conectamos con el pin 11 del Arduino.
  • CLK: Este es el pin ‘Reloj en serie’ para la salida del reloj en serie SPI. En nuestro caso lo conectamos con el pin 13 del Arduino.

A la hora de conectar una serie de módulos MAX72xx separados, utilizaremos la DOUT del primer módulo conectada a la DIN del anterior. Siga el cableado de la siguiente imagen, de acuerdo con Arduino Uno Pinout:

Diagrama de cableado de Arduino Uno con módulo MAX7219

Obtenga la biblioteca Max7219_code y MAX7219

Conecte su PC a Arduino y abra Arduino IDE. Para los primeros pasos, puede consultar el tutorial Conexión de PC con Windows con Arduino. Puede obtener el código .ino y las bibliotecas desde mi área de descarga con el siguiente enlace:

También necesita instalar la siguiente biblioteca, de acuerdo con mi tutorial Instalar bibliotecas de Arduino: métodos para agregar bibliotecas con el IDE de Arduino. Obtenga el archivo .zip del siguiente enlace o agréguelo de las bibliotecas disponibles en su IDE de Arduino.

Adición de la biblioteca Max7219 por parte del administrador de la biblioteca

Código Explicación

Sección 1: Antes de la instalación

Esta es la sección antes de la configuración que se usa para definir variables de globo y adiciones de bibliotecas. MaxMatrix.h es la biblioteca para el módulo de matriz de puntos Max7219. A través de esta biblioteca, podemos mostrar diferentes personajes y animaciones en la matriz de puntos. Aquí hemos definido los códigos binarios para los diferentes caracteres y formas. Al igual que Sq mostrará cuadrados, Tr es para triángulos, A para mostrar A y así sucesivamente. Nota: puede obtener códigos binarios para su pantalla personalizada a través de esta calculadora.

#include <MaxMatrix.h> int DIN = 10;   // DIN pin of MAX7219 module int CS = 11;    // CS pin of MAX7219 module int CLK = 13;   // CLK pin of MAX7219 module int maxInUse = 1; MaxMatrix m(DIN, CS, CLK, maxInUse);  char Sq[] = {8, 8,B11111111,B10000001,B10000001,B10000001,B10000001,B10000001,B10000001,B11111111}; char Tr[] = {8, 8,B00000001,B00000011,B00000101,B00001001,B00010001,B00100001,B01000001,B11111111}; char A[] = {8, 8,B00111000,B01000100,B01000100,B01000100,B01111100,B01000100,B01000100,B01000100}; char B[] = {8, 8,B01111000,B01000100,B01000100,B01111000,B01000100,B01000100,B01111000,B00000000}; char c[] = {8, 8,B00000000,B00111100,B01000000,B01000000,B01000000,B01000000,B00111100,B00000000};  char d[] = {8, 8,B00000000,B01111000,B01000100,B01000100,B01000100,B01000100,B01111000,B00000000}; char e[] = {8, 8,B00000000,B01111100,B01000000,B01000000,B01111100,B01000000,B01000000,B01111100}; char f[] = {8, 8,B00000000,B01111100,B01000000,B01000000,B01111100,B01000000,B01000000,B01000000};

Sección 2: Sección de configuración

El monitor serie se inicializa a una velocidad de 9600 baudios. m.init() es para la inicialización de Max7219. Y m.setIntensity() se usa para el nivel de intensidad de la matriz de puntos. Para la intensidad, puede utilizar valores entre 0 y 15.

void setup() {   Serial.begin(9600);   m.init(); // MAX7219 initialization   m.setIntensity(5); // initial led matrix intensity, 0-15 }

Sección 3: Bucle

En esta sección, se realiza una rutina continua, m.clear() limpia la pantalla de matriz de puntos. m.writeSprite (0,0, Sq) este uso para mostrar el retraso cuadrado (1000) se usa para un retraso de un segundo. m.writeSprite(0,0,Tr) se usa para mostrar el Triángulo. m.writeSprite(0,0,A) se usa para mostrar el carácter A y así sucesivamente.

void loop()  {     m.clear();   m.writeSprite(0, 0, Sq);   delay(1000);   m.writeSprite(0, 0, Tr);   delay(1000);   m.writeSprite(0, 0, A);   delay(1000);   m.writeSprite(0, 0, B);   delay(1000);   m.writeSprite(0, 0, c);   delay(1000);   m.writeSprite(0, 0, d);   delay(1000);   m.writeSprite(0, 0, e);   delay(1000);   m.writeSprite(0, 0, f);   delay(1000);   }

Resultados

En la matriz, con cada segundo de retraso, el cuadrado se muestra al principio. luego un triángulo, después de eso se muestran los alfabetos A, B, c, d, e y f. Esto se muestra continuamente en Matrix con un retraso de un segundo. Está m.clear(), que se usa para borrar la pantalla que viene con toda la secuencia terminada.

Pantalla MAX7219