byte unidades = 0;
bool tipo_display = 1; //1: Anodo comun 0: Catodo comun
byte seven_seg_digits[11][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
{ 0, 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, 0, 0, 1, 1 }, // 9
{ 0, 0, 0, 0, 0, 0, 0 } // blank
};
int pins_unidades[7] = {6, 5, 4, 3, 2, 1, 0};
void write_digit(byte cifra) {
for (int i = 0; i < 7; i++) {
digitalWrite(pins_unidades[i], tipo_display ^ seven_seg_digits[cifra][i]);
}
}
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(pins_unidades[i], OUTPUT);
}
}
void loop() {
for (int i = 9; i >= 0; i--) {
write_digit(i);
delay(1000);
}
}