const int segPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
const int digitPins[] = {5, 4, 3, 2};
const byte charMasks[] = {
0b11101110, // A
0b00111110, // b
0b10011100, // C
0b01111010, // d
0b1001111, // E
0b1000111, // F
0b1011110, // G
0b1101101 // Z
};
const int charCount = sizeof(charMasks) / sizeof(charMasks[0]);
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(segPins[i], OUTPUT);
}
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT);
digitalWrite(digitPins[i], HIGH);
}
}
void loop() {
for (int i = 0; i < charCount; i++) {
for (int d = 0; d < 4; d++) {
digitalWrite(digitPins[d], HIGH);
}
for (int s = 0; s < 8; s++) {
bool bitVal = bitRead(charMasks[i], 7 - s);
digitalWrite(segPins[s], bitVal);
}
digitalWrite(digitPins[0], LOW);
delay(1000);
}
}