Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

¿Quieres aprender a conectar la pantalla de matriz de puntos LED MAX7219 a tu Arduino de forma rápida y sencilla? En este artículo te explicaremos paso a paso cómo realizar esta conexión para que puedas empezar a crear tus propios proyectos con luces LED de una manera fácil y divertida. ¡Sigue leyendo para descubrir todos los detalles!

Las pantallas matriciales son algo con lo que todos los entusiastas de Arduino se encuentran en algún momento. Estas pantallas son tan populares que casi todas las pantallas LED modernas para exteriores las utilizan para mostrar caracteres, símbolos e imágenes.

Cuando se trata de controlar pantallas matriciales, difícilmente existe una mejor opción que el MAX7219. Puede controlar fácilmente una única matriz de puntos y, para proyectos más grandes, se puede encadenar para controlar dos o más matrices de puntos.

Considerándolo todo, son muy divertidos y también muy útiles, así que comencemos.

Descripción general del módulo MAX7219

Hay varias placas de conexión MAX7219 disponibles, dos de las cuales son más populares: el módulo genérico y el módulo FC-16.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Un módulo MAX7219 típico incluye una pantalla de matriz de puntos de 8×8 y un controlador de pantalla LED MAX7219. Conozcamoslos.

La pantalla de matriz de puntos

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Una pantalla de matriz de puntos de 8×8 suele tener 16 pines, 8 para cada fila y 8 para cada columna. Todas las filas y columnas están conectadas entre sí para reducir la cantidad de pines. Si este no fuera el caso, una pantalla de matriz de puntos de 8×8 requeriría 65 pines, uno para cada LED y otro para una conexión de ánodo común o cátodo común. Al conectar filas y columnas, solo se necesitan 16 pines para controlar toda la matriz. Esta técnica de controlar una gran cantidad de LED con menos pines se llama Multiplexación.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Con esta técnica cada columna se activa por un tiempo muy corto y al mismo tiempo se encienden los LED de esta columna direccionando la fila correspondiente. Esto significa que no se encienden más de ocho LED al mismo tiempo. Las columnas cambian tan rápidamente (cientos o miles de veces por segundo) que el ojo humano percibe la pantalla como completamente iluminada.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Chip MAX7219

El único problema con la multiplexación es que hay que actualizar constantemente la pantalla para mantener la imagen estable.

Luego está el chip MAX7219, que hace todo el trabajo de control y actualización por usted. Todo lo que necesita hacer es enviarle comandos en serie a través de la interfaz SPI de 4 pines y él hará el resto.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Puede controlar completamente 64 LED individuales manteniendo su brillo constante. Una vez que el microcontrolador ha actualizado la pantalla, el MAX7219 se hace cargo de actualizar la pantalla a 800 Hz. Esto libera al microcontrolador para otras tareas importantes.

El MAX7219 cuenta con un modo de ahorro de energía que permite apagar la pantalla para ahorrar energía. Además, los LED se apagan durante el inicio, por lo que no verá ninguna pantalla extraña en los primeros segundos de funcionamiento.

El MAX7219 se comunica a través de la interfaz SPI y solo requiere 3 pines de datos para conectarse a un microcontrolador. Además, utilizando los mismos tres cables, podemos conectar en cadena varios módulos para obtener una pantalla más grande.

Establecer corriente y brillo máximos

El MAX7219 le permite ajustar el brillo de la pantalla mediante hardware o software (o ambos).

A nivel de hardware

La placa de conexión MAX7219 incluye una resistencia (RSet) para el ajuste de brillo a nivel de hardware.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Esta resistencia controla la corriente máxima suministrada a los LED y, por lo tanto, el brillo general de la pantalla.

La siguiente tabla muestra los valores de resistencia que debe usar según el voltaje y la corriente directa de su matriz de LED. Por ejemplo, un LED de 2 V y 20 mA requeriría una resistencia de 28 kΩ.

Rset frente a corriente del segmento y voltaje directo del LED
ISEG (mamá) vCONDUJO (V)
1.5 2.0 2.5 3.0 3.5
40 12.2 11.8 11.0 10.6 9.69
30 17.8 17.1 15.8 15.0 14.0
20 29,8 28.0 25,9 24,5 22.6
10 66,7 63,7 59.3 55,4 51.2

A nivel de software

Analizaremos el ajuste del brillo mediante software más adelante en este tutorial.

Configuración de pines del módulo MAX7219

Independientemente de la variante que elija, el módulo tiene dos conexiones.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Puerto de entrada

Los pines de separación en un extremo del módulo se utilizan para comunicarse con el microcontrolador.

VCC está conectado a 5V. Dado que la pantalla consume mucha energía (hasta 1 A con brillo máximo), es mejor utilizar una fuente de alimentación externa en lugar de la fuente de alimentación de 5 V del Arduino. Si desea utilizar el suministro de 5 V del Arduino, mantenga el brillo por debajo del 25 % para evitar el sobrecalentamiento del regulador de voltaje.

Tierra es el pin de tierra común.

RUIDO es el pin de datos. Conéctelo a cualquier pin digital del microcontrolador.

CS/CARGAR es Chip Select (a veces denominado LOAD). Conéctelo a cualquier pin digital del microcontrolador.

CLK significa Pin de Reloj. Conéctelo a cualquier pin digital del microcontrolador.

Puerto de salida

Los pines de separación en el otro extremo del módulo se utilizan para conectar en cadena pantallas.

VCC está conectado a 5V en el siguiente módulo.

Tierra se conecta a GND en el siguiente módulo.

DOUT es Data Out y está conectado al pin DIN del siguiente módulo.

CS/CARGAR se conecta a CS/LOAD en el siguiente módulo.

CLK se conecta a CLK en el siguiente módulo.

Cableado del módulo MAX7219 a Arduino UNO

Ahora que sabemos todo sobre el módulo, ¡podemos empezar a conectarlo a nuestro Arduino!

Comencemos con las conexiones de alimentación del módulo. Dado que la pantalla consume mucha energía, utilizamos una fuente de alimentación externa en lugar de la fuente de alimentación de 5 V de la placa Arduino. Si solo estás usando un único módulo MAX7219, puedes alimentarlo directamente desde Arduino, pero debes evitar hacerlo si es posible.

Conectemos los pines SPI. Tenga en cuenta que cada placa Arduino tiene un conjunto único de pines SPI que deben conectarse en consecuencia. En placas Arduino como UNO/Nano V3.0, estos pines son digitales 13 (SCK), 12 (MISO), 11 (MOSI) y 10 (SS).

Si estás utilizando otra placa Arduino, lee la documentación oficial. Posiciones de los pines SPI Antes de continuar.

Aquí está el cableado para el módulo MAX7219 genérico:

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Aquí está el cableado para el módulo FC-16 MAX7219:

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Si desea conectar en cadena varias pantallas para crear una pantalla más grande, conecte el DOUT de la primera pantalla al DIN de la siguiente pantalla. VCC, GND, CLK y CS se comparten entre las pantallas.

Una vez que su módulo esté conectado al Arduino, ¡es hora de escribir código!

Instalación de biblioteca

Controlar el módulo MAX7219 requiere mucho trabajo. Afortunadamente, la biblioteca MD Parola fue escrita para ocultar la complejidad del MAX7219 y permitirnos controlar la pantalla con comandos simples.

Para instalar la biblioteca, navegue hasta Bosquejo > Incluir biblioteca > Administrar bibliotecas… Espere a que el administrador de la biblioteca descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Filtra tu búsqueda escribiendo “max72xx'. Buscar MD_MAX72XX de Diseños majestuosos. Haga clic en esta entrada y luego seleccione «Instalar».

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

La biblioteca MD_MAX72XX es una biblioteca específica de hardware que maneja funciones de nivel inferior. Debe usarse junto con MD_Parola Biblioteca para crear varias animaciones de texto, como desplazamiento y efectos de texto de sprites. Instale esta biblioteca también.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Código de ejemplo 1 de Arduino: imprimir texto

Nuestro primer experimento es mostrar un texto simple sin animación.

Sin embargo, antes de cargar el boceto, debes cambiar las siguientes dos variables.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

La primera variable, HARDWARE_TYPEinforma al Arduino sobre la variante del módulo.

  • Establecer eso HARDWARE_TYPE A GENERIC_HWsi utiliza un módulo con una PCB verde y un IC MAX7219 con orificio pasante como el que se muestra a continuación.
    Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino
  • Establecer eso HARDWARE_TYPE A FC16_HWsi usa un módulo con una placa azul y un IC SMD MAX7219 como el que se muestra a continuación.
    Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

La segunda variable, MAX_DEVICES, indica la cantidad de circuitos integrados MAX7219 utilizados. Un solo IC MAX7219 cuenta como un dispositivo. Entonces, si desea controlar una pantalla de 8×32, configure MAX_DEVICES a 4 porque una pantalla de 8 × 32 tiene cuatro circuitos integrados MAX7219.

Cuando hayas terminado, prueba el boceto y luego lo repasaremos en detalle.

// Including the required Arduino libraries
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW

// Defining size, and output pins
#define MAX_DEVICES 4
#define CS_PIN 3

// Create a new instance of the MD_Parola class with hardware SPI connection
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

void setup() {
	// Intialize the object
	myDisplay.begin();

	// Set the intensity (brightness) of the display (0-15)
	myDisplay.setIntensity(0);

	// Clear the display
	myDisplay.displayClear();
}

void loop() {
	myDisplay.setTextAlignment(PA_LEFT);
	myDisplay.print("Left");
	delay(2000);
	
	myDisplay.setTextAlignment(PA_CENTER);
	myDisplay.print("Center");
	delay(2000);

	myDisplay.setTextAlignment(PA_RIGHT);
	myDisplay.print("Right");
	delay(2000);

	myDisplay.setTextAlignment(PA_CENTER);
	myDisplay.setInvert(true);
	myDisplay.print("Invert");
	delay(2000);

	myDisplay.setInvert(false);
	myDisplay.print(1234);
	delay(2000);
}

producción

Para ver el resultado, la pantalla debe estar orientada correctamente. Si está utilizando un módulo genérico, asegúrese de que el IC MAX7219 esté en la parte superior. Si está utilizando un módulo FC-16, asegúrese de que el lado DIN esté en el lado derecho.

Si todo va bien, verá el siguiente resultado.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Explicación del código

El primer paso es incluir todas las bibliotecas Arduino necesarias. Como ya se mencionó, la biblioteca MD_MAX72XX implementa las funciones específicas del hardware de la matriz LED, mientras que la biblioteca MD_Parola implementa el efecto de texto. También debe incluir la biblioteca SPI que se utiliza para comunicarse con la pantalla a través de SPI.

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

A continuación debemos especificar qué hardware se está utilizando. Dado que estamos utilizando un módulo FC-16 para nuestros experimentos, es decir HARDWARE_TYPE se establece en FC16_HW. Entonces usamos 4 IC MAX7219 MAX_DEVICES se establece en 4. Finalmente se define el pin al que se conecta el pin CS del display.

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 3

La función MD_Parola() Luego se usa para crear una nueva instancia de la clase MD_Parola. El primer parámetro es el tipo de hardware, el segundo es el pin CS y el tercero es la cantidad de circuitos integrados MAX7219 utilizados.

MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

En la sección de configuración del código, primero usamos la función begin() para inicializar el objeto. La función se puede utilizar para ajustar el brillo de la pantalla. setIntensity(), que acepta valores desde 0 (mínimo brillo) hasta 15 (brillo máximo). El anuncio también será eliminado. displayClear() Función.

void setup() {
  myDisplay.begin();
  myDisplay.setIntensity(0);
  myDisplay.displayClear();
}

En la sección de bucle del código, primero configuramos la alineación del texto que se imprimirá usando la función setTextAlignment()a que los valores PA_LEFT, PA_CENTERY PA_RIGHT Se puede pasar para alinear el texto a la izquierda, al centro o a la derecha.

Luego se imprime la cadena de caracteres “Izquierda” myDisplay.print("Left"). Tenga en cuenta que la cadena de texto debe estar entre comillas. " ". No se requieren comillas al imprimir números; Por ejemplo, para mostrar 1234, escriba myDisplay.print(1234). También puedes usar eso setInvert() Función para invertir la visualización.

void loop() {
	myDisplay.setTextAlignment(PA_LEFT);
	myDisplay.print("Left");
	delay(2000);
	
	myDisplay.setTextAlignment(PA_CENTER);
	myDisplay.print("Center");
	delay(2000);

	myDisplay.setTextAlignment(PA_RIGHT);
	myDisplay.print("Right");
	delay(2000);

	myDisplay.setTextAlignment(PA_CENTER);
	myDisplay.setInvert(true);
	myDisplay.print("Invert");
	delay(2000);

	myDisplay.setInvert(false);
	myDisplay.print(1234);
	delay(2000);
}

Código de muestra 2 de Arduino: texto desplazable

Si desea imprimir un mensaje en una pantalla de matriz de puntos, a menudo encontrará que la pantalla es demasiado pequeña para acomodar el mensaje completo. La solución es el efecto de texto de desplazamiento.

El siguiente ejemplo muestra cómo desplazarse por un mensaje.

// Including the required Arduino libraries
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW

// Defining size, and output pins
#define MAX_DEVICES 4
#define CS_PIN 3

// Create a new instance of the MD_Parola class with hardware SPI connection
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

void setup() {
	// Intialize the object
	myDisplay.begin();

	// Set the intensity (brightness) of the display (0-15)
	myDisplay.setIntensity(0);

	// Clear the display
	myDisplay.displayClear();

	myDisplay.displayScroll("Hello", PA_CENTER, PA_SCROLL_LEFT, 100);
}

void loop() {
	if (myDisplay.displayAnimate()) {
		myDisplay.displayReset();
	}
}

Si todo va bien, verá el siguiente resultado.

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Explicación del código

Notarás que desde el principio del código hasta el final de la sección de configuración, todo es consistente con el ejemplo anterior. La única diferencia es que el displayScroll() La función se llama al final de la sección de configuración.

myDisplay.displayScroll("Hello", PA_CENTER, PA_SCROLL_LEFT, 100);

Como puede ver, esta función toma cuatro argumentos: displayScroll(pText, alinear, textEffect, velocidad)

  • pText – es la cadena de texto. Tu mensaje va aquí.
  • align – Establece la alineación del texto durante la pausa opcional. Puede utilizar las mismas opciones de alineación que en el ejemplo anterior, como por ejemplo: Por ejemplo, PA_CENTER, PA_LEFT o PA_RIGHT.
  • textEffect – establece los efectos de desplazamiento. Configurarlo en PA_SCROLL_LEFT desplazará el texto hacia la izquierda.
  • speed ​​- determina la velocidad de la animación. La velocidad es el tiempo en milisegundos entre fotogramas de animación. Un tiempo corto conduce a una animación más rápida.

Solo se utilizan dos funciones para desplazar el texto en la sección de bucle. primero en uno if declaración utilizamos la función displayAnimate(). Esta función desplaza el texto y devuelve verdadero cuando termina. Cuando finaliza el desplazamiento, utilizamos la función. displayReset() para restablecer la pantalla, lo que resulta en un desplazamiento continuo.

void loop() {
	if (myDisplay.displayAnimate()) {
		myDisplay.displayReset();
	}
}

Para más efectos de texto, consulte Referencia de la biblioteca MD_Parola en Github.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino

Las pantallas de matriz de puntos son algo con lo que todos los entusiastas de Arduino se encuentran en algún momento. Estas pantallas son tan populares que casi todas las pantallas LED exteriores modernas las utilizan para mostrar caracteres, símbolos e imágenes.

Cuando se trata de controlar pantallas de matriz de puntos, prácticamente no hay una mejor opción que el MAX7219. Puede controlar fácilmente una sola matriz de puntos y, para proyectos más grandes, se pueden encadenar entre sí para controlar dos o más matrices de puntos.
En general, son muy divertidas y bastante útiles, ¡así que comencemos!

Overview del Módulo MAX7219

Existen varios módulos de breakout MAX7219 disponibles, dos de los cuales son más populares: el módulo genérico y el módulo FC-16.

Un módulo típico MAX7219 incluye una pantalla de matriz de puntos de 8×8 y un controlador de pantalla LED MAX7219. Familiaricémonos con ellos.

La pantalla de matriz de puntos

Una pantalla de matriz de puntos de 8×8 típicamente tiene 16 pines, 8 para cada fila y 8 para cada columna. Todas las filas y columnas están conectadas entre sí para reducir la cantidad de pines. Si esto no fuera así, una pantalla de matriz de puntos de 8×8 requeriría 65 pines, uno para cada LED y uno para un conector de cátodo común o ánodo común. Al conectar filas y columnas, solo se necesitan 16 pines para controlar toda la matriz. Esta técnica de controlar un gran número de LEDs con menos pines se llama Multiplexión.

En esta técnica, cada columna se activa durante un tiempo muy corto, y al mismo tiempo, los LEDs en esa columna se encienden al dirigirse a la fila correspondiente. Como resultado, no se iluminan más de ocho LEDs al mismo tiempo. Las columnas se cambian tan rápido (cientos o miles de veces por segundo) que el ojo humano percibe la pantalla como totalmente iluminada.

Chip MAX7219

El único problema con la multiplexión es que hay que actualizar la pantalla todo el tiempo para mantener la imagen estable.
Entra en juego el Chip MAX7219, que se encarga de todo el control y la actualización por ti. Todo lo que debes hacer es enviarle comandos seriales a través de la interfaz SPI de 4 pines, y él se encargará del resto.

Puede controlar por completo 64 LEDs individuales manteniendo su brillo constante. Una vez que el microcontrolador ha actualizado la pantalla, el MAX7219 se encarga de la tarea de refrescar la pantalla a 800 Hz. Esto libera al microcontrolador para hacer otras cosas importantes.

El MAX7219 tiene un modo de ahorro de energía en el que la pantalla se puede apagar para ahorrar energía. También apaga los LEDs durante el arranque, evitando pantallas extrañas durante los primeros segundos de operación.

El MAX7219 se comunica a través de la interfaz SPI, por lo que solo necesita 3 pines de datos para conectarse a un microcontrolador. Además, se pueden encadenar múltiples módulos juntos para una pantalla más grande utilizando los mismos 3 cables.

Ajuste del Corriente Máximo y Brillo

El MAX7219 te permite ajustar el brillo de la pantalla utilizando tanto hardware como software (o ambos).

A Nivel de Hardware

La placa de breakout MAX7219 incluye una resistencia (RSet) para ajustar el brillo a nivel de hardware.

Esta resistencia controla la corriente máxima suministrada a los LEDs y, por lo tanto, el brillo general de la pantalla.

La tabla a continuación muestra los valores de resistencia que debes usar en función del voltaje y la corriente directa de tu matriz de LED. Por ejemplo, un LED de 2V y 20 mA requeriría una resistencia de 28kΩ.

Rset vs. Corriente del Segmento y Voltaje Directo del LED
ISEG (mA) VLED (V) 28kΩ
5 2.0 40
40 12.2 30
17.8 17.8 29.8
6.76 6.7 10.6
6.04 5.9 3.5

A Nivel de Software

Más adelante en este tutorial, discutiremos cómo ajustar el brillo utilizando software.

Esquema de Pines del Módulo MAX7219

Independientemente de la variante que elijas, el módulo tendrá dos conectores.

Conector de Entrada

Los pines de breakout en un extremo del módulo se utilizan para comunicarse con el microcontrolador.

  • VCC se conecta a 5V. Debido a que la pantalla consume mucha corriente (hasta 1A a brillo máximo), es mejor utilizar una fuente de alimentación externa en lugar de la alimentación de 5V de Arduino. Si deseas utilizar la alimentación de 5V de Arduino, mantén el brillo por debajo del 25% para evitar el sobrecalentamiento del regulador de voltaje.
  • GND es el pin de tierra común.
  • DIN es el pin de Datos. Conéctalo a cualquier pin digital del microcontrolador.
  • CS/LOAD es el Chip Select (a veces etiquetado como LOAD). Conéctalo a cualquier pin digital del microcontrolador.
  • CLK es el pin de Reloj. Conéctalo a cualquier pin digital del microcontrolador.

Conector de Salida

Los pines de breakout en el otro extremo del módulo se utilizan para encadenar pantallas.

  • VCC se conecta a 5V en el siguiente módulo.
  • GND se conecta a GND en el siguiente módulo.
  • DOUT es Data Out y se conecta al pin DIN del siguiente módulo.
  • CS/LOAD se conecta a CS / LOAD en el siguiente módulo.
  • CLK se conecta a CLK en el siguiente módulo.

Cableado del Módulo MAX7219 con Arduino UNO

Ahora que conocemos todo sobre el módulo, ¡podemos comenzar a conectarlo a nuestro Arduino!

Comencemos con las conexiones de alimentación del módulo. Debido a que la pantalla consume mucha corriente, utilizaremos una fuente de alimentación externa en lugar de la alimentación de 5V de la placa Arduino. Si solo estás utilizando un módulo MAX7219, puedes alimentarlo directamente desde Arduino, pero debes evitar hacerlo si es posible.

A continuación, conectamos los pines SPI. Ten en cuenta que cada placa Arduino tiene un conjunto único de pines SPI que deben conectarse correctamente. Para placas Arduino como UNO/Nano V3.0, estos pines son digitales 13 (SCK), 12 (MISO), 11 (MOSI) y 10 (SS).

Si estás utilizando una placa Arduino diferente, verifica la documentación oficial sobre las ubicaciones de los pines SPI antes de continuar.

Aquí está el cableado para el Módulo MAX7219 Genérico:

Aquí está el cableado para el Módulo MAX7219 FC-16:

Si deseas encadenar múltiples pantallas para hacer una pantalla más grande, conecta el DOUT de la primera pantalla al DIN de la siguiente pantalla. VCC, GND, CLK y CS se compartirán entre las pantallas.

Una vez que el módulo esté conectado a Arduino, ¡es hora de escribir algo de código!

Instalación de la Biblioteca

Controlar el módulo MAX7219 es mucho trabajo. Afortunadamente, se escribió la biblioteca MD Parola para ocultar las complejidades del MAX7219, lo que nos permite controlar la pantalla con comandos simples.

Para instalar la biblioteca, ve a Sketch > Include Library > Manage Libraries… Espera a que el Administrador de bibliotecas descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.

Filtra tu búsqueda ingresando ‘max72xx’. Busca MD_MAX72XX de MajicDesigns. Haz clic en esa entrada y luego elige Instalar.

La biblioteca MD_MAX72XX es una biblioteca específica del hardware que maneja las funciones de bajo nivel. Debe usarse en conjunto con la biblioteca MD_Parola para crear una variedad de animaciones de texto como desplazamiento y efectos de texto de sprite. Instala esta biblioteca también.

Código de Ejemplo de Arduino 1 – Impresión de Texto

Nuestro primer experimento implica mostrar un texto simple sin ninguna animación. Pero, antes de subir el sketch, debes modificar las siguientes dos variables.

La primera variable, HARDWARE_TYPE, informa al Arduino sobre la variante del módulo.

Establece HARDWARE_TYPE en GENERIC_HW, si estás utilizando un módulo con una PCB verde y un MAX7219 de montaje superficial como se muestra a continuación. Establece HARDWARE_TYPE en FC16_HW, si estás utilizando un módulo con una PCB azul y un MAX7219 de montaje superficial como se muestra a continuación.

La segunda variable, MAX_DEVICES, especifica la cantidad de IC MAX7219 que se están utilizando. Un solo IC MAX7219 cuenta como un dispositivo, por lo que si quieres controlar una pantalla de 8×32, establece MAX_DEVICES en 4 porque una pantalla de 8×32 tiene cuatro IC MAX7219.

Cuando hayas terminado, prueba el sketch y luego lo analizaremos en detalle.

  1. Incluyendo las bibliotecas de Arduino necesarias
  2. Definiendo tamaño y pines de salida
  3. Creando una nueva instancia de la clase MD_Parola con conexión SPI de hardware
  4. Configuración inicial y bucle principal

Ejemplo de Código:

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW

#define MAX_DEVICES 4
#define CS_PIN 3

MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

void setup() {
  myDisplay.begin();
  myDisplay.setIntensity(0);
  myDisplay.displayClear();
}

void loop() {
  myDisplay.setTextAlignment(PA_LEFT);
  myDisplay.print("Left");
  delay(2000);

  myDisplay.setTextAlignment(PA_CENTER);
  myDisplay.print("Center");
  delay(2000);

  myDisplay.setTextAlignment(PA_RIGHT);
  myDisplay.print("Right");
  delay(2000);

  myDisplay.setTextAlignment(PA_CENTER);
  myDisplay.setInvert(true);
  myDisplay.print("Invert");
  delay(2000);

  myDisplay.setInvert(false);
  myDisplay.print(1234);
  delay(2000);
}

Para ver la salida, la pantalla debe estar orientada adecuadamente. Si estás utilizando un módulo genérico, asegúrate de que el MAX7219 IC esté en la parte superior. Si estás utilizando un módulo FC-16, asegúrate de que el lado DIN esté en el lado derecho. Si todo va bien, verás la siguiente salida.

Para más información sobre los efectos de texto, consulta la Referencia de la Biblioteca MD_Parola en github.

Código de Ejemplo de Arduino 2 – Desplazamiento de Texto

Cuando deseas imprimir un mensaje en una pantalla de matriz de puntos, a menudo descubrirás que la pantalla es demasiado pequeña para caber el mensaje completo. La solución es el efecto de desplazamiento de texto.

Ejemplo de Código:

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW

#define MAX_DEVICES 4
#define CS_PIN 3

MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

void setup() {
  myDisplay.begin();
  myDisplay.setIntensity(0);
  myDisplay.displayClear();
  myDisplay.displayScroll("Hello", PA_CENTER, PA_SCROLL_LEFT, 100);
}

void loop() {
  if (myDisplay.displayAnimate()) {
    myDisplay.displayReset();
  }
}

Si todo va bien, verás la siguiente salida.

Finalmente, para más efectos de texto, visita la Referencia de la Biblioteca MD_Parola en github.

4 comentarios en «Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino»

  1. ¡Gracias por compartir este tutorial! Me ha sido de gran ayuda para aprender a conectar la pantalla de matriz de puntos LED MAX7219 a mi Arduino. ¡Ahora puedo comenzar a experimentar con nuevos proyectos de iluminación! ¡Genial!

Deja un comentario