Saludos!!! Hace ya mucho tiempo publique sobre una Matriz de LEDs 8x8 que realice y con ayuda del colega Julio quien aporto el firmware logro funcionar, en aquella ocasión no se coloco el código final, simplemente se compartió algunos fragmentos de un modo demostrativo para que se dieran cierta idea de como funcionaba, bueno ahora empezare con algunos ejemplos desde cero para que puedan hacer una matriz de LEDs.
Circuito:
Retomando parte del diagrama anterior y haciendo algunos cambios tenemos un circuito, y sera el que utilicemos en esta ocasión, les comento que en esta version no se usa un registro de corrimiento, por lo que se decidió usar un PIC18F25K22 (puede ser otro) para tener los suficientes pines y así poder controlar la matriz directamente, esto por facilidad y como dije iniciar desde cero, para las filas he usado transistores BC548 y para las columnas un ULN2803A (arreglo de transistores darlington), esto con el fin de no demandarle mucha corriente si conectaba los LEDs directamente a los pines del PIC, importante decir que he usado una matriz que arme en una tablilla universal hace mucho tiempo (pareciera que desemplovo mis chacharas cada que muestro algo), sin mas que decir el circuito usado es el siguiente:
Código:
El código que hace posible esto, es el siguiente:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* | |
* Matriz de LEDs 8x8: Mostrar carácter estatico | |
* | |
******************************************************************************* | |
* FileName: main.c | |
* Processor: PIC18F25K22 | |
* Complier: XC8 v1.42 & MPLAB X IDE v3.61 | |
* Author: Pedro Sánchez (MrChunckuee) | |
* Blog: http://mrchunckuee.blogspot.com/ | |
* Email: mrchunckuee.psr@gmail.com | |
* Description: Mostrar una imagen estatica en nuestra matriz de LEDs 8x8 | |
******************************************************************************* | |
* Rev. Date Comment | |
* v1.00 24/05/2017 Creación del ejemplo | |
******************************************************************************/ | |
#include <xc.h> | |
#include <stdbool.h> | |
#include "FUSES_Config.h" //Only here | |
#define _XTAL_FREQ 16000000 | |
unsigned char x; | |
//Caracter PacMan | |
const char ROW[8] = {0b00111100, | |
0b01000010, | |
0b10000001, | |
0b10100001, | |
0b10001001, | |
0b10010101, | |
0b10100101, | |
0b01000010}; | |
//Para hacer el barrido de las columnas | |
const char COL[8] = {0b00000001, | |
0b00000010, | |
0b00000100, | |
0b00001000, | |
0b00010000, | |
0b00100000, | |
0b01000000, | |
0b10000000}; | |
void MCU_Init(void); | |
void main(void) { | |
MCU_Init(); //Inicializamos sistema | |
while(true){ | |
PORTB = ROW[x]; //Mostramos | |
PORTC = COL[x]; //Hacemos barrido | |
__delay_ms(1); | |
x++;//Incrementamos ROW y COL | |
if(x>8) x=0;//No dejamos que pase de 8 | |
} | |
return; | |
} | |
void MCU_Init(void){ | |
//Puertos digitales | |
ANSELA = 0; | |
ANSELB = 0; | |
ANSELC = 0; | |
//Configura oscilador interno a 16MHz | |
OSCCONbits.IRCF=0b111; //El ciclo de instruccion es de 0.25 us | |
//Puertos como salida | |
TRISB = 0x00; | |
TRISC = 0x00; | |
//Limpiamos puertos | |
PORTB = 0x00; | |
PORTC = 0x00; | |
} |
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.
Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.
Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
0 Comentarios