Un post sobre el display de 7 segmentos, su descripción, usos y la forma de lograr mostrar dígitos introducidos a Arduino por medio de comunicación serial.
El display de 7 segmentos es un componente que se utiliza para la representación de números, es muy común encontrarlos en dispositivos electrónicos debido a su simplicidad. Está compuesto internamente por una serie de LEDS estratégicamente ubicados de tal forma que forme un número 8.
A cada uno de los segmentos que forman el display se les denomina a, b, c, d, e, f y g y están ensamblados de forma que se permita activar cada segmento por separado consiguiendo formar cualquier dígito numérico. Muchas veces aparece un octavo segmento denominado p.d. (punto decimal).
Existen dos tipos de display de 7 segmentos:
- Ánodo común
- Cátodo común
Estructura de los dos tipos de display:
En los displays de tipo ánodo común, todos los ánodos de los LEDS están unidos internamente a una pata común que debe ser conectada a potencial positivo.
En esta ocasión utilizaremos el display de cátodo común. Éste tiene todos los cátodos de los diodos unidos internamente a una pata en común la cual se conecta a ground. El encendido de cada LED se realiza aplicando voltaje a la pata correspondiente a través de una resistencia.
Las 2 patas del medio del display serán conectadas al potencial positivo si se trata de un display de ánodo común y en nuestro como utilizamos un display de cátodo común éstas patas serán el ground.
En esta experiencia utilizaremos:
- Arduino Uno
- Display de siete segmentos (Cátodo común)
- 7 resistencias de 330 Ω
Cuando tenemos todos los materiales, procedemos a realizar las siguientes conexiones:
Abrimos Arduino IDE, y copiamos el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
int mensaje=0; void setup(){ Serial.begin(9600); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); } void display (int a, int b, int c, int d, int e, int f, int g)// Función del display { digitalWrite (2,a); digitalWrite (3,b); digitalWrite (4,c); digitalWrite (5,d); digitalWrite (6,e); digitalWrite (7,f); digitalWrite (8,g); } void loop(){ if (Serial.available()>0){ mensaje=Serial.read(); if (mensaje=='0'){ display (1,1,1,1,1,1,0); } if (mensaje=='1'){ display (0,1,1,0,0,0,0); } if (mensaje=='2'){ display (1,1,0,1,1,0,1); } if (mensaje=='3'){ display (1,1,1,1,0,0,1); } if (mensaje=='4'){ display (0,1,1,0,0,1,1); } if (mensaje=='5'){ display (1,0,1,1,0,1,1); } if (mensaje=='6'){ display (1,0,1,1,1,1,1); } if (mensaje=='7'){ display (1,1,1,0,0,0,0); } if (mensaje=='8'){ display (1,1,1,1,1,1,1); } if (mensaje=='9'){ display (1,1,1,0,0,1,1); } } delay(2000); } |
Utilizamos la función void display para establecer los parámetros que van a controlar el encendido de cada LED o segmento.
Con este conjunto de instrucciones podemos mostrar en el display cualquier número del 0 al 9 a través de una comunicación serial (ver Comunicación Serial con Arduino)
Después de cargar el código, entramos al monitor serial y escribimos cualquier número de un dígito.
Presionamos ENTER e inmediatamente podemos observar en el display el número que colocamos.
A continuación presentamos algunas imágenes del circuito físico:
Esperamos que la información suministrada sea de gran utilidad para ustedes.
Saludos.
esta muy bueno, pero a eso quiero adaptarle un moc con un triac (para que después de que termine la cuenta 1-9) el motor empise a girar automáticamente, me podria ayudar con eso es mi proyecto que estoy asiendo? GRACIAS.
Eso no es tan complicado. Habilita una salida digital al LED del MOC y con eso basta
Excelente, Edwin. Quiero hacer eso mismo pero que cada letra que ponga se despliegue en un display-7 diferente. ¿qué tarjeta me recomiendas? Saludos.
Me gustó mucho la explicación, ahora sólo queda hacerlo y ver que me funcione