Icono del sitio MECABOT

Práctica 19. Conteo regresivo con un visualizador de 7 segmentos

19.1  Objetivo General:

Mostrar un conteo regresivo utilizando un visualizador de 7 segmentos.

En la sección de Tutoriales->Arduino podrán encontrar todas las prácticas relacionadas con la tarjeta Arduino

IMPORTANTE:

La práctica 1 te enseña como encender y apagar un (1) solo LED. Consúltala antes de hacer esta práctica.

19.2  Materiales y Métodos:

  1. Un visualizador LED de 7 segmentos.
  2. Dos resistencias de 220Ω.
  3. Una tarjeta Arduino.
  4. Un cable USB impresora.
  5. Un computador.
  6. Cables para el montaje del circuito.
  7. Protoboard.

19.3  Montaje de la Práctica:

Antes de comenzar a la realización del montaje del circuito electrónico, primero se visualiza en  el programa TinkerCad. El circuito se muestra en la figura 1.

Figura 1 – Montaje del circuito para un visualizador de 7 LEDs.

Note que en la práctica se emplea un visualizador que consiste en un circuito constituido por 7 LEDs. El número a visualizar se consigue encendiendo y apagando cada LEDs. Por ejemplo, el número 8 se muestra cuando los 7 LEDs están encendidos.

Si recordamos de la práctica 1, 1 LED tiene dos puntas, una el anodo (+) y  el catodo (-). El caso del viualizador de 7 segmentos hay dos modelos. Uno donde el catodo de cada segmento van a un punto común, y otro donde los anodos se encuentran en un punto común. Esto es importante conocerlo por que en función del tipo de visualizador el circuito cambia.

El circuito de la figura 1 corresponde con el circuito donde el catodo es común. Un GND (-) común para los 4 LEDs superiores y un GND (-) común para los 3 LEDs inferiores. Aunque la señal enviada por la tarjeta arduino es baja y puede conectarse directamente a los LEDs, es recomendable incluir una resistencia eléctrica tal y como se muestra en la figura

Para encender los segmentos, lo que se debe hacer es enviar la señal digital desde la tarjeta arduino al pin  anodo del LED. La tabla 1 resume la secuencia de LEDs que debe encenderse, para el visualisador de catodo común, para mostrár uno de los números de 0 a 9. La tabla indica la variable que hay que activar la cual toma el nombre de la usada en el código. Por ejemplo, led2 es la variable constante y entera usada para activar el LED horizontal superior.

Tabla 1 Secuencia de LEDs para visualizar número
Número led2 led3 led4 led5 led6 led7 led8
0 1 1 1 1 1 1 0
1 0 1 1 0 0 0 0
2 1 1 0 1 1 0 1
3 1 1 1 1 0 0 1
4 0 1 1 0 0 1 1
5 1 0 1 1 0 1 1
6 1 0 1 1 1 1 1
7 1 1 1 0 0 0 0
8 1 1 1 1 1 1 1
9 1 1 1 1 0 1 1

 

19.3.1 Procedimiento de cómo llevar a cabo el codificado del programa:

Primero vamos a crear la subrutina funcNum(int x) que dado el número requerido (x entero) enciende la  secuencia de LEDs indicada en la tabla 1.

Código Principal.

// Práctica conteo regresivo con visualizador de 7 digitos
int const led2=2;
int const led3=3;
int const led4=4;
int const led5=5;
int const led6=6;
int const led7=7;
int const led8=8;
void setup(){
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
}
void loop(){
for(int i=9;i>-1; i--){
  funcNum(i);
  delay(1000);
  }
}
void funcNum(int x){
  switch (x){
   case 0://when count value is zero show”0” on disp
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, LOW);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    digitalWrite(8, HIGH);
  break;
   case 1:// when count value is 1 show”1” on disp
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    digitalWrite(8, HIGH);
   break;
   case 2:// when count value is 2 show”2” on disp
   digitalWrite(2, LOW);
   digitalWrite(3, HIGH);
   digitalWrite(4, HIGH);
   digitalWrite(5, HIGH);
   digitalWrite(6, LOW);
   digitalWrite(7, HIGH);
   digitalWrite(8, HIGH);
  break;
   case 3:// when count value is 3 show”3” on disp
   digitalWrite(2, HIGH);
   digitalWrite(3, HIGH);
   digitalWrite(4, LOW);
   digitalWrite(5, HIGH);
   digitalWrite(6, LOW);
   digitalWrite(7, HIGH);
   digitalWrite(8, HIGH);
   break;
   case 4:// when count value is 4 show”4” on disp
   digitalWrite(2, HIGH);
   digitalWrite(3, LOW);
   digitalWrite(4, LOW);
   digitalWrite(5, HIGH);
   digitalWrite(6, HIGH);
   digitalWrite(7, LOW);
   digitalWrite(8, HIGH);
   break;
   case 5:// when count value is 5 show”5” on disp
   digitalWrite(2, HIGH);
   digitalWrite(3, HIGH);
   digitalWrite(4, LOW);
   digitalWrite(5, HIGH);
   digitalWrite(6, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(8, LOW);
   break;
   case 6:// when count value is 5 show”5” on disp
   digitalWrite(2, HIGH);
   digitalWrite(3, HIGH);
   digitalWrite(4, HIGH);
   digitalWrite(5, HIGH);
   digitalWrite(6, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(8, LOW);
   break;
   case 7:// when count value is 5 show”5” on disp
  digitalWrite(2, HIGH);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(8, HIGH);
  break;
  case 8:// when count value is 8 show”8” on disp
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(8, HIGH);
  break;
  case 9:// when count value is 8 show”8” on disp
   digitalWrite(2, HIGH);
   digitalWrite(3, HIGH);
   digitalWrite(4, LOW);
   digitalWrite(5, HIGH);
   digitalWrite(6, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(8, HIGH);
  break;
break;
  }
}

Algoritmo 1: Código del programa conteo regresivo con visualizador de 7 segmentos.

Implementación del algoritmo 1 en el simulador TinkerCad:

https://www.tinkercad.com/things/77e2u6F7JPG

Si tuviste problemas haciendo la práctica, o tienes algún comentario te invitamos a comentar este post.

19.4 Conclusión:

En la práctica hemos aprendido como programar un visualizador LED de 7 segmentos. Además, hemos usado subrutinas para simplificar el código en el lazo principal. Tambien hemos empleado lazo for para visualizar un conteo regresivo de 9 a 0. La práctica puede ser desallorrada virtualmente en el enlace tinkercad indicado.

Si nuestro contenido te fue de utilidad, por favor considera dar tu apoyo a lo que hacemos:

Salir de la versión móvil