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);
}
Pública tu duda o comentario
Resuelve tus dudas con la comunidad.
(0) Comentarios
No registra comentarios, se el primero en comentar.
Publicar