|

Articulos relacionados

En linea

Hay 16 invitados 

Iniciar sesion




Designed by:
SiteGround web hosting Joomla Templates
7sd - Display 7 segmentos Imprimir Correo electrónico
Valoración de los usuarios: / 5
PobreEl mejor 
Escrito por Maxi Padulo   
Jueves 07 de Mayo de 2009 16:56

Resumen

En este proyecto explica el diseño y el funcionamiento de un display de 15 caracteres con dígitos LED de 7 segmentos, que permite mostrar mensajes provenientes desde un PIC o desde la PC.

Introduccion

Hace un tiempo que venía buscando algún diagrama para construir un HitCounter (contador de visitas) con LEDs de 7 segmentos. Desafortunadamente no encontré ninguno que tuviera lo que yo quería asi que decidí diseñarlo yo mismo.

Display LED 7 segmentosLa ventaja de usar LEDs de 7 segmentos para mostar letras o números es que son baratos y fáciles de conseguir, consumen pocos miliamperes y para mi gusto son muy copados.

Mi idea era armar un array con un puñado de estos bichitos uno al lado del otro, y transmitirles algún mensaje desde la PC para poder mostrar estadísticas del servidor web y no tener que dejar el monitor prendido todo el tiempo.

Otra cosa que no quería era mutliplexar los dígitos, que es lo que hacen la mayoría de los displays y que bajo ciertas circunstancias parece como si los digitos temblaran o saltaran uno al lado del otro dándole un mal aspecto al display.

Diseño.

El 7sd tiene un diseño modular, que permite ir encastrando varios módulos para lograr la cantidad y la disposición de dígitos deseada.

Cada módulo consiste en 15 dígitos de 7 segmentos manejados directamente por registros de desplazamiento (shift register), los cuales estan encadenados entre sí.

Los displays que usé son: BC56-11 EWA (eran los más baratos) y los registros de desplazamiento son los conocidos CD4094. Algo que deben tener en cuenta si piensan fabricarlo es conseguir todos los 4094 de la misma marca ya que entre una marca y otra las características electricas pueden variar haciendo que algunos dígitos brillen más que otros.

El circuito se alimenta con 5 voltios, los cuales se obtienen fácilmente de la fuente del PC (cables Rojo (+5v) y Negro (GND)).

Los datos se transmiten por un puerto serie, o por puerto USB usando el adaptador correspondiente. La adaptación de voltaje RS-232 (-15v = 1, +15v = 0) la realicé simplemente con un diodo y una resistencia que actua como pull-down. Lo que hay que tener en cuenta es que de esta forma obtenemos los datos en lógica negativa mientras que los registros de desplazamiento trabajan con lógica positiva. Para socavar esto desde el software debemos simplemente aplicarle una función XOR con máscara OxFF a todos los bytes de salida para invertir la lógica.

Construcción.

La placa es un rectángulo de 19cm x 5,4cm, posee 526 agujeros y 5,76 metros de pistas.

Diseño 7sd

Para fabricar la placa usé una placa de epoxi doble fáz con el método de transferencia térmica. Realmente la fabricación y el montaje de la placa terminó siendo bastante complicado ya que circuito tiene una densidad de pistas y componentes muy alta para la fabricación casera.

PCB transferencia térmicaPCB atacado ácidoPCB listaPCB impresion láserperforando agujerosensamblado displayprobando el circuitoterminando el armado7sd terminado

Funcionamiento.

El puerto serie de la PC esta controlado por un chip que se llama UART (Universal Asynchronous Receiver/Transmitter). Este circuito integrado (generalmente el 16550 originalmente fabricado por National Semiconductor) se encarga de transmitir los bytes que le enviamos desde el PC a través de la línea de transmisión (RS-232 u otra).

UARTCada vez que enviamos un byte por el puerto serie, la UART se encarga de agregarle el bit de arranque y el bit de parada los cuales son necesarios para una transmisión asincrónica.

Podemos configurar la UART para que no use bit de parada, pero el bit de arranque es estrictamente necesario para una comunicación serial asincrónica por lo cual no lo podemos quitar.

Los registros de desplazamiento funcionan de forma síncrona. Necesitan una señal (llamada reloj o clock) que les indica que tienen un bit listo para leer en la línea de datos.Si quisieramos mandarle datos de forma asincrónica a los registros de desplazamiento no entenderían nada ya que obviamente no tienen ni idea de lo que es un bit de arranque y menos un bit de parada, y tampoco tendríamos una señal de reloj que estuviera en sincronismo con los datos.

Para convertir una comunicación asincrónica en sincrónica necesitamos algun dispositivo intermediario. Podría implementarse por ejemplo con un microcontrolador.

Pero aquí viene la parte más interesante. Para no tener que usar un microcontrolador (para que el diseño fuese lo mas económico y sencillo posible) la idea es utilizar dos de las líneas de control (DTR - Data Terminal Ready y RTS - Ready To Send) disponibles en la UART para transmitir datos en una y la señal de reloj en la otra. Irónicamente la idea la descubrí haciendo reverse a un programador de microcontroladores PIC el cual funciona de forma similar a lo que acabo de describir.

Como son líneas de control podemos modificar su estado a nuestro antojo. De esta forma implementé la comunicación sincrónica. Tambíen se le dió uso a la línea de datos asincrónico (Tx) para enviar un pulso a la línea de strobe del CD4094 luego de finalizar la transmision de los datos.

Para poder mostrar letras en los 7 segmentos usé una codificación binaria de la fuente que diseño Harvey Twyman, específicamente diseñada con 7 segmentos (curiosamente el autor dice poseer 2 records Guinness con esa fuente).

El software que controla el display consiste en un demonio que corre en linux, y se encarga de realizar los efectos visuales al mostar los mensajes. Para diseñar e implementar el programa le pedí a Julian que me diera una mano y al final lo desarrollo él casi en forma íntegra y le incorporó tambien algunas ideas propias. Hizo muy buen trabajo.

Fin de la historia.

El display que fabriqué como prototipo lo uso constantemente para mostrar estadísticas del servidor que tengo en casa.

Mostrando % uso de CPU Mostrando cantidad de visitantes Vista nocturna

Uno de estos displays se colocó en la cartelera del LINSI (UTN-FRLP) para pasar mensajes e información de último momento a travéz de internet.

Si tuviera un poco mas de tiempo y dinero haría un par más de éstos porque me encantan.

Descargas.

Lista de componentes.

Esquemático para PROTEUS.

Circuito listo para transferir PDF (Tamaño A4).

Código fuente del driver Linux (contactar a Julian Perelli - Ver información de contacto).

Última actualización el Viernes 25 de Septiembre de 2009 01:47
 

Escribir un comentario


Código de seguridad
Refescar