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


/* ПРОГРАММА ТЕСТИРОВАНИЯ LED семисегментного индикатора 1 разряд */

// список выводов Arduino для подключения к разрядам a-g, dp
int pins[8] = {2, 3, 4, 5, 6, 7, 8, 9};

// значения для вывода цифр и букв
byte numbers[31] = {
  B00111111, B00000110,  // 0 1
  B01011011, B01001111,  // 2 3
  B01100110, B01101101,  // 4 5
  B01111101, B00000111,  // 6 7
  B01111111, B01101111,  // 8 9

  B10000000, B00000000,  // горит точка, все сегменты выключены

  B01110011, B01111100,  // буквы a, b
  B00111001, B01011110,  // буквы c, d
  B01111001, B01110001,  // буквы e, f
  B00111101, B01110110,  // буквы g, h
  B00000110, B00011110,  // буквы i, j
  B00111000, B01010100,  // буквы l, n
  B01011100, B01110011,  // буквы o, p
  B01010000, B01101101,  // буквы r, s
  B01111000, B00011100,  // буквы t, u
  B01101110               // буква y
};

// переменная для хранения значения текущей цифры
int number = 0;

void setup() {
  // Сконфигурировать контакты как выходы
  for (int i = 0; i <= 7; i++) {
    pinMode(pins[i], OUTPUT);
  }
}

void loop() {
  showNumber(number);
  delay(500);
  number = (number + 1) % 31;
}

// функция вывода цифры на семисегментный индикатор
void showNumber(int num) {
  for (int i = 0; i <= 7; i++) {
    if (bitRead(numbers[num], i) == HIGH) {
      // зажечь сегмент
      digitalWrite(pins[i], HIGH);
    }
    else {
      // потушить сегмент
      digitalWrite(pins[i], LOW);
    }
  }
}