// pin 21,22, 2, 4, 5,19,18
// dec a, b, c, d, e, f, g
// (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
#define PIN_DISPLAY_UNIDADES 21
#define PIN_DISPLAY_DECENAS 22,
#define PIN_LED_ROJO 14
#define PIN_LED_VERDE 23
const byte number_display[10] = {
0b0111111, //Número 0
0b0000110, //Número 1
0b1011011, //Número 2
0b1001111, //Número 3
0b1100110, //Número 4
0b1101101, //Número 5
0b1111101, //Número 6
0b0000111, //Número 7
0b1111111, //Número 8
0b1101111}; //Número 9
void mostrarDisplayUnidades(int number) {
byte arraybit = number_display[number];
for (int i = 0; i < 7; i++) {
int bit = bitRead(arraybit, i);
digitalWrite(PIN_DISPLAY_UNIDADES + i, bit);
}
}
void mostrarDisplayDecenas(int number) {
byte arraybit = number_display[number];
for (int i = 0; i < 7; i++) {
int bit = bitRead(arraybit, i);
digitalWrite(PIN_DISPLAY_DECENAS + i, bit);
}
}
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(PIN_DISPLAY_UNIDADES + i, OUTPUT);
pinMode(PIN_DISPLAY_DECENAS + i, OUTPUT);
}
pinMode(PIN_LED_ROJO, OUTPUT);
pinMode(PIN_LED_VERDE, OUTPUT);
}
void loop() {
// Temporizador inicial de 30 segundos
for (int dec = 30; dec >= 0; dec--) {
int unidades = dec % 10;
int decenas = dec / 10;
mostrarDisplayUnidades(unidades);
mostrarDisplayDecenas(decenas);
delay(1000);
}
// Mostrar luz verde
digitalWrite(PIN_LED_VERDE, HIGH);
delay(30000); // Esperar 30 segundos
// Apagar luz verde y encender luz roja
digitalWrite(PIN_LED_VERDE, LOW);
digitalWrite(PIN_LED_ROJO, HIGH);
delay(5000); // Esperar 5 segundos
// Apagar luz roja
digitalWrite(PIN_LED_ROJO, LOW);
}