IMPLEMENTACIÓN DEL PROYECTO Con lo visto hasta ahora se tiene lo necesario para implementar el proyecto que consiste en crear una matriz de LEDs de 8x24 mostrando mensajes estáticos y cambiantes en el tiempo, utilizando para este fin la multiplicación en el tiempo. La implementación utilizara un microcontrolador PIC16F873A por su bajo costo y su versatilidad para los proyectos de este tipo, se usara un cristal de cuarzo de
4MHz con dos capacitores de 27pF según la tabla mencionada. Se usaran 3 registros de desplazamiento 74LS164N conectados en serie con las dos entradas de cada registro de desplazamiento cortocircuitadas para formar un registro de desplazamiento de una entrada serial y 24 salidas paralelas. Se usará también 3 matrices de LEDs integradas y compactas de 8x8, esta
selección tuvo como criterio el echo de que el proyecto trata del prototipo de una pantalla de LEDs real, el fin de este proyecto es explicar el principio de funcionamiento de estas pantallas, la parte económica paso a segundo plano pero sabe resaltar que este aspecto también influenció en la selección. El lenguaje de programación del PIC16F873A fue el C usando el compilador MPLAB, este lenguaje fue seleccionado ya que ofrece una facilidad enorme en comparación con el assembler, es un lenguaje de alto nivel y no necesita muchas
líneas para establecer funciones. Para quemar el PIC18F4550 se utiliza un PicKit2 como el siguiente:
PicKit2 con un cable USB para conexión con la PC
En la siguiente figura se muestra el proyecto implementado en protoboard:
Proyecto implementado en Protoboard, se resaltan en bloques cada com ponente.
ETAPA DE ALIMENTACION DEL CIRCUITO En este proyecto se utilizo un cargador de celular como fuente de energía, las características de esta pequeña fuente de poder son las siguientes:
Entrada 100-240v alterna, 50-60Hz, 0.15 A. Salida 5.0V continua constante, 700 mA.
Ahora se calcula la corriente que consume el circuito: gracias al multiplexado nunca debería haber mas de una fila encendida al mismo tiempo, que en el caso mas desfavorable tendría 24 LEDs encendidos. Cada LED consume unos 23mA (5v/220 ohms = 23mA), por lo que el consumo de la pantalla es de 23mA x 24 =
500mA aproximadamente, si a esto le sumamos el consumo de los registros y el PIC16F873A, el consumo total ronda los 650mA en el caso mas desfavorable. Si se desea realizar un diseño profesional en una PCB se deberá hacer una placa solo para la alimentación basándose en el regulador de voltaje LM7805, capaz de entregar 500mA sin disipador y hasta 1 A si se disipa correctamente. ETAPA DE CONTROL DEL CIRCUITO El PIC se encarga de generar los pulsos de Clock y Datos (pines 3 y 2 respectivamente) que son enviados a la etapa de multiplexación y muestreo. Si se desea realizar un diseño profesional hay que hacer una placa solo de control donde se conecta a cada línea del bus de datos un transistor para controlar las
corrientes de cada columna de las matrices de LEDs, en esta placa también se debe incluir el MAX232 y su respectiva configuración si se realizara la conexión via RS232 con la PC, si se utilizara una memoria también debería ir en esta parte de la placa son su respectiva configuración sea el caso de usar el protocolo SPI o I2C.
ETAPA DE MULTIPLEXACIÓN Y MUESTREO En esta etapa se encuentran los registros de desplazamiento 74LS164 conectados en serie y las matrices de LEDs conectadas a sus respectivos registros de desplazamiento, esta etapa esta encargada de la multiplexación en el tiempo,
recoge los datos del Clock y las matrices recogen los datos provenientes del bus de datos del PIC para controlar las columnas. Si se quiere aumentar el brillo de los LEDs se pueden cambiar las resistencias de 220 ohms por unas de 110 ohms asegurándose que el encendido de los LEDs no pase de unos milisegundos por vez para evitar su envejecimiento prematuro. Si se desea hacer un diseño profesional de esta etapa, hay que conectar cada registro de desplazamiento a un buffer en serie, el ULN2803/2003 para manejar
corrientes mas elevadas y no exigir demasiado a los registros de desplazamiento, en este caso el 74LS164N.
LA PROGRAMACIÓN DEL CIRCUITO
VISUALIZAR UN CARACTER Para visualizar un carácter, mostrar un pequeño dibujo u ofrecer cualquier símbolo en la pantalla se debe desmenuzar el análisis de funcionamiento y, de esa manera, se podrá comprender el concepto esencial que rige la mecánica de estas
pantallas de publicidad. Tomando un ejemplo, la letra F, se debe armar inicialmente un mapa dentro de la matriz, se debe establecer la forma de cómo se quiere mostrar, es decir, se debe hacer un trabajo previo necesario para lograr
mostrar un carácter, absolutamente todo las letras, números y símbolos deben mapearse para que al momento de querer mostrar dicho símbolo, solo tomarlo de una base de datos ya echa y jalarlo mediante funciones creadas en el PIC hacia
otra función principal que se mostro anteriormente y pasar los datos a las matrices y a los registros. Las columnas son controladas por el PIC mediante el bus de datos conformado por el puerto B, las filas son controladas por los registros de desplazamiento haciendo posible la multiplexación, en el siguiente grafico se muestra la asignación
de una variable B a cada columna y la variable de las filas depende de B, esto quiere decir que habrá cierta información en todas las columnas de la matriz
proveniente del bus de datos, esta información es del símbolo que se quiere mostrar, por cada habilitación de la fila correspondiente.
de las columnas a las que se les hacen llegar en el momento apropiado los datos que se quieren visualizar. Estos datos llegan de a uno por vez y se colocan en el lugar que le corresponde a cada uno dentro La imagen se forma por el “barrido”
del mapa de bits creado en forma previa. Al repetir el ciclo muchas veces en un segundo, la imagen dará la impresión de estar fija. Para que este efecto se logre con mejor resultado, interviene la inercia de encendido y apagado del LED, sumado a la velocidad de la visión en detectar los mencionados cambio de estado. La multiplexación es muy sencilla y se ejecuta dentro de la rutina de interrupción del timmer 0, se realiza de la siguiente manera:
Espera interrupción. Se deshabilitan las filas. Se manda por el bus de datos el valor de las columnas. Se habilita la primera fila. Espera interrupción. Se deshabilitan las filas. Se manda por el bus de datos el valor de las columnas. Se habilita la siguiente fila. Espera interrupción. …
Así se repite hasta llegar a la fila 8 y la columna 24, entonces la multiplexación
vuelve al principio y se vuelve a repetir. Ahora se creará paso a paso la letra R con el registro de desplazamiento y el PIC: Lo primero que hace la programación es poner el PIN de RESET de los registros en bajo y al mismo tiempo todos los niveles de tensión del bus de datos en nivel bajo para tener todas las salidas en bajo y con esto todos los LEDs de la pantalla apagados y listos para iniciar el muestreo (solo se mostrara con una matriz de 8x8, se entiende que para las demás será del mismo modo y así también para los
demás efectos del mensaje). Se mostrara con una palabra de 8 bits las filas y columnas habilitadas con el bit de
la izquierda como el menos significativo.
- ESTADO INICIAL DE LA MATRIZ: Filas: 00000000 Columnas: 00000000
- PRIMERA VISTA DE LA MATRIZ: Filas: 10000000 Columnas: 01111110
- SEGUNDA VISTA DE LA MATRIZ: Filas: 01000000 Columnas: 01111110
- TERCERA VISTA DE LA MATRIZ: Filas: 00100000 Columnas: 01100000
- CUARTA VISTA DE LA MATRIZ: Filas: 00010000 Columnas: 01111000
- QUINTA VISTA DE LA MATRIZ: Filas: 00001000 Columnas: 01111000
- SEXTA VISTA DE LA MATRIZ: Filas: 00000100 Columnas: 01100000
- SÉTIMA VISTA DE LA MATRIZ: Filas: 00000010 Columnas: 01100000
- OCTAVA VISTA DE LA MATRIZ: Filas: 00000001 Columnas: 01100000
Se entiende que los puntos negros son los LEDs que estaban encendidos en los estados anteriores y los rojos son lo que están encendidos en el estado actual, al
final se vera lo siguiente:
Una letra F formada mediante la multiplexación de filas de LEDs mediante un registro de desplazamiento y un PIC que genera el clock y el bus de datos. Si se requiere una matriz de LEDs de mayor tamaño, solo se agregan más registros de desplazamiento en serie y una matriz de 8x8 por cada registro.
CONCLUSIONES
Con esto se soluciona una de las limitaciones de los microcontroladores que seria el número limitado de pines de E/S que con ayuda de un registro de
desplazamiento y aplicando el principio de multiplexación en el tiempo se hace posible vencer esa barrera, un microcontrolador siempre necesitara de elementos extras para funcionar, ya sea drivers para elevar la potencia de las señales de salida, configuraciones correctas para cada tipo de sensor como los sensores encoders, los sensores ópticos, los sensores de temperatura, etc, asi como también para poder registrar señales negativas, estos problemas deben tener una
solución y es campo de investigación en la materia encontrar esas soluciones mediante circuitos de apoyo, en este caso un registro de desplazamiento. La programación de un microcontrolador tiene múltiples etapas, a estas etapas se les conoce como funciones, cada función debe estar bien definida para poder realizar un funcionamiento óptimo de la programación. Las condiciones de diseño brindadas en este informe deben seguirse al pie de la letra si se desea armar un circuito a nivel profesional, si bien se implemento un prototipo, este no podría funcionar por tiempos prolongados, como si lo hace una pantalla de LEDs comercial, así que se debe tener especial cuidado en el
consumo del circuito y la implementación de una fuente adecuada. El uso de un registro de desplazamiento puede ser muy útil en aplicaciones
comerciales como la de este proyecto, según sea el caso del letrero, estos registros son los indicados para solucionar los problemas de cantidad de pines de un microcontrolador, este proyecto le da un valor agregado y versatilidad a este tipo de registros de desplazamiento.