#include "SevSeg.h" // подключение библиотеки SevSeg
SevSeg sevseg; // создание объекта библиотеки SevSeg с именем sevseg
void setup() {
byte numDigits = 1; // используется одноразрядный индикатор
byte digitPins[] = {}; // для одноразрядного индикатора массив оставляем пустым
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8}; // номера пинов, к которым подключены сегменты семисегментного индикатора a, b, c, d, e, f, g
bool resistorsOnSegments = true; // резисторы стоят последовательно с пинами сегментов
bool updateWithDelays = false; // не использовать задержки внутри библиотеки
byte hardwareConfig = 1; // используется общий анод
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays); // инициализация семисегментного индикатора в библиотеке
sevseg.setBrightness(90); // яркость 90 %
}
void loop() {
static int number = 0; // начальное значение счетчика (показываемое индиктором)
static unsigned long lastChange = 0; // стартовая отметка времени
const unsigned long interval = 1000; // задержка смены цифры на индикаторе 1 секунда
unsigned long now = millis(); // получение текущего времени работы платы и сохранение в переменную
if (now - lastChange >= interval) { // проверка прошло ли достаточно времени (interval) для следующего шага
lastChange = now; // запоминает текущее время как момент последнего обновления
sevseg.setNumber(number); // показывает на индикаторе текущее значение счетчика (number)
number++; // увеличивает счётчик на 1
if (number > 9) { // проверка не стало ли число больше 9
number = 0; // если больше 9 — сбрасывает в 0
}
}
sevseg.refreshDisplay(); // обновлять дисплей каждый цикл
}