void setup() {
Serial.begin(9600);
pinMode(7, INPUT_PULLUP);
}
bool flag = false;
uint32_t btnTimer = 0;
const uint32_t CLICK_THRESHOLD = 150; // Порог времени для быстрого нажатия в мс
void loop() {
// читаем инвертированное значение для удобства
bool btnState = !digitalRead(7); // читаем текущее состояние кнопки инвариатное
if (btnState == true && flag == false && millis() - btnTimer > 80) {
flag = true;
btnTimer = millis();
Serial.println("press");
}
if (btnState == false && flag == true && millis() - btnTimer > 80) {
flag = false;
uint32_t releaseTime = millis();
Serial.println("release");
// Проверяем, было ли нажатие быстрым
if (releaseTime - btnTimer < CLICK_THRESHOLD) {
Serial.println("click");
}
}
}