Documentos de Académico
Documentos de Profesional
Documentos de Cultura
5.1.-OBJETIVO:
5.2.-DESCRIPCIÓN GENERAL
La pantalla o display matricial de LEDs está compuesta por una Matriz LED
8x8 MAX7219 para Arduino (4 matrices) y consta de 4 matrices de 8x8 leds de
3mm multiplexados mediante el chip MAX7219.
https://www.picmicrolab.com/4-digit-led-dot-matrix-clock-arduino/
La siguiente imagen resume los mecanismos que podemos utilizar para alimentar
el Arduino
https://www.geekfactory.mx/tutoriales/tutoriales-arduino/
Podemos obtener los 5 volts del puerto USB de nuestra PC y/o de cualquier
otro dispositivo compatible con USB (como un televisor con puerto USB, por
ejemplo), de un adaptador de teléfono móvil con salida a USB o a través de
uno de los “cargadores de emergencia” disponibles también para teléfonos
móviles.
El puerto USB cuenta con un fusible PPTC que limita la corriente que el
arduino (y sus accesorios) pueden demandar del puerto USB. La corriente
máxima entonces queda limitada a unos 500 mA. Usualmente no podemos
cometer errores de polaridad ni de voltaje cuando usamos USB para alimentar.
Alimentación del arduino mediante cable USB
https://www.geekfactory.mx/tutoriales/tutoriales-arduino/
La etapa de control está conformada por la tarjeta Arduino Mega 2560 que
es una marca de microcontroladores mundialmente conocida por los amantes de
la electrónica, la programación y la robótica.
http://panamahitek.com/arduino-mega-caracteristicas
http://panamahitek.com/arduino-mega-caracteristicas
Microcontrolador: ATmega2560
Voltaje Operativo: 5V
SRAM: 8KB
EEPROM: 4KB
https://www.luisllamas.es/matriz-led-arduino-max7219/
Podemos combinar varios módulos para formar un display mucho mayor. En estos
display podemos mostrar textos, dibujos o animaciones, como desplazar un texto
(scroll).
https://www.luisllamas.es/matriz-led-arduino-max7219/
https://www.luisllamas.es/matriz-led-arduino-max7219/
La etapa de control está conformada por la tarjeta Arduino Mega 2560 que
es una marca de microcontroladores mundialmente conocida por los amantes de
la electrónica, la programación y la robótica.
Una matriz de LED está formada por diferentes LED, cableados de forma
conjunta por filas y columnas. Podemos encender un LED determinado de la
matriz aplicando correctamente los valores HIGH y LOW a su respectiva fila y
columna.
https://www.luisllamas.es/matriz-led-arduino-max7219/
https://howtomechatronics.com/tutorials/arduino/8x8-led-matrix-max7219-
tutorial-scrolling-text-android-control-via-bluetooth/
Por último, las propias placas MAX7219 generalmente incorporan un puerto
de entrada y salida, de forma que podemos combinar múltiples controladores sin
ninguna dificultad.
https://www.luisllamas.es/matriz-led-arduino-max7219/
INICIO
CONFIGURACIÓN
PA → OUT
PB → OUT
CARGAR LETRA 1
MOSTRAR
CORRER
CARGAR LETRA
MOSTRAR
CORRER
SUBRUTINA CARGA
B0 → F0
B1 → F1
B2 → F2
B4 → F4
B3 → F3
B5 → F5
SUBRUTINA MOSTRAR
F39,0 → RA0
F38,0 → RA0
F0,0 → RA0
Activar la fila 0
Desactiva la fila 0
5.3.4.- Programa de letra que se desplaza (scroll)
LedControl lc=LedControl(51,52,53,4);
byte dos[8]{
B00000000,
B01000011,
B10000101,
B10001001,
B10010001,
B01100001,
B00000000,
B00000000,
};
byte M0[8]{
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
};
byte M1[8]{
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
};
byte M2[8]{
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
};
byte M3[8]{
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
};
void setup() {
lc.shutdown(0,false);
lc.setIntensity(0,8);
lc.clearDisplay(0);
lc.shutdown(1,false);
lc.setIntensity(1,8);
lc.clearDisplay(1);
lc.shutdown(2,false);
lc.setIntensity(2,8);
lc.clearDisplay(2);
lc.shutdown(3,false);
lc.setIntensity(3,8);
lc.clearDisplay(3);
carga_inicial();
void loop() {
corrimiento();
void carga_inicial() {
M0[fila] = dos[fila];
void corrimiento() {
//lc.setColumn(0,7,M0[7]);
M3[0] = M3[1];
lc.setColumn(3,0,M3[0]);
M3[1] = M3[2];
lc.setColumn(3,1,M3[1]);
M3[2] = M3[3];
lc.setColumn(3,2,M3[2]);
M3[3] = M3[4];
lc.setColumn(3,3,M3[3]);
M3[4] = M3[5];
lc.setColumn(3,4,M3[4]);
M3[5] = M3[6];
lc.setColumn(3,5,M3[5]);
M3[6] = M3[7];
lc.setColumn(3,6,M3[6]);
M3[7] = M2[0];
lc.setColumn(3,7,M3[7]);
//delay(demora);
M2[0] = M2[1];
lc.setColumn(2,0,M2[0]);
M2[1] = M2[2];
lc.setColumn(2,1,M2[1]);
M2[2] = M2[3];
lc.setColumn(2,2,M2[2]);
M2[3] = M2[4];
lc.setColumn(2,3,M2[3]);
M2[4] = M2[5];
lc.setColumn(2,4,M2[4]);
M2[5] = M2[6];
lc.setColumn(2,5,M2[5]);
M2[6] = M2[7];
lc.setColumn(2,6,M2[6]);
M2[7] = M1[0];
lc.setColumn(2,7,M2[7]);
M1[0] = M1[1];
lc.setColumn(1,0,M1[0]);
M1[1] = M1[2];
lc.setColumn(1,1,M1[1]);
M1[2] = M1[3];
lc.setColumn(1,2,M1[2]);
M1[3] = M1[4];
lc.setColumn(1,3,M1[3]);
M1[4] = M1[5];
lc.setColumn(1,4,M1[4]);
M1[5] = M1[6];
lc.setColumn(1,5,M1[5]);
M1[6] = M1[7];
lc.setColumn(1,6,M1[6]);
M1[7] = M0[0];
lc.setColumn(1,7,M1[7]);
//delay(demora);
M0[0] = M0[1];
lc.setColumn(0,0,M0[0]);
M0[1] = M0[2];
lc.setColumn(0,1,M0[1]);
M0[2] = M0[3];
lc.setColumn(0,2,M0[2]);
M0[3] = M0[4];
lc.setColumn(0,3,M0[3]);
M0[4] = M0[5];
lc.setColumn(0,4,M0[4]);
M0[5] = M0[6];
lc.setColumn(0,5,M0[5]);
M0[6] = M0[7];
lc.setColumn(0,6,M0[6]);
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>
void setup() {
void loop() {
//int n = random(0,10);
int n = 0;
matrix.fillScreen(LOW);
letter--;
x -= width;
delay(wait);