// Array con los pines del ESP32 conectados al display de 7 segmentos
const int pines[7] = {2, 3, 4, 5, 6, 7, 8};
// Matriz que representa los valores del 0 al 9 para mostrar en el display (cátodo común)
// Cada fila es un número, y cada columna un segmento: a, b, c, d, e, f, g
const byte numeros[10][7] = {
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1} // 9
};
// Array con los dígitos que representan las letras de CAMILO: C=3, A=1, M=13 (1,3), I=9, L=12 (1,2), O=15 (1,5)
int digitos[] = {3, 1, 1, 3, 9, 1, 2, 1, 5};
// Variable para recorrer el array de dígitos
int i = 0;
void setup() {
// Configura cada pin conectado a un segmento como salida
for (int j = 0; j < 7; j++) {
pinMode(pines[j], OUTPUT);
}
}
void loop() {
// Toma el número actual del array
int num = digitos[i];
// Muestra el número encendiendo los segmentos correspondientes
for (int j = 0; j < 7; j++) {
// Enciende o apaga cada segmento según el número
digitalWrite(pines[j], numeros[num][j]);
}
// Espera 1 segundo antes de mostrar el siguiente número
delay(1000);
// Avanza al siguiente dígito del array
i++;
// Si llega al final del array, vuelve al inicio
if (i >= 9) i = 0;
}