ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
1 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
LABORATORIO DE: PROGRAMACIÓN PARA ELECTRÓNICA 2
EXPERIENCIA N°: 03
TÍTULO DE LA EXPERIENCIA:
Comunicación SPI: Uso de matrices de LEDs
Alumno(s): Grupo Indiv. Total
1. Fernandez Denos Yhoel David 6
2. Hilario Sapacayo, Luis Angel 6
Grupo: 6 Docente: Dr. German Alberto Echaiz
Semestre: 2 Espinoza
Fecha de
19/10/2024 Hora:
entrega:
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
2 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
LABORATORIO N° 03
ESQUEMA DEL CICUITO:
Montaje Físico
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
3 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
4 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
I. CÓDIGOS DEL ARDUINOS:
a. Primer Código
// Including the required Arduino libraries
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
// Defining size, and output pins
#define MAX_DEVICES 4
#define CS_PIN 3
// Create a new instance of the MD_Parola class with hardware SPI connection
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
// Intialize the object
[Link]();
// Set the intensity (brightness) of the display (0-15)
[Link](0);
// Clear the display
[Link]();
}
void loop() {
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
5 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
[Link](PA_LEFT);
[Link]("Left");
delay(2000);
[Link](PA_CENTER);
[Link]("Center");
delay(2000);
[Link](PA_RIGHT);
[Link]("Right");
delay(2000);
[Link](PA_CENTER);
[Link](true);
[Link]("Invert");
delay(2000);
[Link](false);
[Link](1234);
delay(2000);
}
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
6 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
b. Segundo Código
// Including the required Arduino libraries
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
7 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
// Defining size, and output pins
#define MAX_DEVICES 4
#define CS_PIN 3
// Create a new instance of the MD_Parola class with hardware SPI connection
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
// Intialize the object
[Link]();
// Set the intensity (brightness) of the display (0-15)
[Link](15);
// Clear the display
[Link]();
// Display scrolling text
[Link]("Hello", PA_CENTER, PA_SCROLL_LEFT, 100);
}
void loop() {
// Animate the display; when done, reset for continuous scrolling
if ([Link]()) {
[Link]();
}
}
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
8 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
9 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
II. PROTEUS:
III. WOKWI:
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
10 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
IV. Link de Drive
[Link]
g
V. OBSERVACIONES Y CONCLUSIONES
a. Observaciones
• El armado del circuito con las matrices LED y la comunicación SPI se
logró de manera adecuada, aunque la correcta conexión de los pines CS y
DIN/DOUT es crucial para evitar problemas en la visualización de los
datos.
• En las simulaciones de Proteus y Wokwi se observó que el
comportamiento de la matriz LED es consistente con el código cargado.
Sin embargo, en algunas pruebas la velocidad de desplazamiento del
texto podría haber sido ajustada para mejorar la legibilidad.
• Durante el proceso de ajuste de la intensidad de las matrices LED, se
identificó que mantener el brillo máximo puede sobrecargar el regulador
de voltaje del Arduino si no se utiliza una fuente de alimentación
externa.
• El uso de las librerías MD_Parola y MD_MAX72xx es efectivo para
controlar las matrices LED, pero es importante asegurarse de tener
versiones actualizadas y configuraciones correctas para evitar
incompatibilidades durante la ejecución.
b. Conclusiones
• El protocolo SPI fue implementado correctamente para comunicar
múltiples matrices LED con el Arduino, permitiendo la visualización de
texto y control de efectos de manera efectiva.
• El uso del controlador MAX7219 simplificó el manejo de las matrices de
LEDs, permitiendo un control completo de las mismas utilizando
únicamente tres pines de datos.
• Se pudo demostrar que las matrices de LEDs, junto con el código
implementado, pueden desplegar texto y efectos de desplazamiento de
manera clara, ofreciendo múltiples opciones para la visualización de
datos.
• Las simulaciones en Wokwi y Proteus fueron clave para verificar el
funcionamiento correcto antes de realizar el montaje físico, lo que
permitió identificar posibles mejoras en el código y en la configuración
del hardware.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
11 / 11
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs
VI. BIBLIOGRAFIA
Artero, Ó. T. (2013). ARDUINO. Curso práctico de formación. RC libros.
Scott Fitzgerald, Michael Shiloh. (2012). ARDUINO PROJECTS BOOK. Torino.
Víctor Rossano. (2013). PROTEUS VSM SIMULACIÓN DE CIRCUITOS
ELECTRÓNICOS. USERS