0% encontró este documento útil (0 votos)
21 vistas17 páginas

Lab 03 Programacion

Cargado por

ccoaguilar
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)
21 vistas17 páginas

Lab 03 Programacion

Cargado por

ccoaguilar
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/ 17

ESCUELA PROFESIONAL DE INGENIERÍA Emisión:

ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
1 / 17
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.
2.
3.
4.

Grupo: Docente: Dr. German Alberto Echaiz


Semestre: 1 Espinoza
Fecha de
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 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

LABORATORIO N° 03
Comunicación SPI: Uso de matrices de LEDs

I. OBJETIVOS:

• Comprender el funcionamiento del protocolo de comunicación SPI.


• Comunicar el Arduino UNO con múltiples matrices de LEDs, mediante el protocolo SPI.
• Reconocer los distintos componentes electrónicos.

II. FUNDAMENTO TEÓRICO:

Comunicación SPI

El bus SPI (Serial Peripheral Interface) fue desarrollado por Motorola en 1980. Sus ventajas respecto a
otros sistemas han hecho que se convierta en un standard de facto en el mundo de la electrónica y
automatización.

El bus SPI tiene una arquitectura de tipo maestro-esclavo. El dispositivo maestro (master) puede iniciar la
comunicación con uno o varios dispositivos esclavos (slave), y enviar o recibir datos de ellos. Los
dispositivos esclavos no pueden iniciar la comunicación, ni intercambiar datos entre ellos directamente.

En el bus SPI la comunicación de datos entre maestros y esclavo se realiza en dos líneas independientes,
una del maestro a los esclavos, y otra de los esclavos al maestro. Por tanto, la comunicación es Full
Duplex, es decir, el maestro puede enviar y recibir datos simultáneamente.

Otra característica de SPI es que es un bus síncrono. El dispositivo maestro proporciona una señal de
reloj, que mantiene a todos los dispositivos sincronizados. Esto reduce la complejidad del sistema frente a
los sistemas asíncronos.

Por tanto, el bus SPI requiere un mínimo de 3 líneas.

• MOSI (Master-out, slave-in) para la comunicación del maestro al esclavo.


• MISO (Master-in, slave-out) para comunicación del esclavo al maestro.
• SCK (Clock) señal de reloj enviada por el maestro.

Además, se requiere una línea adicional SS (Slave Select) para cada dispositivo
esclavo conectado, para seleccionar el dispositivo con el que se va a realizar la comunicación.
Sin embargo, esto tiene la desventaja de requerir una línea por cada dispositivo esclavo. En caso de
disponer muchos dispositivos esclavos esto puede no ser práctico, por lo que es posible adoptar una
conexión en cascada, donde cada esclavo trasmite datos al siguiente.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
3 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

FUNCIONAMIENTO DEL BUS SPI

El funcionamiento del bus SPI es sencillo.

Por defecto el maestro mantiene en estado HIGH todas las líneas SS. Cuando el maestro quiere
establecer comunicación con esclavo pone a LOW la línea SS correspondiente, lo que indica al esclavo
que debe iniciar la comunicación.

En cada pulso de la señal de reloj, normalmente en el flanco de subida, el dispositivo maestro envía un bit
del esclavo y a la vez que recibe un bit del esclavo sel eccionado.

La trama (los datos enviados) no sigue ninguna regla, es decir, podemos enviar cualquier secuencia
arbitraria de bits. Esto hace que los dispositivos conectados necesiten tener pre-acordado la longitud y
significado de los que van a enviar y recibir.

La electrónica requerida para implementar el bus SPI es sencilla y barata, incluso un único registro de
desplazamiento puede ser suficiente. Además, como la señal de reloj es proporcionada por el maestro, los
esclavos ni siquiera necesitan disponer de un reloj propio.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
4 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

Matriz de LEDs

Una pantalla de matriz de puntos de 8×8 suele tener 16 pines, 8 para cada fila y 8 para cada columna.
Todas las filas y columnas están conectadas entre sí para reducir el número de pines. Si este no fuera el
caso, una pantalla de matriz de puntos de 8×8 requeriría 65 pines, uno para cada LED y otro para un
ánodo común o un conector de cátodo común. Al conectar filas y columnas, solo se necesitan 16 pines
para controlar toda la matriz. Esta técnica de controlar un gran número de LEDs con menos pines se
conoce como Multiplexación.

En esta técnica, cada columna se activa durante un tiempo muy corto y, al mismo tiempo, los LED de esa
columna se encienden dirigiéndose a la fila correspondiente. Como resultado, no se encienden más de
ocho LED al mismo tiempo. Las columnas se cambian tan rápido (cientos o miles de veces por segundo)
que el ojo humano percibe que la pantalla está completamente iluminada.

CONTROLADOR MAX7219
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
5 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

El controlador MAX7219, se encarga de todo el trabajo de control y actualización de los LEDs que
componen la matriz. Solo se tiene que enviar los comandos a través de la interfaz SPI de 4 pines.
Se uede controlar completamente 64 LED individuales mientras mantiene su brillo constante. Una vez que
el microcontrolador ha actualizado la pantalla, el MAX7219 se encarga del trabajo de actualizar la pantalla
a 800 Hz. Esto libera al microcontrolador para hacer otras cosas importantes.

El MAX7219 tiene un modo de ahorro de energía en el que la pantalla se puede apagar para ahorrar
energía. También apaga los LED durante el arranque, lo que evita pantallas extravagantes durante los
primeros segundos de funcionamiento.

El MAX7219 se comunica a través de la interfaz SPI, por lo que solo necesita 3 pines de datos para
conectarse a un microcontrolador. Además, podemos conectar en cadena varios módulos para obtener
una pantalla más grande utilizando los mismos 3 cables.

PINOUT Matriz de LEDs y MAX7219

PINOUT Entrada:
• VCC está conectado a 5V. Debido a que la pantalla consume mucha corriente (hasta 1 A con el
brillo máximo), es mejor usar una fuente de alimentación externa en lugar de la fuente de
alimentación de 5 V del Arduino. Si desea utilizar la fuente de alimentación de 5V del Arduino,
mantenga el brillo por debajo del 25% para evitar el sobrecalentamiento del regulador de voltaje.
• GND es el pin de tierra común.
• DIN es el pin de datos. Conéctelo a cualquier pin digital del microcontrolador.
• CS/LOAD es Chip Select (a veces etiquetado como LOAD). Conéctelo a cualquier pin digital del
microcontrolador.
• CLK son las siglas de Clock pin. Conéctelo a cualquier pin digital del microcontrolador.

PINOUT Salida:

• VCC se conecta a 5V en el siguiente módulo.


• GND se conecta a GND en el siguiente módulo.
• DOUT Data Out y se conecta al pin DIN del siguiente módulo.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
6 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

• CS/LOAD se conecta a CS / LOAD en el siguiente módulo.


• CLK se conecta a CLK en el siguiente módulo.
CIRCUITO ESQUEMÁTICO

III. RECOMENDACIONES EN SEGURIDAD

3.1. En condiciones de una emergencia Identifique:


• Vías de acceso y evacuación
• Equipos de respuesta a emergencias
• Señalización de seguridad

3.2. Complete el ATS (Anexo 1) y cumpla las condiciones obligatorias para el uso del ambiente

IV. EQUIPOS Y MATERIALES A UTILIZAR:

• Una tarjeta Arduino Uno-R3.


• Un cable USB impresora.
• Un computador.
• Cables para el montaje del circuito.
• Tarjeta Protoboard.
• 4 Módulo Matriz LED + MAX7219

V. PROCEDIMIENTO:
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
7 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

1. MONTAJE DEL CIRCUITO:

Armar cualquiera de los 2 circuitos.

2. CÓDIGO ARDUINO
Librerías para Arduino
https://github.com/MajicDesigns/MD_MAX72XX
https://github.com/MajicDesigns/MD_Parola
2.1 Text Display
// 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
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
8 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

#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
myDisplay.begin();
// Set the intensity (brightness) of the display (0-15)
myDisplay.setIntensity(0);
// Clear the display
myDisplay.displayClear();
}
void loop() {
myDisplay.setTextAlignment(PA_LEFT);
myDisplay.print("Left");
delay(2000);
myDisplay.setTextAlignment(PA_CENTER);
myDisplay.print("Center");
delay(2000);
myDisplay.setTextAlignment(PA_RIGHT);
myDisplay.print("Right");
delay(2000);
myDisplay.setTextAlignment(PA_CENTER);
myDisplay.setInvert(true);
myDisplay.print("Invert");
delay(2000);
myDisplay.setInvert(false);
myDisplay.print(1234);
delay(2000);
}

2.2 Scrolling Text


// 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
myDisplay.begin();
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
9 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

El primer paso es incluir todas las librerías de Arduino necesarias. Como se indicó anteriormente, la biblioteca
MD_MAX72XX implementa las funciones específicas del hardware de la matriz LED, mientras que la biblioteca
MD_Parola implementa el efecto de texto. También debe incluir la biblioteca SPI, que se utiliza para comunicarse con
la pantalla a través de SPI.
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

A continuación, debemos especificar qué hardware se está utilizando. Estamos usando 4 circuitos integrados
MAX7219, por lo que se establece en 4. Por último, se define el pin al que está conectado el pin CS de la pantalla.
HARDWARE_TYPEFC16_HWMAX_DEVICES
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 3
A continuación, la función se utiliza para crear una nueva instancia de la clase MD_Parola. El primer parámetro es el
tipo de hardware, el segundo es el pin CS y el tercero es el número de circuitos integrados MAX7219 que se
utilizan.MD_Parola()
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
En la sección de configuración del código, primero usamos la función para inicializar el objeto. El brillo de la pantalla
se puede ajustar mediante la función, que acepta valores que van desde 0 (brillo más bajo) hasta 15 (brillo máximo).
La pantalla se borra con la función.begin()setIntensity()displayClear()
void setup() {
myDisplay.begin();
myDisplay.setIntensity(15);
myDisplay.displayClear();
}

Por último, se hace un efecto de scrool que muestra un mensaje en las pantallas
myDisplay.displayScroll("Hello", PA_CENTER, PA_SCROLL_LEFT, 100);
Como se puede ver, esta función toma cuatro argumentos: displayScroll(pText, align, textEffect, speed)

• pText – es la cadena de texto. Su mensaje va aquí.


• align – Establece la alineación del texto durante la pausa opcional. Puede utilizar las mismas opciones de
alineación que en el ejemplo anterior, como PA_CENTER, PA_LEFT o PA_RIGHT.
• textEffect – especifica los efectos de desplazamiento. Si lo configuras en PA_SCROLL_LEFT, el texto se
desplazará hacia la izquierda.
• speed - Determina la velocidad de la animación. La velocidad es el tiempo en milisegundos entre fotogramas
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
10 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

de animación. El corto tiempo da como resultado una animación más rápida.

Solo se utilizan dos funciones para desplazar el texto en la sección de bucle. Primero, en una declaración, usamos la
función. Esta función desplaza el texto y devuelve true cuando termina. Cuando finaliza el desplazamiento, usamos la
función para restablecer la pantalla, lo que resulta en un desplazamiento continuo.

void loop() {
if (myDisplay.displayAnimate()) {
myDisplay.displayReset();
}
}

3. Simulación Proteus
Realizar la simulación en Proteus (utilizar un Arduino Uno, MATRIX-8X8-RED, MAX7219). Guiarse del siguiente
circuito esquemático para formar las matrices.

4. Simulación Wokwi
Realizar la simulación en Wokwi (utilizar un Arduino Uno, MATRIX-8X8-RED, MAX7219).

VI. DESARROLLO:
5.1 MONTAJE DEL CIRCUITO
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
11 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

(Pegar aquí una foto del circuito armado)

5.2 CÓDIGO
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
12 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

(Pegar aquí una captura de pantalla de los códigos)


CODIGO 1

CODIGO 2

5.3. SIMULACIÓN EN PROTEUS


ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
13 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

(Pegar aquí una captura de pantalla en plena simulación de PROTEUS, grabar un video)

5.4. SIMULACIÓN EN Wokwi


ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
14 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

(Pegar aquí una captura de pantalla en plena simulación de Wokwi, grabar un video)

LINK DRIVE
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
15 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

Carpeta Raíz : Lab_PPE2_2024B_GRUPOx (donde x es el número de grupo que formaron)


Subcarpeta: Laboratorio 3
Informe. PDF (colocar este informe completado en PDF)
Subcarpeta: Arduino (colocar los archivos .ino , .hex y un video explicando el código )
Subcarpeta: Armado (colocar una foto del armado y un video de funcionamiento)
Subcarpeta: Proteus (colocar los archivos de Proteus y un video de funcionamiento)
Subcarpeta: Wokwi (colocar los archivos de wokwi y un video de funcionamiento)

Colocar link aquí:


__https://drive.google.com/drive/folders/1qiPTYOtULSlUl3l0nMqbBnLRiXef35oC_____________
Subir el informe en la plataforma Dutic

VII. OBSERVACIONES Y CONCLUSIONES:

-Dar sus observaciones y conclusiones en forma clara y empleando el menor número de palabras.
Observaciones: (mínimo 4)

Calidad de la simulación en Proteus: Durante la simulación en Proteus, la representación gráfica del desplazamiento de palabras
en la matriz 7219 es clara, pero puede no ser completamente precisa respecto a la velocidad o fluidez del desplazamiento en el
hardware real.
Conectividad en el armado físico: En el armado físico, las conexiones entre la matriz 7219 y el microcontrolador (como Arduino o
similar) pueden ser sensibles a errores de cableado. Una mala conexión puede resultar en que la matriz no funcione correctamente
o los caracteres se muestren de manera incompleta.
Diferencias de rendimiento entre simulación y físico: En la simulación con Walkie, las palabras pueden parecer más estables, pero
en el hardware físico, la velocidad de refresco y brillo de los LEDs puede variar dependiendo de la calidad del ensamblaje y la fuente
de alimentación.
Estabilidad del desplazamiento: En el armado físico, el desplazamiento de palabras puede verse afectado por la calidad del código
y del hardware. Pequeñas fallas en la programación o problemas de alimentación pueden causar parpadeos en los LEDs o que el
texto no se desplace de manera fluida.
Conclusiones: (mínimo 4)
Diferencias entre simulación y realidad: Las simulaciones en Proteus y Walkie son útiles para verificar la lógica básica del código y
las conexiones, pero siempre es recomendable hacer pruebas físicas porque pueden existir diferencias en el comportamiento real
del sistema.
Precisión en el cableado y la alimentación: El éxito del proyecto físico depende mucho de un buen cableado y de asegurar una
fuente de alimentación adecuada para la matriz 7219, ya que cualquier fluctuación puede afectar el funcionamiento de la matriz.
Optimización del código: Para obtener un desplazamiento fluido y evitar parpadeos en el hardware físico, es importante optimizar el
código, ajustando los tiempos de refresco y las instrucciones de control de la matriz.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 18/12/2023
LABORATORIO DE PROGRAMACIÓN PARA
Página
ELECTRÓNICA 2
16 / 17
EXPERIENCIA 3: Comunicación SPI: Uso
de matrices de LEDs

Importancia del ensayo físico: Aunque las simulaciones son valiosas, el comportamiento del sistema puede variar en el mundo real
debido a limitaciones físicas, por lo que es crucial realizar pruebas con el hardware final para asegurarse de que el proyecto funcione
correctamente en todas las condiciones.

VIII. 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.
Rubrica:
Desarrollo de experiencias
Fundamento teórico

Observaciones

Conclusiones

Porcentaje %
Puntualidad

Link Drive

Total
5.1 5.2 5.3 5.4 6.1 6.2 6.3

REFERENCIA

https://arduinokitproject.com/max7219-dot-matrix-arduino-tutorial/

DOMINGO 20-10-2024 23:50 HRS


Anexo 1 Fecha 17/04/2023
ATS: Análisis de trabajo seguro Versión 1.0
Código ATS20V1
Curso: Tarea: Docente:
Ambiente: Grupo: Mesa: Fecha:
Integrantes (Apellidos y nombres) Firma Integrantes (Apellidos y nombres) Firma
1. 2.

3. 4.

Elementos de protección (Marque con aspa) Características de elementos de protección, equipos y herramientas

1. ____________________________________________________________
2. ____________________________________________________________
USO OBLIGATORIO DEL USO OBLIGATORIO DE BOTAS USO OBLIGATORIO DE USO OBLIGATORIO DE USO OBLIGATORIO DE USO OBLIGATORIO DE
CASCO DE SEGURIDAD AISLANTES GUANTES AISLANTES PROTECCIÓN OCULAR MASCARILLA PROTECTOR FACIAL

3. ____________________________________________________________
4. ____________________________________________________________
5. ____________________________________________________________
USO OBLIGATORIO DE APAGAR DESCONECTAR CUANDO USO OBLIGATORIO DE OBLIGATORIO CONECTAR A USO OBLIGATORIO DE TRAJE OTRO
PROTECCIÓN AUDITIVA NO SE USE PROTECTOR AJUSTABLE TIERRA DE SEGURIDAD

Acciones a realizar Otros riesgos en las acciones


(marque con aspa las advertencias por cada acción) a realizar, considerar
medidas de control

1.
1._________________________
2.
___________________________
3.
2._________________________
4.
___________________________
5.
3. _________________________
6.

También podría gustarte