Display de 7
segmentos (1 dígito)
Introducción teórica
Un display de segmentos (o
visualizador) es un componente electrónico que se utiliza para representar
números. Como su propio nombre indica y, como se puede observar en la imagen
siguiente, el display está compuesto por 7 segmentos, los cuales se encenderán
y/o apagarán en función del número a representar. De forma interna, se asemeja
a siete LEDs conectados estratégicamente formando el número 8, aunque
externamente dicha semejanza no se observa, de ahí su simplicidad.
Cada uno de los segmentos que componen este display se denominan a, b, c, d, e, f y g, tal y como se muestra a continuación.
Para mostrar el número 0, tendremos que encender a, b, c, d, e y f.
Para el número 2, tendríamos a, b, g, e y d.
Y de la misma forma para cualquier otro número.
El P simboliza el punto decimal.
En cuanto a la clasificación, existen de dos tipos:
1. Display de segmentos de cátodo común, en la que todos los cátodos de los LEDs están internamente unidos a una patilla común, la cual está conectada al potencial negativo de la placa.
2. Display de segmentos de ánodo común, en la que todos los ánodos se encuentran al positivo.
Para nuestro caso, disponemos de uno de tipo cátodo común, el LMS5161AS (luz roja, tamaño de dígito 0.56'').
Conexiones
Segmento a - pin 7
Segmento b - pin 8
Segmento c - pin 9
Segmento d - pin 10
Segmento e - pin 11
Segmento f - pin 12
Segmento g - pin 13
Práctica de ejemplo
Vamos a realizar un ejemplo en el cual nuestro display irá mostrando de forma ascendente todos los números con un intervalo de separación de 1 segundo.
Aquí tenemos el sketch:
int pausa=1000; // Variable que define
el intervalo
// de tiempo entre cada
digito
void setup()
{
pinMode(7, OUTPUT); // Asignación de las salidas
digitales
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void display (int a, int b, int c, int d, int e, int f, int g)
// Función del display
{
digitalWrite (7,a); //Se reciben 7 variables y se asignan
digitalWrite (8,b); //a cada una de las salidas
digitalWrite (9,c);
digitalWrite (10,d);
digitalWrite (11,e);
digitalWrite (12,f);
digitalWrite (13,g);
}
void loop() //Función principal
// Dependiendo de cada dígito, se envía a la función display
// Los estados (0 y 1) a cada uno de los segmentos
{
display (1,1,1,1,1,1,0); //escribe 0
delay(pausa);
display (0,1,1,0,0,0,0); //escribe 1
delay(pausa);
display (1,1,0,1,1,0,1); //escribe 2
delay(pausa);
display (1,1,1,1,0,0,1); //escribe 3
delay(pausa);
display (0,1,1,0,0,1,1); //escribe 4
delay(pausa);
display (1,0,1,1,0,1,1); //escribe 5
delay(pausa);
display (1,0,1,1,1,1,1); //escribe 6
delay(pausa);
display (1,1,1,0,0,0,0); //escribe 7
delay(pausa);
display (1,1,1,1,1,1,1); //escribe 8
delay(pausa);
display (1,1,1,0,0,1,1); //escribe 9
delay(pausa);
}
Frank.
No hay comentarios:
Publicar un comentario