PIC18F25K83 & XC8: Multiplexing outputs (Parte B) - Controlar 12 LEDs con 4 salidas


Saludos! Retomando mi anteior post "PIC18F25K83 & XC8: Multiplexing outputs (Parte A) - Controlar 6 LEDs con 3 salidas" he decidido ampliar los LEDs, por lo tanto he agregadado una salida mas, asi que segun la formula del documento podemos conectar hasta 12 LEDs.

Circuito:
El circuito utilizado es el siguiente, seguire usando el 18F25K83 para este proposito, cabe mencionar que si deseamos tener mas salidas (LEDs) yo recomendaria usar algun integrado especifico o registro de corrimiento (hay algunos que usan protocolos como I2C y pues hasta usan menos pines, aunque eso incremente el costo de tu circuito pero ya decidiras dependiendo de tu diseño).  


Código:
Para el codigo he decidido solo configurar la tabla de verdad en donde se encarga de encender cada LED, la tabla es la siguiente:


Como habia dicho antes el inconveniente de esta forma de controlar los LEDs, era cuando requeria encender dos o mas al mismo tiempo, asi que decidi actualizar la rutina de los LEDs "MCU_SetOut(uint8_t Out)" a un tiempo muy bajo (1 ms con ayuda del TMR0 e interrupciones), por lo tanto cada rutina de actualizacion dura en total 13ms.

Nota: El tiempo debe ser corto para que visualmente los LEDs no esten parpadeando. Con este metodo disminuye un poco el brillo por la velocidad a la que se hace el encendido pero creo que es tolerable para el poco hardware que estamos usando. 

Para los LEDs he declarado las variabes tipo bool siguientes:
bool LED1_Status =  0;
bool LED2_Status =  0;
bool LED3_Status =  0;
bool LED4_Status =  0;
bool LED5_Status =  0;
bool LED6_Status =  0;
bool LED7_Status =  0;
bool LED8_Status =  0;
bool LED9_Status =  0;
bool LED10_Status = 0;
bool LED11_Status = 0;
bool LED12_Status = 0;
Por lo tanto si deseamos encender algun LED o LEDs en especifico, basta con ponerlo en estado alto en alguna seccion de tu rutina.

Vídeo:
Aquí un pequeño vídeo del circuito en funcionamiento:


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.

Links:

Publicar un comentario

0 Comentarios