const int segmentPins[] = {13, 12, 11, 10, 9, 8, 7};
const int displayPins[] = {A5, A4, A3};
const byte digitPatterns[] = {
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01001111, // 3
B01100110, // 4
B01101101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01101111 // 9
};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
for (int i = 0; i < 3; i++) {
pinMode(displayPins[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < 1000; i++) {
displayNumber(i);
delay(100);
}
}
void displayNumber(int number) {
// Розділити число на окремі цифри
int hundreds = (number % 1000) / 100;
int tens = (number % 100) / 10;
int ones = number % 10;
// Вивести цифри на індикатори
displayDigit(ones, 0);
displayDigit(tens, 1);
displayDigit(hundreds, 2);
}
void displayDigit(int digit, int displayNum) {
// Вимкнути всі індикатори
for (int i = 0; i < 3; i++) {
digitalWrite(displayPins[i], HIGH);
}
// Вивести цифру на відповідний індикатор
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], bitRead(digitPatterns[digit], i));
}
// Вибрати індикатор для відображення
digitalWrite(displayPins[displayNum], LOW);
}