Arduino Nano ESP32 - Matriz de LEDs

Las pantallas de matriz LED, también conocidas como pantallas LED o pantallas de matriz de puntos, se utilizan ampliamente. 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 ...

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×FC-16 LED Matrix 32x8
1×FC-16 LED Matrix 8x8
1×Generic LED Matrix 8x8
1×Protoboard
1×Cables Puente
1×(Opcional) Conector de Alimentación DC
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca de la matriz LED

pantalla de matriz LED

Existen muchos tipos de matrices LED. Con el ESP32, la matriz LED basada en MAX7219 se utiliza ampliamente. 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 8x8 (64 LEDs) y un controlador MAX7219
  • Existen dos formas populares de bloques: el módulo genérico y el módulo FC-16
  • Una matriz de LEDs puede estar compuesta por un solo bloque o por varios bloques en cascada
  • Puedes comprar una matriz de LEDs de múltiples 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
  • Indicarás el tamaño de la matriz de LEDs que uses en el código de Arduino Nano ESP32

Esquema de pines

Pinout de la matriz de LEDs

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

  • Grupo de pines de entrada:
    • VCC: se conecta a 5V.
    • GND: se conecta a GND.
    • DIN es el pin de datos, conéctalo a cualquier pin digital del Arduino Nano ESP32.
    • CS: Selección de chip, conéctalo a cualquier pin digital del Arduino Nano ESP32.
    • CLK: Pin de reloj, conéctalo a cualquier pin digital del Arduino Nano ESP32.
  • Grupo de pines de salida:
    • VCC: se conecta al VCC del grupo de pines de entrada en el siguiente módulo.
    • GND: se conecta al GND del grupo de pines de entrada en el siguiente módulo.
    • DOUT: Salida de datos, se conecta al pin DIN del grupo de pines de entrada del siguiente módulo.
    • CS: se conecta al CS del grupo de pines de entrada en el siguiente módulo.
    • CLK: se conecta al CLK del grupo de pines de entrada 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 Nano ESP32
  • Deja el grupo de pines de salida sin conectar
Diagrama de cableado de Arduino Nano ESP32 para matriz de LEDs 8x8 FC-16

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 matriz LED 8x8 diagrama de cableado genérico

This image is created using Fritzing. Click to enlarge image

Si la matriz LED está preconstruida en varios bloques:

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

This image is created using Fritzing. Click to enlarge image

Si la matriz de LEDs está formada por varios bloques que tú mismo has hecho:

  • Conecta los grupos de pines de entrada del primer bloque al Arduino Nano ESP32
  • Conecta los grupos de pines de salida de cada bloque a los grupos de pines de entrada del siguiente bloque
  • Deja sin conexión el grupo de pines de salida del último bloque
Arduino Nano ESP32 cableado de la matriz LED 32x8 diagrama FC-16

This image is created using Fritzing. Click to enlarge image

Porque la pantalla consume mucha corriente (hasta 1 A a brillo máximo):

  • No utilice la alimentación del pin de 5V del Arduino Nano ESP32.
  • Utilice una fuente de alimentación externa de 5V en su lugar. El Arduino Nano ESP32 y la matriz LED pueden compartir la alimentación de un adaptador de 5V.

Porque el Arduino Nano ESP32 se conecta a la matriz de LEDs mediante pines SPI:

  • Pin D13 (SCK) y D11 (MOSI) en Arduino Nano ESP32
  • El pin D10 (CS) se puede cambiar a cualquier pin

Cómo programar para una matriz de LEDs

No es fácil controlar la matriz LED. Afortunadamente, existen bibliotecas disponibles para facilitarlo. A continuación se presenta una guía paso a paso sobre cómo escribir código para Arduino Nano ESP32 para controlar la matriz LED.

  • 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 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 D10
#define CS_PIN D10
  • Crea una nueva instancia de la clase MD_Parola para la matriz de LEDs.
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 mostrar efectos animados: ver la siguiente parte

Arduino Nano ESP32 - Código de Matriz LED

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

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-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 D10 // The Arduino Nano ESP32 pin connected to the CS pin of the LED matrix // 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 LED Matrix 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

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecte los componentes de acuerdo con el diagrama proporcionado.
  • Conecte la placa Arduino Nano ESP32 a su computadora usando un cable USB.
  • Abra el IDE de Arduino en su computadora.
  • Seleccione la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Abra el Library Manager haciendo clic en el icono Library Manager en la barra de navegación izquierda del IDE de Arduino.
  • Busque “MD_Parola”, luego encuentre la biblioteca MD_Parola
  • Haga clic en el botón Install.
Biblioteca MD_Parola para Arduino Nano ESP32
  • Se le pedirá que instale la “MD_MAX72XX” biblioteca
  • Haga clic en el botón Instalar todo para instalar la dependencia.
Biblioteca MD_MAX72XX para Arduino Nano ESP32
  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Subir en Arduino IDE para subir el código al Arduino Nano ESP32
  • Vea la pantalla de la matriz de LEDs

Código de la matriz de LEDs para Arduino Nano ESP32 – Texto que se desplaza

Cuando quieras imprimir un mensaje largo que sea demasiado grande para caber en una pantalla de matriz LED, puedes usar la técnica de desplazamiento de texto.

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

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-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 D10 // The Arduino Nano ESP32 pin connected to the CS pin of the LED matrix // 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("ESP32", PA_CENTER, PA_SCROLL_LEFT, 100); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

Para más efectos de texto, por favor visite MD_Parola Library Reference.

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!