Ejercicio práctico: LEDS + Display 7 segmentos

 

Hoy te traemos un reto para ti.

Diseña un circuito electrónico con Arduino que integre un display de 7 segmentos y 9 LEDs. El objetivo es que el display muestre los números del 0 al 9, con un intervalo de 2 segundos entre cada número. Simultáneamente, los LEDs deben encenderse de manera progresiva en función del número que se muestra en el display.

Especificaciones:

  • Si el display muestra el número 0, ningún LED debe estar encendido.
  • Si el display muestra el número 4, deben encenderse 4 LEDs, uno tras otro, hasta completar el número.
  • El proceso debe repetirse para los números del 0 al 9.

El encendido de los LEDs debe seguir el mismo ritmo que la aparición de los números en el display, es decir, uno por cada segundo.

Ayuda: El diagrama de conexión está proporcionado, el código lo encontraras más abajo de la publicación.

Ejemplos:

 

Código:

const int A = 2;
const int B = 3;
const int C = 4;
const int D = 5;
const int E = 6;
const int F = 7;
const int G = 8;

const int led1 = 9;
const int led2 = 10;
const int led3 = 11;
const int led4 = 12;
const int led5 = 13;
const int led6 = A0;
const int led7 = A1;
const int led8 = A2;
const int led9 = A3;

void setup() {
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
}

void loop() {

  /*Número 0*/
  digitalWrite(A, 0);
  digitalWrite(B, 0);
  digitalWrite(C, 0);
  digitalWrite(D, 0);
  digitalWrite(E, 0);
  digitalWrite(F, 0);
  digitalWrite(G, 1);
  digitalWrite(led1, 0);
  digitalWrite(led2, 0);
  digitalWrite(led3, 0);
  digitalWrite(led4, 0);
  digitalWrite(led5, 0);
  digitalWrite(led6, 0);
  digitalWrite(led7, 0);
  digitalWrite(led8, 0);
  digitalWrite(led9, 0);
  /*Fin 0*/

  delay(2000);

  /*Número 1*/
  digitalWrite(A, 1);
  digitalWrite(B, 0);
  digitalWrite(C, 0);
  digitalWrite(D, 1);
  digitalWrite(E, 1);
  digitalWrite(F, 1);
  digitalWrite(G, 1);
  /*Fin1*/
  digitalWrite(led1, 1);

  delay(2000);

  /*Número 2*/
  digitalWrite(A, 0);
  digitalWrite(B, 0);
  digitalWrite(C, 1);
  digitalWrite(D, 0);
  digitalWrite(E, 0);
  digitalWrite(F, 1);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  /*Fin2*/

  delay(2000);

  /*Número 3*/
  digitalWrite(A, 0);
  digitalWrite(B, 0);
  digitalWrite(C, 0);
  digitalWrite(D, 0);
  digitalWrite(E, 1);
  digitalWrite(F, 1);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  /*Fin3*/

  delay(2000);

  /*Número 4*/
  digitalWrite(A, 1);
  digitalWrite(B, 0);
  digitalWrite(C, 0);
  digitalWrite(D, 1);
  digitalWrite(E, 1);
  digitalWrite(F, 0);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  digitalWrite(led4, 1);
  /*Fin4*/

  delay(2000);

  /*Número 5*/
  digitalWrite(A, 0);
  digitalWrite(B, 1);
  digitalWrite(C, 0);
  digitalWrite(D, 0);
  digitalWrite(E, 1);
  digitalWrite(F, 0);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  digitalWrite(led4, 1);
  digitalWrite(led5, 1);
  /*Fin5*/

  delay(2000);

  /*Número 6*/
  digitalWrite(A, 0);
  digitalWrite(B, 1);
  digitalWrite(C, 0);
  digitalWrite(D, 0);
  digitalWrite(E, 0);
  digitalWrite(F, 0);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  digitalWrite(led4, 1);
  digitalWrite(led5, 1);
  digitalWrite(led6, 1);
  /*Fin6*/

  delay(2000);

  /*Número 7*/
  digitalWrite(A, 0);
  digitalWrite(B, 0);
  digitalWrite(C, 0);
  digitalWrite(D, 1);
  digitalWrite(E, 1);
  digitalWrite(F, 1);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  digitalWrite(led4, 1);
  digitalWrite(led5, 1);
  digitalWrite(led6, 1);
  digitalWrite(led7, 1);
  /*Fin7*/

  delay(2000);

  /*Número 8*/
  digitalWrite(A, 0);
  digitalWrite(B, 0);
  digitalWrite(C, 0);
  digitalWrite(D, 0);
  digitalWrite(E, 0);
  digitalWrite(F, 0);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  digitalWrite(led4, 1);
  digitalWrite(led5, 1);
  digitalWrite(led6, 1);
  digitalWrite(led7, 1);
  digitalWrite(led8, 1);
  /*Fin8*/

  delay(2000);

  /*Número 9*/
  digitalWrite(A, 0);
  digitalWrite(B, 0);
  digitalWrite(C, 0);
  digitalWrite(D, 1);
  digitalWrite(E, 1);
  digitalWrite(F, 0);
  digitalWrite(G, 0);
  digitalWrite(led1, 1);
  digitalWrite(led2, 1);
  digitalWrite(led3, 1);
  digitalWrite(led4, 1);
  digitalWrite(led5, 1);
  digitalWrite(led6, 1);
  digitalWrite(led7, 1);
  digitalWrite(led8, 1);
  digitalWrite(led9, 1);
  /*Fin9*/

  delay(2000);
}

(0) Comentarios

No registra comentarios, se el primero en comentar.
Publicar

Pública tu duda o comentario

Resuelve tus dudas con la comunidad.

*Obligatorio*