/* ПРОГРАММА ТЕСТИРОВАНИЯ 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);
}
}
}