#define BTN 3 // кнопка подключена сюда (PIN --- КНОПКА --- GND)
boolean btnState, btnFlag;
void setup() {
Serial.begin(9600);
pinMode(BTN, INPUT_PULLUP);
}
void loop() {
btnState = !digitalRead(BTN); // читаем состояние кнопки с инверсией. 1 - нажата, 0 - нет
if (btnState && !btnFlag) { // если нажата и была отпущена (btnFlag 0)
btnFlag = true; // запомнили что нажата
Serial.println("press");
}
if (!btnState && btnFlag) { // если отпущена и была нажата (btnFlag 1)
btnFlag = false; // запомнили что отпущена
Serial.println("release");
}
}
Ссылка на источник: https://alexgyver.ru/arduino-algorithms/