int numeros[10][7] = {{1, 1, 1, 1, 1, 1, 0}, // Representación de los números del 0 al 9 en un display de 7 segmentos
{0, 1, 1, 0, 0, 0, 0},
{1, 1, 0, 1, 1, 0, 1},
{1, 1, 1, 1, 0, 0, 1},
{0, 1, 1, 0, 0, 1, 1},
{1, 0, 1, 1, 0, 1, 1},
{1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 1, 1}};
int pines1[] = {15, 2, 4, 5, 18, 19, 21}; // Declaracion de pines para las unidades del display
int pines2[] = {13, 12, 14, 27, 26, 25, 33}; // Declaracion de pines para las decenas del display
int decena = 0, Pot = 32; // Variable para el valor de las decenas y potenciómetro
void setup() {
// Configura los pines para los segmentos de las unidades
for (int pin : pines1) {
pinMode(pin, OUTPUT);
}
// Configura los pines para los segmentos de las decenas
for (int pin : pines2) {
pinMode(pin, OUTPUT);
}
Serial.begin(115200); // Inicia la comunicación serial
pinMode(Pot, INPUT); // Configura el pin del potenciómetro como entrada
}
void loop() {
int Time = map(analogRead(Pot), 0, 4095, 200, 1500); // Lee el valor del potenciómetro y lo mapea a un rango de tiempo
Serial.println(Time); // Muestra el tiempo en el monitor serial
// Ciclo para mostrar los números de 0 a 9 en las unidades
for (int j = 0; j < 10; j++) {
for (int i = 0; i < 7; i++) {
digitalWrite(pines1[i], numeros[j][i]); // Activa los segmentos correspondientes para mostrar el número
}
delay(Time); // Espera el tiempo determinado
}
decena++; // Incrementa el valor de las decenas
// Muestra el número correspondiente a las decenas
for (int i = 0; i < 7; i++) {
digitalWrite(pines2[i], numeros[decena][i]); // Activa los segmentos correspondientes para mostrar el número
}
delay(Time); // Espera el tiempo determinado
// Si llega a 10, reinicia las decenas a 0
if (decena == 10) {
decena = 0;
for (int i = 0; i < 7; i++) {
digitalWrite(pines2[i], numeros[decena][i]); // Muestra el número 0 en las decenas
}
}
}