0% encontró este documento útil (0 votos)
63 vistas8 páginas

LAB Matriz de Led 8X8

El documento es una guía práctica para estudiantes de Ingeniería Electrónica sobre la programación en C del ESP32 utilizando Visual Studio Code y PlatformIO, enfocándose en el control de una matriz de LEDs 8×8. Se detallan los objetivos, la configuración del hardware, el uso del circuito integrado MAX7219, y se proporcionan ejemplos de código y ejercicios prácticos para desarrollar habilidades en el manejo de gráficos y animaciones. La práctica busca integrar conocimientos de control de hardware y programación para crear aplicaciones interactivas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
63 vistas8 páginas

LAB Matriz de Led 8X8

El documento es una guía práctica para estudiantes de Ingeniería Electrónica sobre la programación en C del ESP32 utilizando Visual Studio Code y PlatformIO, enfocándose en el control de una matriz de LEDs 8×8. Se detallan los objetivos, la configuración del hardware, el uso del circuito integrado MAX7219, y se proporcionan ejemplos de código y ejercicios prácticos para desarrollar habilidades en el manejo de gráficos y animaciones. La práctica busca integrar conocimientos de control de hardware y programación para crear aplicaciones interactivas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

UNIVERSIDAD POPULAR DEL CESAR CODIGO:

VERSIÓN:
MICROCONTROLADORES
PÁG.: 1 de 8

DOCENTE MSC. JORGE MARIO GOMEZ BOLAÑO


CORREO ELECTRÓNICO jmariogomez@[Link]
PROGRAMAS USUARIOS INGENIERÍA ELECTRÓNICA
FACULTAD USUARIA INGENIERÍAS Y TECNOLÓGICAS
ASIGNATURA MICROCONTROLADORES CÓDIGO EL602 CRÉDITOS 3 AÑO LECTIVO 2025 PERIODO ACADÉMICO 1
Objetivo: Desarrollar habilidades en la programación en C del ESP32 utilizando Visual Studio Code con la extensión
PlatformIO, mediante la implementación y control de una matriz de LEDs 8×8, permitiendo a los estudiantes comprender el
manejo de periféricos visuales, la manipulación de registros y el diseño de patrones gráficos básicos en sistemas embebidos.

Guía Práctica de Programación en C para el ESP32


Desarrollo de Aplicaciones Interactivas Integrando Hardware y Software
Manejo de una Matriz de LEDs 8×8
Visual Studio Code con Extensión PlatformIO

CONTEXTO DE LA PRÁCTICA

En esta práctica, los estudiantes trabajarán con una matriz de LEDs 8×8 controlada mediante el protocolo SPI o
directamente mediante registros de desplazamiento como el MAX7219, ampliamente utilizado para este tipo de
aplicaciones. El objetivo es aprender a representar gráficamente patrones, textos y animaciones simples mediante
programación en C, integrando conocimientos de control de hardware y lógica binaria.
El ESP32, gracias a su capacidad de procesamiento y múltiples interfaces, permite manejar este tipo de dispositivos con
eficiencia, ideal para proyectos de visualización o sistemas de notificación gráfica.

OBJETIVOS ESPECÍFICOS DE LA PRÁCTICA

1. Configurar y utilizar la interfaz SPI del ESP32 para controlar una matriz de LEDs 8×8 a través del módulo
MAX7219.
2. Representar patrones gráficos simples mediante codificación binaria.
3. Desarrollar funciones que permitan mostrar caracteres o animaciones en la matriz.
4. Implementar un programa modular que permita actualizar dinámicamente el contenido de la matriz.

DESCRIPCIÓN DE LA ACTIVIDAD

Los estudiantes conectarán una matriz de LEDs 8×8 controlada por un MAX7219 al ESP32 usando la interfaz SPI (pines
MOSI, CLK, CS). Luego, mediante programación en C dentro del entorno PlatformIO, escribirán funciones para inicializar
el dispositivo, enviar datos y representar patrones en la matriz.
Se desarrollará un conjunto de funciones para mostrar caracteres, desplazamiento de texto y animaciones básicas. El
comportamiento visual será verificado en tiempo real a través de la matriz de LEDs conectada.

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]
UNIVERSIDAD POPULAR DEL CESAR CODIGO:
VERSIÓN:
MICROCONTROLADORES
PÁG.: 2 de 8

MATRIZ LED CÁTODO COMÚN Y ÁNODO COMÚN


Las matrices de LEDs pueden ser de dos tipos: ánodo común o cátodo común.

Matriz cátodo común: los terminales negativos (cátodos) de todos los LEDs de cada fila están conectados juntos. Lo
mismo ocurre con los pines positivos (ánodos) de cada columna.
Matriz ánodo común: las conexiones son contrarias, es decir, los ánodos se conectan a las filas y los cátodos a las
columnas.

CARACTERÍSTICAS TÉCNICAS DE UNA MATRIZ LED

En una matriz no es posible controlar todos los LEDs como si fueran


independientes. Esto pasa porque solo se dispone de los pines correspondientes
a filas y columnas. Si se aplican valores de alto (HIGH) y bajo (LOW) a varias
columnas y filas, respectivamente, se encenderán todos los LEDs de las
intersecciones. Por ello, es difícil generar gráficos complejos. Para poder mostrar
gráficos correctamente es necesario realizar un barrido por filas o columnas. Se
iluminará sólo una fila a la vez.

CIRCUITO INTEGRADO MAX7219 Y MAX7221

Controlar una matriz de 8×8 implica utilizar 16 señales digitales y refrescar la imagen de una forma constante. Es por eso
que en lugar de utilizar un Uc directamente, emplearemos el circuito integrado MAX7219 o MAX7221 para esta tarea. Los
circuitos integrados MAX7219 y MAX7221 son casi iguales. Eso significa que son fácilmente intercambiables uno por el
otro. De ahora en adelante me referiré al MAX7219, aunque todo es igual de válido para el MAX7221. El MAX7219 es un
circuito integrado que facilita el control de LEDs. Es usado principalmente en pantallas de 7 segmentos, paneles de
LEDs industriales y como controlador de matriz de LED con Microcontroladores.

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]
UNIVERSIDAD POPULAR DEL CESAR CODIGO:
VERSIÓN:
MICROCONTROLADORES
PÁG.: 3 de 8

1- Los pines DIG0-DIG7 se usan para controlar las filas de la matriz.


2- Los pines SEGA-SEGG, DP son empleados para controlar las columnas de la
matriz.
3- Los pines DIN, SCK y CS conforman la interfaz de comunicación, es decir,
que mediante estos pines el ESP32 le envía comandos al chip.
4- El pin DOUT es utilizado para conectar varios MAX7219 en cascada.
5- Por último el pin ISET permite configurar la corriente utilizada para cada LED.
Esto influye en la intensidad de los LEDs.

Conexión MAX7219 y matriz LED con ESP32


En la siguiente figura puedes ver el esquema necesario para conectar un MAX7219 a una matriz de 8×8.

E
S
P

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]
UNIVERSIDAD POPULAR DEL CESAR CODIGO:
VERSIÓN:
MICROCONTROLADORES
PÁG.: 4 de 8

Conectar matrices LED en cascada


Conectando varios MAX7219 en cascada te permite controlar las matrices con solo tres pines del ESP32.

E
S
P

Los pines CLK y LOAD de ambos chips se conectan juntos. Por otra parte, el pin DOUT del primer MAX7219 se ha
conectado al pin DIN del segundo.

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]
UNIVERSIDAD POPULAR DEL CESAR CODIGO:
VERSIÓN:
MICROCONTROLADORES
PÁG.: 5 de 8

Módulos de matriz LED con ESP basados en MAX7219

Ya sabes cómo conectar un MAX7219 para controlar una matriz LED con
ESP32. Sin embargo, es tedioso activar 6 matrices de LED con una
ESP32 por la cantidad de conexiones necesarias. Por suerte, existen
módulos de matrices LEDs para Microcontroladores con el circuito
montado. Existen de una única matriz o de varias.
Los que están compuestos por varias matrices utilizan un MAX7219 por
cada una, y estos están conectados tal y como vimos en el esquema
anterior. Es decir, que se conectan todos los MAX7219 en cascada.

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]
UNIVERSIDAD POPULAR DEL CESAR CODIGO:
VERSIÓN:
MICROCONTROLADORES
PÁG.: 6 de 8

LIBRERIAS E INSTRUCCIONES

Para trabajar con una matriz de LEDs 8×8 controlada por un ESP32 generalmente implica el uso de un controlador como
el MAX7219 (muy común para estas matrices). Para programarla desde Visual Studio Code con PlatformIO, se pueden
usar bibliotecas que faciliten la comunicación entre el ESP32 y el MAX7219 mediante el protocolo SPI.

Biblioteca recomendada
LedControl o MD_MAX72XX / MD_Parola.
Estas bibliotecas permiten controlar matrices de LEDs basadas en el chip MAX7219.
LedControl: Simple y directa. Ideal para empezar.
MD_MAX72XX + MD_Parola: Más avanzadas. Permiten animaciones, texto en movimiento, etc.

1- Para la biblioteca LedControl:


#include <LedControl.h>

Inicialización:
LedControl lc = LedControl(DIN, CLK, CS, numDevices);
DIN: pin del ESP32 conectado a DIN del MAX7219.
CLK: pin del ESP32 conectado a CLK del MAX7219.
CS: pin del ESP32 conectado a CS/LOAD del MAX7219.
numDevices: número de matrices conectadas (puede ser 1 o más).

Funciones principales:
Función Descripción
[Link](0, false); Enciende la matriz (sale del modo de bajo consumo).
[Link](0, 8); Ajusta el brillo (valor de 0 a 15).
[Link](0); Limpia toda la matriz.
[Link](0, fila, columna, true); Enciende un LED específico (coordenadas de 0 a 7).
[Link](0, fila, byte); Enciende una fila completa según un byte (ej. 0b10101010).

2- Para la biblioteca MD_MAX72XX:


#include <MD_MAX72XX.h>
#include <SPI.h>

Inicialización:
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW // o PAROLA_HW, dependiendo del módulo
#define MAX_DEVICES 1
#define DATA_PIN 23
#define CS_PIN 5
#define CLK_PIN 18

MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

Funciones principales:

Función Descripción
[Link](); Inicia el módulo.
[Link](); Limpia la pantalla.
[Link](fila, columna, estado); Enciende/apaga un LED.
[Link](columna, byte); Enciende toda una columna según el byte dado.

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]
UNIVERSIDAD POPULAR DEL CESAR CODIGO:
VERSIÓN:
MICROCONTROLADORES
PÁG.: 7 de 8

Ejemplo básico con LedControl:

#include <LedControl.h>
LedControl lc = LedControl(23, 18, 5, 1); // DIN, CLK, CS, 1 dispositivo
void setup() {
[Link](0, false);
[Link](0, 8);
[Link](0);
// Encender diagonal
for (int i = 0; i < 8; i++) {
[Link](0, i, i, true);
}
}
void loop() {
}

3- Recomendación para displays múltiples o texto en movimiento


Usa la combinación MD_MAX72XX + MD_Parola, ya que estas bibliotecas permiten hacer scroll de texto,
animaciones, relojes, etc., muy útiles para prácticas más complejas.

Código Ejemplo para el Manejo de una Matriz 8×8 con MAX7219

Este ejemplo usa la biblioteca LedControl adaptada para PlatformIO. Puedes instalarla desde el [Link] con:

lib_deps = majicdesigns/MD_MAX72XX

Código base:
#include <Arduino.h>
#include <MD_MAX72XX.h>
#include <SPI.h>

// Definiciones de pines
#define DATA_PIN 23 // MOSI
#define CLK_PIN 18 // SCK
#define CS_PIN 5 // Chip Select

// Inicialización de la matriz: tipo de hardware, número de dispositivos


#define MAX_DEVICES 1
MD_MAX72XX mx = MD_MAX72XX(MD_MAX72XX::FC16_HW, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

void setup() {
[Link]();
[Link]();
delay(500);
}
void loop() { DESCRIPCIÓN DEL CÓDIGO
// Ejemplo: mostrar una letra 1- Se configura la matriz de LEDs a través de la biblioteca
[Link](); MD_MAX72XX usando SPI.
[Link](0, 'A'); 2- En setup(), se inicializa y limpia la matriz.
delay(1000); 3- En el loop(), se muestra un carácter simple ('A').
}

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]
UNIVERSIDAD POPULAR DEL CESAR CODIGO:
VERSIÓN:
MICROCONTROLADORES
PÁG.: 8 de 8

EJERCICIO PRÁCTICO

Objetivo: Aplicar conocimientos de control de hardware, codificación binaria y uso de bibliotecas para representar
información visual en tiempo real usando una matriz de LEDs.

1- Ejercicio#1: Verificación y Adaptación del Código Base 5ptos


a) Crear el proyecto en PlatformIO y configurar correctamente el archivo [Link].
b) Copiar el código base, verificar la conexión física de la matriz MAX7219 con el ESP32.
c) Comprobar el funcionamiento básico y documentar errores o conflictos.
d) Realizar correcciones necesarias.

2- Ejercicio#2: Animaciones Básicas y Texto Desplazado 10ptos


a) Implementar funciones que permitan mostrar una serie de caracteres desplazándose de derecha a izquierda
(scrolling text).
b) Definir patrones personalizados (dibujos simples como un corazón o una flecha) utilizando arreglos de bytes.
c) Realizar una animación simple que alterne entre dos patrones gráficos.
3- Ejercicio#3: Integración con Entrada de Usuario 10ptos
a) Leer datos desde el terminal serial (por ejemplo, un carácter enviado por el usuario) y mostrarlo en la matriz.
b) Implementar un sistema de menú donde el usuario pueda elegir qué patrón o texto mostrar.

4- Ejercicio#4: Reloj Digital (HH:MM:SS) 75ptos


a) Diseñar un reloj digital que visualice horas, minutos y segundos utilizando módulos de matriz LED basados en el
controlador MAX7219, El diseño debe ser flexible para operar con uno o varios módulos en cascada. conectados a
un microcontrolador ESP32. El sistema debe actualizar la visualización en tiempo real, mostrando los cambios de
hora, minuto y segundo. Además, se debe implementar el uso de interrupciones externas mediante botones,
permitiendo al usuario incrementar o decrementar cada unidad de tiempo (horas, minutos o segundos) de forma
individual.

Nota: implementar un único circuito para el desarrollo y prueba de todos los ejercicios.

MSC. JORGE MARIO GOMEZ BOLAÑO


jmariogomez@[Link]

También podría gustarte