Загрузка данных


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);
      }
    }
  }
}