byte contador;
// Definir los pines de los segmentos
int pines[] = {2, 4, 13, 14, 18, 21, 22};
// Definir los patrones de los dígitos (0-F) para ánodo común
byte valores[16] =
{
B0111111, // 0
B0000110, // 1
B1011011, // 2
B1001111, // 3
B1100110, // 4
B1101101, // 5
B1111101, // 6
B0000111, // 7
B1111111, // 8
B1101111, // 9
B1110111, // A
B1111100, // b
B1011000, // c
B1011110, // d
B1111001, // E
B1110001 // F
};
void setup()
{
Serial.begin(115200);
// Configurar los pines como salidas
for (int i = 0; i < 7; i++)
{
pinMode(pines[i], OUTPUT);
}
}
void loop()
{
// Contador de 0 a F
for (int i = 0; i < 16; i++)
{
displayDigit(i);
delay(500); // Esperar 1 segundo
}
}
void displayDigit(int numero)
{
// Obtener el patrón del dígito
contador = valores[numero];
// Encender los segmentos según el patrón
for (int i = 0; i < 7; i++)
{
digitalWrite(pines[i], bitRead(contador, i) ? LOW : HIGH);
}
}