const int A = 8;
const int B = 7;
const int C = 6;
const int D = 5;
const int E = 4;
const int F = 3;
const int G = 2;
const int D4 = 13;
const int D3 = 12;
const int D2 = 11;
const int D1 = 10;
//Розділяю піни на окремі масиви для сегментів, щоб потім було зручно використовувати
const int segments[] = {A, B, C, D, E, F, G};
const int digits[] = {D1, D2, D3, D4};
//Створюю паттерни (заготовки) для наших цифр. Вони будуть автоматично вмикати потрібні нам сегменти
const int digitPatterns[10][7] = {
{0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0}, // 9
};
//Обране число
int num = 1234;
//Напругу ставимо в режим виходу
void setup(){
for(int i =2; i<14; i++){
pinMode(i, OUTPUT);
}
}
//Зведення в ступінь
int exponentiation(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
void loop(){
//Перебираємо кожен сегмент дисплея
for (int digit = 0; digit < 5; digit++) {
//Вибираю потрібну цифру із числа
int num2 = num / exponentiation(10, digit);
digitalWrite(digits[digit-1], HIGH);
digitalWrite(digits[digit-1], LOW);
//Вимикаю напругу на усіх пінах з минулого разу
for (int segment = 0; segment < 7; segment++) {
digitalWrite(segments[segment], LOW);
}
//Заповнюю сегменти через паттерни
for (int segment = 0; segment < 7; segment++) {
digitalWrite(segments[segment], digitPatterns[num2 % 10][segment]);
}
delay(5);
};
}