#include <SevSeg.h>
SevSeg display;
// ==================== НАСТРОЙКИ ПОДКЛЮЧЕНИЯ ====================
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Пины сегментов A-G, DP
byte digitPins[] = {10, 11, 12, 13}; // Пины разрядов 1-4
const int buttonPin = A0; // Пин кнопки
bool isDisplayOn = false; // Флаг: включен ли сейчас индикатор
bool lastButtonState = HIGH; // Предыдущее состояние кнопки
void setup() {
// Кнопка подключена к GND, поэтому используем внутреннюю подтяжку
pinMode(buttonPin, INPUT_PULLUP);
// Инициализация дисплея (если индикатор с общим анодом - поменяй на COMMON_ANODE)
display.begin(COMMON_CATHODE, 4, digitPins, segmentPins, false, true);
display.setBrightness(90);
// Изначально индикатор выключен (гасим все сегменты)
display.blank();
}
void loop() {
// --- Обработка нажатия кнопки (как переключатель) ---
bool currentButtonState = digitalRead(buttonPin);
// Если кнопка была отпущена и только что нажалась
if (currentButtonState == LOW && lastButtonState == HIGH) {
isDisplayOn = !isDisplayOn; // Меняем состояние на противоположное (Вкл/Выкл)
delay(50); // Простой антидребезг
}
lastButtonState = currentButtonState; // Запоминаем состояние кнопки
// --- Вывод на индикатор ---
if (isDisplayOn) {
// Если включен - показываем число (например, 1234).
// Можешь написать display.setNumber(88, 0); чтобы проверить все сегменты.
display.setNumber(1234);
display.refreshDisplay();
} else {
// Если выключен - гасим экран
display.blank();
}
}