Trabajo Final - Panel Led 8x40
Trabajo Final - Panel Led 8x40
Trabajo Final - Panel Led 8x40
En este proyecto se explicara como disear y construir una matriz de diodos LED de 8x40, que servir de pantalla para exhibir textos o imgenes, fijas o animadas. Los usos son varios, desde un sofisticado adorno como adorno de dormitorio hasta su empleo como medio para exhibir mensajes o publicidad. Por supuesto, sus dimensiones pueden resultar insuficientes para algunos usos, pero es fcilmente expandible. Un cartel formado por varias filas y columnas de LED, convenientemente
programado, puede servir para pasar mensajes publicitarios, decorar una
habitacin, ordenador, etc. No solo se trata de un proyecto ms que interesante para llevarlo a cabo como electrnico, sino que puede resultar interesante como un producto comercializable. Es que estas matrices, que en algunos pases se las conoce como cartel de LED o Publik, son un recurso muy frecuentemente utilizado con fines publicitarios o informativos.
OBJETIVOS
El presente proyecto tiene los siguientes objetivos: Explicar el funcionamiento de una matriz de LED de 8x8. Disear, dependiendo de la necesidad del tamao, una matriz de LED. Condiciones de diseo para el uso de una matriz de LED. Mostrar el funcionamiento del registro 74LS164.
Conectar un registro de desplazamiento en serie cuando se requiere
ampliar la cantidad de datos de salida en paralelo. Explicar la multiplexacin en el tiempo. Explicar de forma bsica la estructura del pic18f4550. Explicar de forma bsica como programar un microcontrolador. Mostrar el lenguaje de programacin C. Condiciones de diseo para el uso de un microcontrolador. Solucionar una de las limitaciones que tienen los microcontroladores.
Lista de Componentes:
1. 5 protoboard
2. Pic 18F4550
4. 5 integrados 74LS2164N
6. Capacitores de 15 F.
leer unos pocos pulsadores y/o sensores y luego de realizar internamente algn
proceso con esas seales, se actan (o no) sobre unas pocas cargas conectadas
a sus salidas, generalmente mediante rels o interfaces de algn tipo. Sin embargo, hay casos concretos en que ningn PIC (o microcontroladores de
otras familias) puede aportar el numero suficiente de E/S que permitan controlar
todas las cargas conectadas a el, si este es el caso se deben recurrir a circuitos de apoyo comandados mediante seales de control y utilizando un bus de datos. Uno de esos casos es el que se ocupa en este proyecto. En lo que respecta a las E/S de cada PIC, al igual que cualquier computadora, dispone de un nmero finito de ellas, y en general, se trata de un nmero no demasiado elevado. Esta claro que si queremos formar una imagen mediante
pixeles compuestos por LEDs individuales, harn falta un nmero de lneas de
control mucho mayor que las disponibles en cualquier PIC. El proyecto consiste en la implementacin de un prototipo de pantalla de LEDs comunes en centros comerciales o locales de servicios, en los que un texto realiza un scroll de derecha a izquierda, a una velocidad que permite la ilusin de un movimiento suave y continuo. Estas matrices de LEDs generalmente estn conformadas por un cierto nmero de filas y columnas. Para permitir un texto legible, que represente claramente los caracteres
correspondientes a las letras maysculas y minsculas hacen falta unas 8 filas de alto y si requiere que la pantalla muestre unos 3 caracteres simultneamente, se
que hay presente en la pantalla de este proyecto, con los valores mencionados se requiere controlar 96 LED. Si se limita el diseo del circuito a mtodos tradicionales para encender o apagar
cada LED de la pantalla, es decir, conectando cada uno de ellos a un pin de salida
del PIC y encenderlos mediante 0 o 1 bit de salida en cada puerto, hace falta un PIC de al menos 96 pines, algo que se debe descartar porque no existe.
Una solucin posible es utilizar varios PIC conectados entre si, de manera que
cada uno maneje por ejemplo dos o tres columnas y mediante algn protocolo se
enven mensajes entre ellos para mostrar la parte del texto que le corresponde, esta alternativa tiene mas posibilidades de xito, pero cuenta con el problema de una programacin compleja y un costo elevado, ya que se necesitan unos 3 PIC
MULTIPLEXACIN
El termino multiplexar hace referencia a una tcnica que permite aprovechar
unas pocas lneas de datos para diferentes tareas, cambiando la funcin que
REGISTRO DE DESPLAZAMIENTO
Un registro de desplazamiento es una configuracin circuital muy utilizada,
generalmente para convertir un flujo de datos en forma serial a uno del tipo
paralelo, motivo por el cual a menudo los chips encargados de esta tarea son llamados conversores serie-paralelo.
Por supuesto, es posible construir un registro de este tipo a partir de componentes
discretos, aunque en la prctica resulta no solo inapropiado por cuestiones de tamao y velocidad, sino tambin econmicas, ya que un chip como el utilizado en este proyecto rara vez superan el valor de S/5.00.
La manera de entender conceptos nuevos es apoyndose en analogas con temas que sean familiares y es lo que se har en este caso, se utilizar como ejemplo el
funcionamiento de una cola, como la de un banco. Se supone que dos tipos de personas pueden formar parte de una cola. Estos dos tipos de personas son las que se ven en la figura siguiente, y es imposible confundir una con otra. Las llamaremos "0" (el "gordito) y "1" (al mas flaco).
La cola que se usar como ejemplo tiene 8 lugares, que se enumeran del 0 al 7, pero nada impide trabajar con colas mas largas, por lo que todo lo que se vea aqu se puede generalizar para colas de cualquier longitud.
Otra particularidad de la hipottica cola es que nunca puede estar vaca. Todas
sus posiciones tienen que estar ocupadas, ya sea por gorditos o flacos. En el estado inicial, la cola se encuentra completamente llena de gorditos, como se ve a continuacin:
La cola funciona como cualquier cola de la vida real: cuando alguien nuevo llega a la fila, se coloca en el lugar que se encuentra mas atrs, que en este caso corresponde a la posicin 0. Como la cola tiene una longitud mxima (en este ejemplo) de 8 posiciones, para hacer lugar al recin llegado, es necesario que todos los que estaban en la fila avancen una posicin. El que estaba en la
posicin 0 pasa a la 1, el que estaba en la posicin 1 pasa a la 2 y as hasta llegar
...y ocupa el ultimo lugar, desplazando a todos los dems una posicin. El primero "sale" de la fila.
Si continuaran ingresando personas en la fila, el proceso se repetira con cada nuevo integrante que llegue. Como el que entra primero es el primero en salir, a este tipo de colas se les llama FIFO, por First Input, First Output (Primero que entra, primero que sale).
Con estas cuestiones en mente se puede comprender el funcionamiento de los registros de desplazamiento. Ahora se hace la suposicin que se requiere que en
la cola haya dos flacos en los primeros lugares, luego un gordo, otra vez dos flacos, luego otro gordo y por ltimo dos flacos mas (como siempre, 8 personas en total). Se sabe que cada persona que ingresa empuja a todos una posicin a la
derecha, si se quiere que el que termine ocupando el extremo derecho de la cola
sea un flaco, ese ser el que primero debe entrar. Siguiendo el razonamiento anterior, los personajes deberan entrar en la fila en el orden siguiente:
Este es el estado final de la fila, con los integrantes originales desplazados hacia la derecha.
Poniendo fin a la analoga, tendramos que lo integrantes de la hipottica cola son los 0s y 1s (o estados altos y bajos) de los circuitos, es decir, los datos. La cola en si es el registro de desplazamiento. Cuando se supona que el estado inicial de la cola eran 8 gordos, se estaba queriendo decir que al alimentar el circuito, todas las salidas estarn en 0 o en estado bajo. Hay una salvedad y es la existencia del Clock. Efectivamente, en un circuito real, los datos pasan al registro de desplazamiento con cada pulso de Clock, se puede
pensar en este Clock como si se tratase de un maestro de ceremonias, que da
en estado bajo, sin necesidad de ingresar 8 ceros seguidos, esto permite limpiar rpidamente el registro de desplazamiento. Cuando se dice rpidamente se hace referencia a que como la velocidad de los
pulsos de Clock no puede ser infinita (tpicamente el mximo ronda los 10 o 20MHz) y cada dato demora el tiempo de un pulso de Clock en desplazarse por el
registro, introducir 8 0s llevara 800nseg. (100nseg. x 8 bits), contra los 100nseg. que demora en aplicarse el RESET. No obstante, para obtener los tiempos exactos implicados se debe consultar la hoja de datos del integrado que se utiliza, ya que lo limites varan incluso con la tensin de alimentacin y temperatura.
EL 74LS164N
Este interesante circuito integrado de la familia TTL viene en diferentes sabores, de acuerdo a la velocidad, temperatura de operacin, voltajes y corrientes soportadas, etc. Dichas caractersticas dependen de las letras entre el 74 y el 164.
Desde el punto de vista tcnico, dentro de este integrado se encuentra un registro de desplazamiento completo, de 8 bits de largo. Esto significa que se comporta
como un conversor serie-paralelo, en el que se introducen pulsos de Clock por un pin (CP) y datos en serie por otro (dos en realidad, unidos por una compuerta AND, cuyas entradas son DSA y DSB). Las 8 salidas toman los
estados indicados por el tren de datos de la entrada. Dispone de un pin (el 9) que
realiza la funcin de poner en cero todas las salidas (Reset, MR en el esquema de
abajo).
Los pines 1 y 2 son la entrada de datos. Como se mencion antes, internamente existe una compuerta AND que realiza el producto lgico de los valores de ambas
entradas. En general, se unen entre si para que el resultado de la funcin AND sea igual al valor del dato (ver compuertas lgicas) o bien se pone una de las
entradas en alto (conectndola a +5V) para que la otra entrada sea la que determine el valor de la salida. Cualquiera de las dos formas es vlida. Por
supuesto, existen aplicaciones donde se obtienen datos de dos fuentes distintas,
en cuyo caso se conectar una entrada de la compuerta a cada una. Los pulsos de Clock entran por el pin 8. Los datos de la entrada se reflejan en la salida con cada transicin bajo-alto del reloj.
Los pines 3, 4, 5, 6, 10, 11, 12 y 13 son (en ese orden) las salidas.
Ejemplo de conexin.
En caso de necesitar un registro de desplazamiento ms largo, se utiliza ms circuitos integrados (uno por cada 8 bits de largo del registro). Simplemente se deben unir entre si todos los terminales de Clock y Reset (para que funcionen al mismo tiempo) y la ultima salida de uno con la entrada del siguiente, de manera que cada dato que se "desborda" de uno circuito se hace presente en la entrada del siguiente.
de LED comprada o construir una usando 32 LED separados. Las siguientes imgenes ilustran las diferencias entre ambas opciones.
manera aceptable y con un resultado acorde a la programacin del PIC que se utilice para activarlos, en cambio, desde el punto de vista constructivo, las diferencias son notables y lo que se torna favorable en algunos casos puede ser perjudicial en otros. Por ejemplo: el diseo compacto, la facilidad de conexin y rendimiento deseado son factores que inclinan la balanza hacia el modulo integrado de 64 LEDs que aparece en la imagen izquierda. Sin embargo, cuando necesitamos un tamao no convencional o fuera de los estndares de fabricacin, la construccin a partir de LEDs individuales pasa a ser una necesidad. Sea la eleccin que se tome, lo que se debe saber a ciencia cierta es como se trabaja con estas pantallas transmisoras de informacin, es decir, se debe saber de antemano que se esta buscando: un arreglo de filas y columnas en orden. Si se realiza un diseo con las matrices compactas se debe tener cuidado en posicionar las filas y las columnas ya que estn no estn en el orden esperado, lo que si se tiene en las matrices artesanales, en el siguiente grafico se plasma lo dicho:
ORGANIZACIN DE MEMORIA: El uC PIC18F4550 dispone de las siguientes memorias: Memoria de programa: memoria flash interna de 32.768 bytes Almacena instrucciones y constantes/datos Puede ser escrita/leda mediante un programador externo o durante la ejecucin programa mediante unos punteros. Memoria RAM de datos: memoria SRAM interna de 2048 bytes en la que estn incluidos los registros de funcin especial. Almacena datos de forma temporal durante la ejecucin del programa Puede ser escrita/leda en tiempo de ejecucin mediante diversas instrucciones.
Memoria EEPROM de datos: memoria no voltil de 256 bytes. Almacena datos que se deben conservar aun en ausencia de tensin de alimentacin Puede ser escrita/leda en tiempo de ejecucin a travs de registros Pila: bloque de 31 palabras de 21 bits Almacena la direccin de la instruccin que debe ser ejecutada despus de una interrupcin o subrutina Memoria de configuracin: memoria en la que se incluyen los bits de configuracin (12 bytes de memoria flash) y los registros de identificacin (2 bytes de memoria de solo lectura).
4MHz con dos capacitores de 27pF segn 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 tambin 3 matrices de LEDs integradas y compactas de 8x8, esta
seleccin 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 econmica paso a segundo plano pero sabe resaltar que este aspecto tambin influenci en la seleccin. El lenguaje de programacin del PIC16F873A fue el C usando el compilador MPLAB, este lenguaje fue seleccionado ya que ofrece una facilidad enorme en
comparacin con el assembler, es un lenguaje de alto nivel y no necesita muchas
lneas para establecer funciones. Para quemar el PIC18F4550 se utiliza un PicKit2 como el siguiente:
ETAPA DE ALIMENTACION DEL CIRCUITO En este proyecto se utilizo un cargador de celular como fuente de energa, las caractersticas de esta pequea 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 debera haber mas de una fila encendida al mismo tiempo, que en el caso mas desfavorable tendra 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 diseo profesional en una PCB se deber hacer una placa solo para la alimentacin basndose 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 multiplexacin y muestreo.
Si se desea realizar un diseo profesional hay que hacer una placa solo de control donde se conecta a cada lnea del bus de datos un transistor para controlar las
corrientes de cada columna de las matrices de LEDs, en esta placa tambin se debe incluir el MAX232 y su respectiva configuracin si se realizara la conexin via RS232 con la PC, si se utilizara una memoria tambin debera ir en esta parte de la placa son su respectiva configuracin sea el caso de usar el protocolo SPI o I2C.
ETAPA DE MULTIPLEXACIN 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 multiplexacin 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 asegurndose que el encendido de los LEDs no pase de unos milisegundos por vez para evitar su envejecimiento prematuro. Si se desea hacer un diseo 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.
VISUALIZAR UN CARACTER
Para visualizar un carcter, mostrar un pequeo dibujo u ofrecer cualquier smbolo
en la pantalla se debe desmenuzar el anlisis de funcionamiento y, de esa manera, se podr comprender el concepto esencial que rige la mecnica 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 cmo se
quiere mostrar, es decir, se debe hacer un trabajo previo necesario para lograr
mostrar un carcter, absolutamente todo las letras, nmeros y smbolos deben mapearse para que al momento de querer mostrar dicho smbolo, solo tomarlo de
una base de datos ya echa y jalarlo mediante funciones creadas en el PIC hacia
otra funcin 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 multiplexacin, en el siguiente grafico se muestra la asignacin
proveniente del bus de datos, esta informacin es del smbolo que se quiere mostrar, por cada habilitacin de la fila correspondiente.
La imagen se forma por el barrido 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
del mapa de bits creado en forma previa. Al repetir el ciclo muchas veces en un segundo, la imagen dar la impresin 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 visin en detectar los mencionados cambio de estado. La multiplexacin es muy sencilla y se ejecuta dentro de la rutina de interrupcin del timmer 0, se realiza de la siguiente manera: Espera interrupcin. Se deshabilitan las filas. Se manda por el bus de datos el valor de las columnas. Se habilita la primera fila. Espera interrupcin. Se deshabilitan las filas. Se manda por el bus de datos el valor de las columnas. Se habilita la siguiente fila. Espera interrupcin.
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 programacin es poner el PIN de RESET de los registros en bajo y al mismo tiempo todos los niveles de tensin 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 dems ser del mismo modo y as tambin para los
Se entiende que los puntos negros son los LEDs que estaban encendidos en los
estados anteriores y los rojos son lo que estn encendidos en el estado actual, al
Una letra F formada mediante la multiplexacin 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 tamao, solo se agregan ms 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 nmero limitado de pines de E/S que con ayuda de un registro de
desplazamiento y aplicando el principio de multiplexacin 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 seales de salida, configuraciones correctas para cada tipo de sensor como los sensores encoders, los sensores pticos, los sensores de temperatura, etc, asi como
tambin para poder registrar seales negativas, estos problemas deben tener una
solucin y es campo de investigacin en la materia encontrar esas soluciones mediante circuitos de apoyo, en este caso un registro de desplazamiento. La programacin de un microcontrolador tiene mltiples etapas, a estas etapas se les conoce como funciones, cada funcin debe estar bien definida para poder realizar un funcionamiento ptimo de la programacin. Las condiciones de diseo 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 podra funcionar por tiempos prolongados, como si lo hace una
pantalla de LEDs comercial, as que se debe tener especial cuidado en el
comerciales como la de este proyecto, segn 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.
BIBLIOGRAFIA
Fundamentos de Sistemas Digitales Floyd Sistemas Digitales Tocci http://www.ucontrol.com.ar/wiki/index.php?title=Matriz_de_LEDS_de_7x32 http://www.neoteo.com/matriz-de-led-8x8 http://www.neoteo.com/matriz-de-led-8x8-parte-ii