// A B C D E F G DP Pin order
const byte segPins[8] {7, 6, 3, 4, 5, 9, 8, 2};
// binary mapping
const byte encode[] = {B111111, // 0
B110, // 1
B1011011, // 2
B1001111, // 3
B1100110, // 4
B1101101, // 5
B1111101, // 6
B111, // 7
B1111111, // 8
B1101111, // 9
B10000000, // .
B1110111, // A
B1111100, // b
B111001, // C
B1011110, // d
B1111001, // E
B1110001, // F
B1110110 // H
};
void decode(byte x, byte y = 0) {
for (byte c : segPins) {
digitalWrite(c, bitRead(x, y));
y++;
}
}
void setup() {
for (byte ssPin : segPins) pinMode(ssPin, OUTPUT);
}
void loop() {
// counter
for (byte z : encode) {
// turn off all segment
for (byte b : segPins) digitalWrite(b, LOW);
delay(77);
// start counting
decode(z);
delay(333);
}
// turn off all segment
for (byte b : segPins) digitalWrite(b, LOW);
delay(1111);
// SHOW DIGIT 8
decode(encode[8]);
delay(333);
// turn off all segment
for (byte b : segPins) digitalWrite(b, LOW);
delay(2222);
// SHOW DIGIT C
decode(encode[13]);
delay(333);
}
youtu.be/RXhgP0sfKwY