Continuando con la creación de un letrero LED inteligente electrónico, en esta ocasión agregaremos pulsadores para que muestre diferentes mensajes dependiendo del pulsador que presionemos, utilizando una matriz de LEDs MAX7219 8×32 y un R3 UNO o también con la placa DualMCU ONE ESP32 + RP2040.
Como pudimos observar en el tutorial pasado “Cómo Crear un Letrero Electrónico con Matriz de Leds MAX7219 8×32 ”. El módulo MAX7219 para el letrero electrónico con matriz de LEDs de 8×32 actúa como un controlador; este permite la comunicación y el control de los LEDs.
Materiales necesarios
- R3 UNO
- MAX7219 Letrero Electrónico Matriz 8×32
- Cables Dupont Hembra – Macho
- DualMCU ONE ESP32 + RP2040
- Protoboard
- 2 pulsadores de 2 o 4 pines
Diagrama de conexiones
Debemos tener cuidado de realizar las conexiones correctas, para esto nos guiaremos con la serigrafía que viene en la placa. Esto asegura que nuestro módulo MAX7219 funcione de manera correcta, A continuación se detallan los pines:

| Pines | Descripción |
| 1: VCC | Pin de alimentación (+). |
| 2: GND | Pin de alimentación (-). |
| 3: DIN (Data In) | Pin de entrada de datos. |
| 4: CS (Chip Select): | Pin para seleccionar la matriz de LED cuando se envían comandos o datos a ella. |
| 5: CLK (Clock): | Pin de reloj. Se utiliza para sincronizar la transferencia de datos entre el microcontrolador y la matriz de LED. |
Conexión con el R3 UNO
En esta ocasión nos ayudaremos de una protoboard para colocar los pulsadores, estos realizarán la función de mostrar un mensaje por pulsadores.
| R3 UNO | MAX7219 Letrero Electrónico |
| 5V | VCC |
| GND | GND |
| 10 | CS |
| 11 | DIN |
| 13 | CLK |

Para los pulsadores, uno de sus pines se conectará a una entrada lógica y el segundo a un GND.
| R3 UNO | MAX7219 Letrero Electrónico |
| 7 | Pulsador 1 |
| 8 | Pulsador 2 |
Instalación de la Biblioteca
Como recordaremos del tutorial anterior, ocuparemos las librerías:
Para cargarlas al entorno de desarrollo IDE sigue los siguientes pasos:
- Abre el entorno de desarrollo IDE en tu computadora.
- Ve a “Sketch” > “Incluir Biblioteca” > “Gestor de Bibliotecas”.
- Busca MD_Parola y MD_MD_MAX72xx selecciona la biblioteca y da clic en instalar.
- También las puedes descargar desde Github e importarlas manualmente.
Realización del código
El siguiente programa nos permitirá asignar un texto a cada pulsador; de esta forma se mostrará el texto asignado en el módulo MAX7219. Este nuevo programa tiene algunos cambios, a diferencia del visto en el tutorial pasado.
En los comentarios del texto se describe cómo debe cambiar el número de pin lógico en el código para el UNIT DualMCU ONE ESP32 + RP2040, el código está hecho para el RP2040 por lo que el switch deslizante debe estar colocado hacia él.
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CLK_PIN 13 // Etiqueta 13 en MCU RP2040 (GP18),en R3 UNO 13
#define DATA_PIN 11 // Etiqueta 11 en MCU RP2040 (GP19),en R3 UNO 11
#define CS_PIN 10 // Etiqueta 10 en MCU RP2040 (GP17),en R3 UNO 10
#define boton1 7 // Etiqueta 7 en la placa RP2040 (GP10),en R3 UNO 7
#define boton2 8 // Etiqueta 8 en la placa RP2040 (GP2),en R3 UNO 8
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
struct animacion {
textEffect_t anim_in;
textEffect_t anim_out;
const char * textOut; // Texto en display
uint16_t speed; // Velocidad
uint16_t pause; // Pausa
textPosition_t just;
};
void setup() {
P.begin();
pinMode(boton1, INPUT_PULLUP); // Boton 1 , Configura el botón como entrada con resistencia pull-up interna
pinMode(boton2, INPUT_PULLUP); // Boton 2 ,
}
void loop() {
if (P.displayAnimate()) {
if (digitalRead(boton1) == LOW) {
P.displayText("Hola soy el texto 1", PA_LEFT, 50, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT); // mensaje que se muestra, siguiendo el orden para la animacion
P.displayReset(); // Importante resetear para que inicie la nueva animación
}
else if (digitalRead(boton2) == LOW) {
P.displayText("Hola soy el texto 2 ", PA_LEFT, 50, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
P.displayReset();
}
}
}
Adicionalmente, te compartimos la conexión de tarjeta UNIT DualMCU ONE ESP32 + RP2040.
No olvides llevar a cabo los ajustes necesarios en el código para los pines utilizados.

Demostración del letrero
Conclusiones
Como pudimos observar la integración de pulsadores, el letrero deja de ser un display pasivo para convertirse en una interfaz funcional.
Adicional a esto, la UNIT DualMCU ONE ESP32 + RP2040 nos da una nueva gama de posibilidades con su compatibilidad y versatilidad.

