You are on page 1of 12

NOTA DE APLICACIN

AN-U003
Control de un display 7-segmentos de 3 dgitos
usando USBee

AN-U003

Naxus Sistemas Inteligentes


Cra. 84A #5 - 12
Cali, Colombia
www.naxuscolombia.com
contacto@naxuscolombia.com

Revisin 1.0

Pgina 2

AN-U003
ndice de contenido
1.INTRODUCCIN......................................................................................4
2.RECURSOS.............................................................................................4
3.DESCRIPCIN DEL MONTAJE.....................................................................5
4.DESCRIPCIN DEL SOFTWARE..................................................................6
5.CDIGO.................................................................................................7
6.BIBLIOGRAFA........................................................................................9

Revisin 1.0

Pgina 3

AN-U003
1. INTRODUCCIN
Los displays 7 segmentos son ampliamente utilizados para interfaces HMI
(Interfaces Humano-Mquina por sus siglas en ingls). Esta nota de
aplicacin describe el manejo de un display de 3 digitos de 7 segmentos
usando USBee. Se presentan las nociones generales sobre manejo de
dgitos 7 segmentos y se describe la librera 7seg.h que hace parte del
software desarrollado para USBee.

Figura 1: Display de 3
dgitos, 7 segmentos

2. RECURSOS
A continuacin se describen los recursos necesarios para realizar el
montaje:

Revisin 1.0

Tarjeta de desarrollo USBee.


Cable mini USB para programacin de USBee.
Tarjeta de prototipado rpido 7SEG (Figura 1) o en su defecto un
display de 3 dgitos 7 segmentos, nodo comn.

Pgina 4

AN-U003

3. DISPLAYS 7 SEGMENTOS
3.1 Generalidades
Los displays 7 segmentos estn conformados por un conjunto de LEDs en
una disposicin predefinida, que permite generar tanto caracteres
numricos como alfanumricos. La figura 2 ilustra la distribucin de estos
leds en un dgito 7 segmentos y la nomenclatura utilizada.

(a)

(b)

Figura 2: (a) LEDs que componen un display 7 segmentos, y (b) distribucin para un display de ctodo
comn

La figura 3 ilustra la generacin de caracteres numricos con un dgito 7


segmentos.

Figura 3: Generacin de caracteres numricos con un display 7 segmentos

Revisin 1.0

Pgina 5

AN-U003
Los displays 7 segmentos se pueden encontrar tanto de ctodo comn como
de nodo comn. La diferencia radica en la polaridad de las seales a, b, c,
d, e, f, g y DP que se debe utilizar para encenderlos. Un display 7
segmentos de ctodo comn las seales son activas altas, y se activarn
con 1 lgicos (tpicamente 5V), mientras que los de nodo comn tienen
seales activas bajas, lo que implica que se activan con 0 lgicos (GND o
tierra). La figura 4 ilustra ejemplos de conexin de displays 7 segmentos de
nodo comn y de ctodo comn.

(a)

(b)

Figura 4: Ejemplos de conexin para (a) nodo comn, y (b) ctodo comn

3.2 Identificacin de pines


Cuando se adquiere un display 7 segmentos, es comn no contar con la
hoja de datos del mismo, solamente se conoce si es de nodo o ctodo
comn. Una manera de identificar la disposicin de pines es utilizar un
multmetro funcionando en modo de probador de diodos. Si el display es de
nodo comn, site la punta negra en uno de los pines del display, y
comience a probar continuidad con la punta roja del multmetro los otros
pines. Verifique en qu momento se enciende uno de los LEDs del display.
Cuando uno se haya encendido, el pin que toque con la punta roja es el
nodo comn del dispositivo. En caso tal que no haya encendido ningn
LED, es probable que la punta negra est localizada justamente en el nodo
comn, as que cambie la ubicacin de la punta negra y comience el
procedimiento nuevamente. Para displays de ctodo comn el
procedimiento es idntico, slo utilice las puntas a la inversa: seleccione un
pin con la punta roja, y con la punta negra comience a probar continuidad
Revisin 1.0

Pgina 6

AN-U003
en los otros pines.

3.3 Displays 7 segmentos multiplexados


Existen displays 7 segmentos que incluyen ms de un dgito, como se
observa en la figura 5.

Figura 5: Display 7 segmentos de 3


dgitos

Generalmente los displays que disponen de ms de dos dgitos cuentan con


el bus de seales a-g (o bus de datos) multiplexado. Esto quiere decir que
los dgitos comparten el bus de datos y cuentan con otras seales para
activar cada dgito, que son los nodo o ctodo comn de cada dgito. Este
bus tambin se denomina bus de control. La figura ilustra mejor esta
configuracin.

Figura 6: Esquemtico de un display 7 segmentos de tres dgitos

Revisin 1.0

Pgina 7

AN-U003
Esto implica que se ahorran pines de conexin (un solo bus de datos para
todos los dgitos), aunque solamente se podr tener encendido un dgito al
tiempo, lo que pareciera ser una desventaja. Sin embargo, en este tipo de
configuraciones se aprovecha el hecho de que la visin humana retiene las
imgenes unos milisegundos. Esto quiere decir que, si se actualiza cada
dgito a una frecuencia ms rpida a la del ojo, engaaramos el sentido de
la vista hacindole creer que los tres dgitos estn encendidos al mismo
tiempo. Si la frecuencia de actualizacin de los dgitos est muy cercana a
la que el ojo puede detectar, notaremos un parpadeo en el display. Si
aumentamos esta frecuencia, el parpadeo desaparece. Justamente esta
configuracin es la que se aprovechar en esta nota de aplicacin.

4. DESCRIPCIN DEL MONTAJE


Las siguientes imgenes ilustran la conexin requerida para probar el
programa de ejemplo, ya sea utilizando la tarjeta de prototipado rpido
7SEG o un display 7 segmentos de nodo comn. El pinout del display
utilizado es descrito en la figura.

Figura 7: Pinout del display de 3


dgitos 7 segmentos utilizado

Como se puede observar, el bus de datos est en color naranja y el bus de


control en color violeta. Se requiere del uso de transistores PNP (Ej:
2N3906) en el caso de que no se utilice la tarjeta 7SEG. No se han
conectado resistencias al montaje ya que las salidas de USBee permiten
conexin directa de LEDs. Sin embargo si es importante limitar el uso de
corriente, disponga de sus respectivas resistencias a las lneas.

Revisin 1.0

Pgina 8

AN-U003

Figura 8: Conexin de un display de 3 dgitos 7 segmentos de nodo comn

Figura 9: Conexin de la tarjeta 7SEG que incluye un display de 3 dgitos 7 segmentos de nodo
comn

Revisin 1.0

Pgina 9

AN-U003
5. DESCRIPCIN DEL SOFTWARE
Para el control del display 7 segmentos se utilizarn las libreras USBee
<7seg.h> y la rutina de retardos <util/delay.h>, disponible en avr-libc [2].
A continuacin se describen brevemente las funciones de la librera 7seg.h.
FUNCIN

DESCRIPCIN

d7seg_init

Rutina que se encarga de configurar el hardware utilizado


para el control del display 7 segmentos. Se recomienda
configurar inicialmente el archivo de cabecera 7seg.h,
para cambiar el puerto de conexin del display,
especficamente los valores de D7SEG_PORT, D7SEG_EN y
D7SEG_EN1, D7SEG_EN2 y D7SEG_EN3. Recibe como
parmetro el valor inicial

d7seg_put

Rutina que actualiza el nmero a mostrar en el display.


Como parmetro recibe el nmero en cuestin.

d7seg_error

Rutina que muestra en el display la palabra "Out".

d7seg_refresh

Rutina que debe ser


refrescar el display.

llamada

constantemente

para

Para mayor informacin sobre la librera y sus funciones, remitase a la


documentacin Doxygen de la misma.

6. CDIGO
A continuacin se presenta el cdigo utilizado para el ejemplo. Los archivos
se
pueden
conseguir
en
la
siguiente
URL:
http://ww.naxuscolombia.com/productos/tarjetas-de-desarrollo/an-u003/.
Ejemplo:

main-7seg.c
/***************************************************************
*
NAXUSSISTEMASINTELIGENTES
*
*NotadeaplicacionANU003:Controldeundisplay7segmentos
Revisin 1.0

Pgina 10

AN-U003
*
*Copyright20102011
**************************************************************/
#include<avr/io.h>
#include"7seg.h"
intmain(void)
{
//val es la variable de cuentas ydeb la que permite implementar el
antireboteporsoftware
unsignedcharval=0,deb=0;

//inicializaciondeldisplay
d7seg_init(0);

//laentradaPB3lautilizaremosparaleerlospulsos.Porlotantose
configuracomoentrada.
PORTB&=~(1<<PB3);

//Muestraelmensaje"Out"

d7seg_error();

while(1)
{
//sillegaunpulso
if(PINB&(1<<PB3))
{
//sistemaantirebote
if(!deb)
{
val++;
deb=1;
//actualizaelvaloramostrareneldisplay
d7seg_put(val);
}
}
else
deb=0;

//Estafuncionsedebeestarllamandoconstantemente,yaquees
laencargadadeactualizareldisplay

d7seg_refresh();
}
return1;
}

Revisin 1.0

Pgina 11

AN-U003
7. BIBLIOGRAFA
1. "Display
7
segmentos"
[online]http://es.wikipedia.org/wiki/Visualizador_de_siete_segmentos
2. "7
segment
display"
[online]
http://en.wikipedia.org/wiki/Sevensegment_display

Revisin 1.0

Pgina 12

You might also like