Miguel Castañeda
/
matrizfunciones
secuencia en matriz 8x5 utilizando funciones
Funcionamiento de matriz 8X5 utilizando tarjeta NUCLEO-F446RE
Materiales:
- Tarjeta NUCLEO-FR446RE
- Matriz 8X5 LTP14158AG
- Jumpers
- Cable de conexión usb/miniusb
- Protoboard
Pines utilizados:
- PA_10 - fila 1
- PB_3 - fila 2
- PB_5 - fila 3
- PB_4 - fila 4
- PB_10 - fila 5
- PA_8 - fila 6
- PA_9 - fila 7
- PC_7 - fila 8
- PB_13 - columna 1
- PB_14 - columna 2
- PB_15 - columna 3
- PB_2 - columna 4
- PB_12 - columna 5
Procedimiento
- Se conectaron los pines de la matriz al pinout de la tarjeta utilizando los jumpers macho/hembra.
- Se conecto el cable de alimentación y de trasnferencia de datos.
- Luego con el código siguiente se compiló y se extrajo el archivo .bin que se copio a la carpeta de la tarjeta.
Ejemplo
Video del montaje con el programa
/media/uploads/miguelmstein/20170316_091733.mp4
- Nota: El código utiliza funciones para ahorrar lineas de código. Se puede mostrar en la matriz lo que se quiera que quepa en una matriz de LEDs de 8x5. Para modificar lo que se quiere mostrar se cambian los números en binario por lo que se quiere mostrar. El código siguiente muestra una secuencia regresiva de 5 a 0. Para cambiar el tiempo de cambio de imagen se modifica los valores de la variable t.
Diff: main.cpp
- Revision:
- 0:34b5fc3ae426
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Mar 16 14:31:16 2017 +0000 @@ -0,0 +1,70 @@ +#include "mbed.h" + +BusOut Rows (PA_10, PB_3, PB_5, PB_4, PB_10, PA_8, PA_9, PC_7); +BusOut Cols (PB_13, PB_14, PB_15, PB_2, PB_12); +#define WT 1 +void print_rows(unsigned char vr,unsigned char vc) +{ + Rows =vr; + Cols =vc; + wait_ms(WT); +} +void print_matrix(unsigned char r1,unsigned char r2, unsigned char r3, unsigned char r4, unsigned char r5) +{ + print_rows (r1,0b11110); + print_rows (r2,0b11101); + print_rows (r3,0b11011); + print_rows (r4,0b10111); + print_rows (r5,0b01111); +} +int t; +int main() { + +t=0; + while(1){ + + if(t<=200) + { + + print_matrix(0b10001111,0b10001001,0b10001001,0b10001001,0b01110001); // print 5 + } + else if(t>=201&&t<=400) + { + + print_matrix(0b00011000,0b00010100,0b00010010,0b11111111,0b00010000); // print 4 + } + else if(t>=401&&t<=600) + { + + print_matrix(0b10000001,0b10010001,0b10011001,0b10010101,0b01100011); // print 3 + } + else if(t>=601&&t<=800) + { + + print_matrix(0b10000010,0b11000001,0b10100001,0b10010001,0b10001110); // print 2 + } + else if(t>=801&&t<=1000) + { + + print_matrix(0b10000100,0b10000010,0b11111111,0b10000000,0b10000000); // print 1 + } + else if(t>=1001&&t<=1200) + { + + print_matrix(0b01111110,0b10000001,0b10000001,0b10000001,0b01111110); // print 0 + } + else if(t>=1201&&t<=1600) + { + + print_matrix(0b00101110,0b00101000,0b00111110,0b00001010,0b00111010); // print swastika + } + + else + { + } + t=t+1; + if(t>=1600) + t=0; + else{} + } +}