En este proyecto práctico aprenderás a controlar una matriz LED 8x8 mediante un módulo de radiofrecuencia y Arduino. El sistema muestra diferentes frases según el botón que se presione en el control remoto.
Funcionalidad del proyecto
El sistema responde a los comandos del control remoto de la siguiente manera:
- Tecla B: Muestra la frase "HOLA MUNDO"
- Tecla D: Muestra la frase "HELLO WORLD"
- Tecla C: Limpia la matriz y detiene la visualización
Las frases continúan desplazándose hasta que se presiona la tecla C, momento en el que la matriz se apagará hasta que se seleccione una nueva opción.
💡 Nota: Para entender completamente el funcionamiento del módulo de radiofrecuencia, te recomendamos visitar nuestra guía detallada del módulo receptor YK04.
Montaje del proyecto

Diagrama de conexiones
Conexiones del Arduino al Módulo MAX7219:
- Pin 10 → CLK del MAX7219
- Pin 9 → CS del MAX7219
- Pin 8 → DIN del MAX7219
- GND → GND
- 5V → VCC
Conexiones del Módulo RF:
- Pin D0 → A0 (para tecla B)
- Pin D1 → A1 (para tecla D)
- Pin D3 → A2 (para tecla C)
- GND → GND
- 5V → VCC
Código Arduino
El siguiente código utiliza la librería MaxMatrix
para controlar
la matriz LED. Asegúrate de descargarla e instalarla en tu IDE Arduino.
Código completo y documentado aqui
#include <MaxMatrix.h>// Librería para controlar matrices MAX7219// Definición de caracteres para la matriz (omitido por brevedad)PROGMEM unsigned char const CH[] = {// ... caracteres definidos aquí};int data = 8; // DIN pin del modulo MAX7219int load = 9; // CS pin del modulo MAX7219int clock = 10; // CLK pin del modulo MAX7219int numeroDeMatrices = 1; // Cambia este valor según el número de matricesMaxMatrix m(data, load, clock, numeroDeMatrices); // Objeto para controlar la matrizbyte buffer[10];// Definición de pines para los botones del módulo RFbyte pulsadorMsg1 = A0; // Tecla B - "HOLA MUNDO"byte pulsadorMsg2 = A1; // Tecla D - "HELLO WORLD"byte pulsadorParar = A2; // Tecla C - DetenerString mensaje1 = "HOLA MUNDO "; // Primera fraseString mensaje2 = "HELLO WORLD "; // Segunda frasevoid setup() {pinMode(pulsadorMsg1, INPUT);pinMode(pulsadorMsg2, INPUT);pinMode(pulsadorParar, INPUT);m.init(); // Inicializa el módulom.setIntensity(5); // Intensidad de los LEDs (1-15)Serial.begin(9600); // Inicializa comunicación serial}void loop() {m.clear(); // Limpia la matrizif (digitalRead(pulsadorMsg1)) {imprimirString(mensaje1, 90); // Muestra "HOLA MUNDO"}if (digitalRead(pulsadorMsg2)) {imprimirString(mensaje2, 60); // Muestra "HELLO WORLD"}}bool detener() {if (digitalRead(pulsadorParar)) {m.clear(); // Limpia la matrizreturn true;}return false;}void imprimirString(String texto, int velocidadDesplazamiento) {int i = 0;int longitudDeCadena = texto.length() - 1;while (!detener()) {char caracter = texto[i] - 32;memcpy_P(buffer, CH + 7 * caracter, 7);m.writeSprite(numeroDeMatrices * 8, 0, buffer);m.setColumn(numeroDeMatrices * 8 + buffer[0], 0);for (int i = 0; i < buffer[0] + 1; i++) {delay(velocidadDesplazamiento);m.shiftLeft(false, false);}i++;if (i > longitudDeCadena) i = 0; // Reinicia el índice}}
Aplicaciones y extensiones del proyecto
Este proyecto puede ser la base para diversos desarrollos:
- Sistemas de información con display inalámbrico
- Menús interactivos para proyectos de automatización
- Sistemas de notificación con visualización remota
- Base para juegos simples con display matricial
💡 ¿Necesitas ayuda? Si tienes preguntas sobre este proyecto o quieres compartir tus modificaciones, déjanos un comentario. ¡Nos encantaría ver tus creaciones!
Publicar un comentario