Arduino - Matriz de LEDs

La pantalla de matriz LED, también conocida como pantalla LED o pantalla de matriz de puntos, es ampliamente utilizada. En este tutorial, vamos a aprender:

Después de eso, puedes adaptar fácilmente el código para otras matrices LED, como la matriz LED de 16x8, la matriz LED de 64x8 ...

Acerca de la matriz LED

pantalla de matriz de LEDs

Existen muchos tipos de matrices LED. Con Arduino, la matriz LED basada en MAX7219 es muy utilizada. La matriz LED basada en MAX7219 tiene las siguientes características:

  • Una unidad base de una matriz de LEDs es un bloque.
  • Cada bloque tiene una matriz de LEDs de 8x8 (64 LEDs) y un controlador MAX7219.
  • Hay dos formas populares de bloques: el módulo genérico y el módulo FC-16.
  • Una matriz de LEDs puede estar formada por un solo bloque o por varios bloques conectados en cascada.
  • Puedes comprar una matriz LED de varios bloques ya ensamblada (p. ej. 4-en-1, 8-en-1).
  • También puedes comprar varios bloques y conectarlos para formar una matriz de LEDs del tamaño deseado.
  • Declararás el tamaño de la matriz de LEDs que uses en el código de Arduino.

Esquema de pines

Pinout de la matriz LED

Una matriz de LEDs está formada por un solo bloque o varios bloques. Cada bloque incluye dos grupos de pines:

  • Grupo de pines de entrada:
    • VCC: conectado a 5V.
    • GND: conectado a GND.
    • DIN es el pin de datos, Conéctalo al pin MOSI SPI del Arduino.
    • CS: Selección de chip, Conéctalo a cualquier pin digital del Arduino.
    • CLK: Pin de reloj, Conéctalo al pin CLK de SPI del Arduino.
  • Grupo de pines de salida:
    • VCC: se conecta a VCC en el siguiente módulo.
    • GND: se conecta a GND en el siguiente módulo.
    • DOUT: Salida de datos, se conecta al pin DIN del siguiente módulo.
    • CS: se conecta al CS en el siguiente módulo.
    • CLK: se conecta al CLK en el siguiente módulo.

Diagrama de Cableado

Si la matriz de LED está hecha de un solo bloque:

  • Conecta los grupos de pines de entrada al Arduino
  • Deja el grupo de pines de salida sin conectar
Diagrama de cableado de la matriz LED 8x8 FC-16 para Arduino

This image is created using Fritzing. Click to enlarge image

Diagrama de cableado genérico de la matriz LED 8x8 de Arduino

This image is created using Fritzing. Click to enlarge image

Si la matriz de LEDs ya está ensamblada en varios bloques:

  • Conecta los grupos de pines de entrada al Arduino
  • Deja el grupo de pines de salida sin conectar
Diagrama de cableado de la matriz de LEDs para Arduino

This image is created using Fritzing. Click to enlarge image

Si la matriz LED está formada por varios bloques por tu cuenta:

  • Conecta los grupos de pines de entrada del primer bloque al Arduino.
  • Conecta los grupos de pines de salida de cada bloque a los grupos de pines de entrada del siguiente bloque.
  • Deja el grupo de pines de salida del último bloque sin conectar.
Diagrama de cableado de la matriz LED 32x8 para Arduino FC-16

This image is created using Fritzing. Click to enlarge image

Diagrama genérico de cableado de la matriz LED 32x8 para Arduino

This image is created using Fritzing. Click to enlarge image

Debido a que la pantalla consume mucha corriente (hasta 1 A a pleno brillo):

  • No uses la alimentación del pin de 5V de Arduino.
  • Utiliza una fuente de alimentación externa de 5V en su lugar. Arduino y la matriz de LEDs pueden compartir la alimentación desde un adaptador de 5V.

Ya que Arduino se conecta a la matriz de LEDs mediante pines SPI:

  • Deben usarse los pines 13 (SCK) y 11 (MOSI) en Arduino Uno.
  • Si estás usando otra placa Arduino, consulta la documentación oficial para los pines SPI equivalentes.

Cómo programar para una matriz de LEDs

No es fácil controlar la matriz de LEDs. Afortunadamente, hay bibliotecas disponibles para facilitarlo. A continuación se muestra un paso a paso sobre cómo escribir código de Arduino para controlar la matriz de LEDs.

  • Incluir bibliotecas:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • Especifique qué hardware se está utilizando: GENERIC_HW o FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • Defina cuántos bloques de LED se utilizan. Por ejemplo, una matriz de LED 4-en-1 tiene 4 bloques.
#define MAX_DEVICES 4
  • Define el pin que se conecta al pin CS de la matriz LED. Por ejemplo, el pin D3
#define CS_PIN 3
  • Crea una nueva instancia de la clase MD_Parola para la pantalla de la matriz LED.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Código en la función setup():
void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(0); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display }
  • Mostrar texto, número y efectos animados: ver la siguiente parte

Arduino - Código de la Matriz LED

El código que se muestra a continuación es para la matriz LED FC-16 de 32×8 (4 bloques). Pero puedes adaptarlo fácilmente a 8×8, 16×8, 64×8...

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN 3 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear LED matrix display } void loop() { ledMatrix.setTextAlignment(PA_LEFT); ledMatrix.print("Left"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.print("Center"); // display text delay(2000); ledMatrix.setTextAlignment(PA_RIGHT); ledMatrix.print("Right"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.setInvert(true); ledMatrix.print("Invert"); // display text inverted delay(2000); ledMatrix.setInvert(false); ledMatrix.print(1234); // display number delay(2000); }

Pasos R\u00e1pidos

  • Conecta Arduino a la matriz de LEDs según el diagrama de cableado anterior
  • Conecta Arduino a la PC mediante un cable USB
  • Navega hasta el icono Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “MD_Parola”, luego localiza la biblioteca MD_Parola
  • Haz clic en el botón Instalar.
Biblioteca MD_Parola para Arduino
  • Se le pedirá instalar la biblioteca MD_MAX72XX como dependencia. Haga clic en el botón Instalar todo.
Biblioteca MD_MAX72XX para Arduino
  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Cargar en Arduino IDE para subir el código al Arduino
  • Vea la pantalla de la matriz de LEDs

Código de la matriz LED de Arduino – Texto desplazable

Cuando quieras imprimir un mensaje largo que no quepa en una pantalla de matriz LED, puedes usar la técnica del efecto de desplazamiento de texto.

El código de Arduino que se muestra a continuación muestra cómo desplazar un mensaje en la matriz LED.

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN 3 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display ledMatrix.displayScroll("Hello, DIYables", PA_CENTER, PA_SCROLL_LEFT, 100); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

Para más efectos de texto, por favor visite Referencia de la biblioteca MD_Parola.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!