Tal como habíamos prometido, en esta entrega de nuestro tutorial de programación de microcontroladores desarrollaremos paso a paso el circuito electrónico del cartel. Este diseño podrá tomarse como base para un cartel mayor o con otras características.
Nuestro cartel tiene fines meramente educativos, y la intención es gastar poco dinero para construirlo, así que intentaremos realizarlo en base a un microcontrolador pequeño. Si el lector necesita un cartel de mayor tamaño o con capacidad para almacenar textos o imágenes más extensos, deberá utilizar algún micro con mayor capacidad y velocidad. El tamaño de la memoria EEPROM externa es bastante grande, pero también puede ser ampliado con mucha facilidad.
Dividiremos el esquema electrónico del cartel en dos partes: en primer lugar veremos toda la lógica de control, y en segundo, la “pantalla” con el registro de desplazamiento. A la hora de llevarlo a la práctica puede incluso hacer dos circuitos impresos por separado. Esto le permitirá al lector experimentar con otros controladores sin necesidad de volver a montar la placa de los displays.
El circuito controlador:
Este es el cerebro de nuestro cartel. Sera el encargado de gestionar el encendido de cada LED mediante órdenes enviadas a las columnas (mediante el registro de desplazamiento que mencionamos en la nota anterior) y a las filas.
Como una fila tendrá 80 LEDs, que eventualmente pueden estar todos encendidos, no podemos conectarlas directamente a pines de E/S del PIC, por que la corriente que demandarían haría que el puerto del PIC se destruya. Para evitar esto, utilizaremos en medio un transistor capaz de manejar esa corriente.
Analicemos el circuito. El centro de todo es el microcontrolador 16F628A, que tiene su pin de RESET conectado a un pulsador y una resistencia de 10K. Este pulsador permite reiniciar el cartel cuando lo necesitemos. También se ha implementado un circuito de reloj externo, basado en un cristal de 4 MHz y dos condensadores de 22 nanofaradios. Esto le permite al PIC ejecutar un millón de instrucciones por segundo, más que suficientes para este proyecto.
Los pines 1 y 2, correspondientes a los bits A2 y A3 del micro, se han utilizado para acceder a una memoria EEPROM del tipo 24C256. Esta memoria es de acceso serial (por eso necesitamos solo dos pines), mediante el protocolo I2C, y tiene capacidad para almacenar 32768 Bytes. Si nuestro programa hace uso de ella, podemos guardar allí 32768 caracteres (con el display en modo texto) o más de 400 pantallas en modo gráfico. Si resultara insuficiente, puede ponerse una memoria de mayor capacidad, siempre consultando la hoja de datos de la misma para asegurarnos su compatibilidad con la del ejemplo.
Todo el puerto B del PIC está dedicado a controlar las filas del cartel. Como ya habrán notado, tenemos 8 salidas para filas, y nuestro cartel tiene solo 7 filas. Efectivamente, la fila 8 no se utilizara si nuestra “pantalla” está construida con módulos LED de 7×5, pero el circuito de control está preparado para el uso (en caso de que alguien los prefiera) de módulos de 8×8 o bien para crear un cartel de 8 filas mediante el uso de LEDs sueltos. Quienes utilicen módulos de 7×9 pueden ahorrarse el transistor de la fila 8.
Por último, los pines 17 y 18, correspondientes a los bits A0 y A1 del micro se encargan de la gestión del registro de desplazamiento. El programa deberá generar los pulsos de reloj necesarios por el pin 18, y “meter” los datos en el registro por el pin 17.
No hemos incluido una fuente de alimentación. Cualquier fuente comercial que sea capaz de entregar 5V y 2A será suficiente. Esos 5V deben estar bien regulados, y por supuesto, el software deberá estar escrito correctamente, es decir, no encender varias filas al mismo tiempo, ya que el consumo de todo el cartel encendido sería de unos 80 x 70 x 20mA = 11.2 A, destruyendo la fuente.
El display
Esta es la parte del proyecto que todo el mundo va a mirar, así que debemos ser prolijos al montarlo. Como puede verse en el esquema eléctrico, hemos utilizado un total de 10 circuitos integrados 74HC164N para construir el registro de desplazamiento de 80 bits de largo, uno para cada columna. Si alguien quiere hacer un cartel más largo o más corto, deberá poner más o menos integrados. Cada uno maneja 8 columnas.
Si miramos el esquema del display, veremos que en la parte superior se muestra como está conectado cada LED dentro de la matriz de 5×7. Esto es importante tenerlo en cuenta a la hora de comprar los módulos, ya que hay una gran cantidad de modelos, y la mitad de ellos tienen los LEDs conectados en el sentido inverso.
Cada display también difiere en la función de cada terminal, por lo que se debe estar a atento a la hoja de datos para diseñar el circuito impreso apropiado, y conectarlos como corresponda.
En el dibujo del circuito no hemos representado los 16 módulos ni los 10 circuitos integrados, por una cuestión de espacio, pero es fácil darse cuenta de qué forma se conectan las filas y columnas de los demás displays a cada 74HC164N.
No utilizaremos el pin de RESET de los 74HC164N. En lugar de ser controlados desde el microcontrolador, cada RESET está puesto a +5V, de forma que el integrado funcione continuamente. Si por algún motivo se desea borrar la pantalla, basta con enviar 80 “0”s al registro de desplazamiento y listo. El tiempo empleado para esa tarea es despreciable, ya que el microcontrolador estará ejecutando 1 millón de instrucciones por segundo. El utilizar una línea de control menos nos permitirá tener un PCB ligeramente más sencillo.
Cada salida de los 74HC164N, como dijimos, se conecta a una columna de la serie de displays . Esta conexión se efectúa mediante un resistor de 1/8 de watt, que en el esquema se ha dibujado con un valor de 330 ohm. Ese fue el valor adecuado para el tipo de módulos que conseguimos para hacer el prototipo, pero su valor variara de un modulo a otro. Se puede montar solo un display con resistores de 330 ohms, y ver como es el brillo de los LEDs. Si es escaso, se puede bajar el valor a 220 o 100 ohms. Con eso debería ser suficiente
En la próxima entrega, la última de este proyecto, veremos cómo utilizar el BASIC del PIC SIMULATOR IDE para programar el cartel.