const int segPins[] = {13, 12, 11, 10, 9, 8, 7, 6};
const int digitPins[] = {5, 4, 3, 2};
// Буквы A, b, C, d, E, F, G, H, I, J
const byte letterMasks[10] = {
0b11101110, // A
0b00111110, // b
0b10011100, // C
0b01111010, // d
0b10011110, // E
0b10001110, // F
0b10111110, // G
0b01101110, // H
0b01100000, // I
0b01110110 // J
};
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(segPins[i], OUTPUT);
}
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT);
}
}
void loop() {
for (int start = 0; start < 10; start++) {
unsigned long startTime = millis();
while (millis() - startTime < 1000) {
for (int d = 0; d < 4; d++) {
for (int i = 0; i < 4; i++) {
digitalWrite(digitPins[i], HIGH);
}
int letter = (start + d) % 10;
for (int s = 0; s < 8; s++) {
bool bitVal = bitRead(letterMasks[letter], 7 - s);
digitalWrite(segPins[s], bitVal);
}
digitalWrite(digitPins[d], LOW);
delay(3);
digitalWrite(digitPins[d], HIGH);
}
}
}
}