Introducción Matriz de LEDS de 7x32 En este proyecto veremos como diseñar y construir un display de diodos leds, que nos servirá de pantalla para exhibir textos o imágenes, fijas o animadas. Los usos son varios, desde un sofisticado modding en el gabienete de nuestro ordenador hasta su empleo como medio para exhibir mensajes o publicidad. Por supuesto, sus dimensiones pueden resultar insuficientes para algunos usos, pero es fácilmente expandible. La gran mayoría de los aficionados a la electrónica, tarde o temprano, se propone la construcción de un cartel basado en una matriz de diodos LEDs. El propósito de este artículo es explicar, de forma clara y sencilla, la forma de hacerlo. Un cartel formado por varias filas y columnas de LEDs, convenientemente programado, puede servir para pasar mensajes publicitarios, decorar nuestra habitación, ordenador o lo que se nos ocurra. No solo se trata de un proyecto más que interesante para llevarlo a cabo como hobbysta, sino que puede resultar interesante como un producto comercializable. Es que estas matrices, que en algunos países se las conoce como “cartel de LEDs” o “Publik”, son un recurso muy frecuentemente utilizado con fines publicitarios o informativos.
Descripción del proyecto Por ejemplo, un PIC16F876A de 28 pines dispone de 22 dedicados a funciones de E/S, y su hermano mayor, el PIC16F877A que cuenta con un total de 40 pines dedica 33 a estos menesteres. Habitualmente, con un número así de pines de control es posible resolver correctamente casi cualquier situación que se nos plantee, ya que normalmente en el diseño de un circuito de control basta con leer unos pocos pulsadores o sensores, y luego de realizar internamente algún proceso con esas señales, se actúan (o no) unas pocas cargas conectadas a sus salidas, generalmente mediante reles o interfaces de algún tipo. Sin embargo, hay caso concretos en que ningún PIC (o microcontrolador de otras familias) puede aportar en numero suficientes de E/S que permitan controlar todas las cargas conectadas a el, y se deben recurrir a circuitos de apoyo comandados mediante señales de control y utilizando un bus de datos. Uno de esos casos es el que nos ocupa en este articulo. En lo que respecta a las entradas y salidas (E/S), cada microcontrolador, al igual que cualquier computadora, dispone de un numero finito de ellas, y en general, se trata de un numero no demasiado elevado. Esta claro que si queremos formar una imagen mediante pixeles compuestos por LEDs individuales, harán falta un numero de líneas de control mucho mayor que las disponibles en cualquier microcontrolador. Nuestra pantalla será semejante a esos displays que seguramente habrán visto en algún comercio o local de servicios, en los que un texto realiza un scroll de derecha a izquierda, a una velocidad que permite la ilusión de un movimiento suave y continuo. Estas matrices de leds generalmente están conformadas por un cierto número de filas y de columnas.
Para permitir un texto legible, que represente claramente los caracteres correspondientes a las letras mayúsculas y minúsculas hacen falta unas 7 filas de alto, y si queremos que el display muestre unos 10 o 12 caracteres simultáneamente, necesitaremos unas 100 columnas. Si multiplicamos el numero de filas por las columnas, tendremos el numero de LEDs que hay presente en un display de este tipo. Con los valores que mencionábamos recién, vemos que se necesitan 700 LEDs para un display no muy complejo, y de un solo color. Si nos limitáramos a los medios “tradicionales” para encender o apagar cada LED del display, es decir, conectando cada uno de ellos a un pin de salida del PIC y encenderlos mediante 0 o 1 publicados en ese bit del puerto, nos harían falta un PIC con al menos 700 pines, algo que debemos descartar de plano por que no existe.
Multiplexado El termino “multiplexar” hace referencia a una técnica que permite aprovechar unas pocas líneas de datos para diferentes tareas, cambiando la función que cumplen a lo largo del tiempo. Un ejemplo podría ser un sistema de control de temperaturas de varios ambientes. Dado que la velocidad no es crucial, ya que en términos de milisegundos (o microsegundos) la temperatura casi no varía debido a la inercia térmica, se puede utilizar un único circuito que lea alternativamente cada sensor de temperatura. Esto evita la duplicación de circuitos y permite resolver el problema con una fracción de los recursos (pines I/O) disponibles. En el caso de este proyecto, la pantalla que construiremos esta formada por una matriz de 224 diodos LEDs distribuidos una matriz de 32 columnas por 7 filas. Estos valores se eligieron por ser casi los mínimos para lograr un display útil, ya que un carácter para ser legible necesita tener una altura de 5 o 7 píxeles, y un ancho como mínimo de 5. Con estas dimensiones, lograremos ubicar un texto de unos 5 o 6 caracteres, que opcionalmente puede irse desplazando por la matriz.