huborarduino.com

La web de Hubor para la simulación de Arduino con Proteus

Banner Guia Programacion Arduino Con Proteus

[Proteus versión 8.1]

En la lección de hoy vamos a abordar la utilización de un display de 7 segmentos desde nuestro ARDUINO .

El display de 7 segmentos es un dispositivo de salida que se utiliza para la representacion de valores numéricos. Su nombre proviene de su construcción basada en la utilización de siete leds con unas determinadas formas y conexiones internas, estratégicamente ubicados de tal forma que forman el número '8' y, opcionalmente, con un octavo led para el punto decimal.

Lec21 001

Cada uno de los segmentos que forman la pantalla están marcados con las ocho primeras letras del alfabeto ( de la 'a' a la 'g'), y se montan de forma que permiten activar cada segmento por separado, consiguiendo formar cualquier dígito numérico. En el caso de que incluyan el punto decimal, éste diodo se nombra como DP.

Lec21 002

Estos dispositivos de pueden encontar en dos configuraciones posibles, según los pines de los leds que tengan unidos: ánodo común o cátodo común. 

Para comprender el funcionamiento de un display de siete segmentos de cátodo común, vamos a utilizar el siguiente montaje:

Lec21 003

Puesto que se trata de un dispositivo con el cátodo común, hemos puesto a tierra el pin común. A cada uno de los otros pines les hemos conectado una resistencia de 220 ohms en serie con un interruptor y conectado al potencial de +5V. Actuando sobre cada uno de los pulsadores podemos ver cómo se enciende el segmento correspondiente. En la imagen siguiente vemos como se ilumina el segmento 'e' al cerrar el interruptor correspondiente.

Lec21 004

Cómo es lógico, si cerramos los interruptores correspondientes a los segmentos a,b,c,d y g tendremos representado el número 3.

Lec21 005

Y de la misma forma, se pueden representar el resto de números.

Cuando utilicemos un dispositivo de ánodo común, el funcionamiento será similar, con la única excepción de que tendremos que alimentar el pin común con los +5V y realizar el montaje de resistencias e interruptores unidos a tierra.

Lec21 006

El principal inconveniente de la utilización de los displays de 7 segmentos es que necesitan un gran número de líneas para su gobierno. Un control directo de un display de siete segmentos desde nuestro ARDUINO supondría utilizar siete pines (ocho si contamos el punto decimal) para gobernar un solo dispositivo.

Con una sencilla operación de multiplicación podemos comprobar que es imposible utilizar cuatro dísplays de 7 segmentos desde nuestro ARDUINO porque necesitaríamos 28 pines.

Por eso, la solución habitual es utilizar integrados que nos ayudan a reducir el número de pines utilizados de nuestro ARDUINO para gobernar los displays de 7 segmentos. En el siguiente montaje podemos ver la utilización de un integrado 4511 para gobernar un display del tipo cátodo común utilizando sólo cuatro pines.

Lec21 007

El 4511 es un decodificador BCD a 7-Segmentos de bajo coste (existen versiones que cuestan unos pocos céntimos de euro). Recibe la información del dígito a mostrar en codificación octal (4 bits) a través de los cuatros pines denominados A,B,C y D. Gobierna los siete segmentos del display por medio de los siete pines de salida marcados como QA a QG.

El pin rotulado LT (lamp test) sirve para hacer una prueba de lámpara, es decir, que si conectamos este pin a tierra se iluminan los 7 segmentos y podemos comprobar que todos funcionan correctamente. Para un funcionamiento normal lo debemos conectar a +5V.

El pin rotulado BL (blank) sirve para inhabilitar el display y que se queden todos los segmentos apagados. Para inhabilitar el display debemos conectarlo a tierra y para que funcione normalmente conectarlo a +5V.

Por último, el pin rotulado LE (latch enable) permite congelar el display mostrando un determinado valor escrito en los pines de entrada del integrado. Su uso se realiza con la siguiente secuencia de trabajo. Ponemos el pin LE a tierra, utilizamos los pines A, B, C y D para indicar el número a mostrar en código octal y ponemos el pin LE a +5V. Mientras el pin LE esté conectado a +5V se ignorarán todos los cambios que se produzcan en los pines A, B, C y D manteniendo el mismo valor mostrado en el display. 

Más tarde veremos un ejemplo de uso de este pin para gobernar más de un display desde nuestro ARDUINO utilizando el menor número de pines posible. 

Por ahora, vamos a conectar nuestro integrado 4511 como se mostraba en la última figura.

El código que ejecutaremos en nuestro ARDUINO para mostrar un contador incremental de 0 a 9 con un nuevo incremento cada segundo se muestra a continuación.

Lec21 008

Lec21 009

El programa utiliza las funciones iniTemp() y chkTmp() que ya vimos en lecciones anteriores y que sirven para controlar la ejecución de las líneas de código convenientes cada segundo.

Utilizamos una matriz llamada digitos, de 10 x 4 posiciones, para codificar las diez cifras en octal y facilitar la activación y desactivación de las cuatro salidas que utilizamos para controlar el integrado 4511. Usamos la variable Contador para almacenar el número a mostrar en cada nuevo ciclo.

Al combinar el uso de la matriz digitos con la variable contador, resulta sencillo escribir el código necesario para mostrar la cifra indicada en cada bucle activando las salidas correspondientes para cada nuevo número a mostrar con unas sencillas instrucciones if..else por cada una de los cuatro pines de entrada del integrado 4511.

El resultado es un contador incremental en el display de siete segmentos.

Lec21 015

 

Lec21 016

Veamos ahora como podemos controlar cuatro displays con sólo ocho pines de nuestro ARDUINO utilizando el pin LE de cada integrado 4511. El esquema de conexionado de los cuatro displays se muestra en la siguiente imagen.

Lec21 010

El código de nuestro nuevo programa se muestra a continuación.

Lec21 011

Lec21 012

Lec21 013

Lec21 014

El funcionamiento es muy similar al código que ya vimos para controlar un único display.

La diferencia principal radica en que utilizamos cuatro pines para controlar el pin LE de cada uno de los integrados 4511 y que nuestra variable contador ahora se ha convertido en una matriz de cuatro posiciones para contener ahora los cuatro dígitos de nuestro contador.

Con la utilizanción de los pines LE podemos compartir los mismos cuatro pines de salida de nuestro ARDUINO para enviar la información del dígito que queremos mostrar en cada uno de los cuatro displays.

Como se puede observar la técnica consiste en activar el pin LE del integrado 4511 que gobierna el display que nos interesa excitar, escribir el código octal de la cifra a mostrar en ese display y volver a desactivar el pin LE. Y repetir esta operación para cada uno de los otros tres conjuntos de integrado y display que utilizamos para cada uno de los tres dígitos restantes.

De esta manera cada integrado 4511 se encarga de mantener el display que controla con el digíto que deseamos mostrar mientras utilizamos los mismos pines de salida para ir enviando la información al resto de los integrados.

Gracias a esta técnica, con sólo ocho pines podemos gobernar cuatro displays de siete segmentos. Además este código nos otorga una ventaja adicional. El tiempo de carga de trabajo de nuestro ARDUINO es muy limitado, puesto que con ayuda del uso de las funciones temporales, sólamente tenemos ocupado al microcontralador unos pocos milisegundos cada ciclo de escritura. De esta manera podemos utilizar displays de siete segmentos para mostrar información del proceso controlado por nuestro ARDUINO dejando a éste libre para realizar otras tareas de control.

El programa es un contador incremental con una frecuencia de un segundo empezando en el número 987 (el número desde el que comienza la cuenta se configura en las líneas del código 42 a 45).

Lec21 017

Como siempre, esperamos que esta lección os haya resultado interesante y que encontréis aplicaciones para el uso de displays de 7 segmentos dentro de vuestros proyectos.

 

Comparte este artículo en redes sociales

Submit to FacebookSubmit to Google PlusSubmit to TwitterSubmit to LinkedIn


Esta página es propiedad de Hubor.

2014.

¡Atención! Este sitio usa cookies y tecnologías similares. Si no cambia la configuración de su navegador, usted acepta su uso. Ampliar información