#include <QuadDisplay.h> // Единственная библиотека — для индикатора
// Пин индикатора (сигнальный провод)
#define DISPLAY_PIN 9
// Пин кнопки (подключается к GND)
#define BUTTON_PIN 2
QuadDisplay qd(DISPLAY_PIN);
// Переменные для подавления дребезга кнопки
int lastButtonState = HIGH;
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 50;
void setup() {
qd.begin(); // Запускаем индикатор
pinMode(BUTTON_PIN, INPUT_PULLUP); // Внутренняя подтяжка кнопки
randomSeed(analogRead(A0)); // Настоящий random
qd.displayInt(0); // Начальное значение
}
void loop() {
int reading = digitalRead(BUTTON_PIN);
// Дребезг: если состояние изменилось, сбросить таймер
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
// Если состояние стабильно дольше debounceDelay
if ((millis() - lastDebounceTime) > debounceDelay) {
// И если кнопка была нажата (LOW, потому что INPUT_PULLUP)
if (reading == LOW && lastButtonState == HIGH) {
int rnd = random(0, 10000); // число от 0 до 9999
qd.displayInt(rnd);
}
}
lastButtonState = reading;
}