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


// Пины для сегментов A, B, C, D, E, F, G, DP (подключите их по порядку от D2 до D9)
const int segPins[] = {2, 3, 4, 5, 6, 7, 8, 9};

// Пины для разрядов (общие катоды D10-D13)
const int digitPins[] = {10, 11, 12, 13};

// Таблица истинности для цифр от 0 до 9 (1 — включить сегмент, 0 — выключить)
// Порядок сегментов: A, B, C, D, E, F, G, DP
const byte digits[10][8] = {
  {1, 1, 1, 1, 1, 1, 0, 0}, // 0
  {0, 1, 1, 0, 0, 0, 0, 0}, // 1
  {1, 1, 0, 1, 1, 0, 1, 0}, // 2
  {1, 1, 1, 1, 0, 0, 1, 0}, // 3
  {0, 1, 1, 0, 0, 1, 1, 0}, // 4
  {1, 0, 1, 1, 0, 1, 1, 0}, // 5
  {1, 0, 1, 1, 1, 1, 1, 0}, // 6
  {1, 1, 1, 0, 0, 0, 0, 0}, // 7
  {1, 1, 1, 1, 1, 1, 1, 0}, // 8
  {1, 1, 1, 1, 0, 1, 1, 0}  // 9
};

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); // Выключаем разряды (HIGH для общего катода)
  }
}

void loop() {
  // Перебираем цифры от 0 до 9
  for (int num = 0; num < 10; num++) {
    
    // Включаем все 4 разряда (для общего катода подаем LOW)
    for (int d = 0; d < 4; d++) {
      digitalWrite(digitPins[d], LOW);
    }
    
    // Зажигаем соответствующие сегменты
    for (int s = 0; s < 8; s++) {
      digitalWrite(segPins[s], digits[num][s]);
    }
    
    // Пауза 1 секунда
    delay(1000);
  }
}