Letrero LED Inteligente: Control de Mensajes con Botones

Letrero LED Inteligente: Control de Mensajes con Botones

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

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:

PinesDescripción
1: VCCPin de alimentación (+).
2: GNDPin 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 UNOMAX7219 Letrero Electrónico
5VVCC
GNDGND
10CS
11DIN
13CLK

 Para los pulsadores, uno de sus pines se conectará a una entrada lógica y el segundo a un GND.

R3 UNOMAX7219 Letrero Electrónico
7Pulsador 1
8Pulsador 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:

  1. Abre el entorno de desarrollo IDE en tu computadora.
  2. Ve a “Sketch” > “Incluir Biblioteca” > “Gestor de Bibliotecas”.
  3. Busca MD_Parola y MD_MD_MAX72xx selecciona la biblioteca y da clic en instalar.
  4. 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *