volatile int buttonPressCount = 0; // Счетчик нажатий
volatile int ledState = LOW; // Состояние светодиода
const int ledPin = 13; // Светодиод
const int buttonPin = 2; // Кнопка (внешнее прерывание 0)
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Используем встроенную подтяжку к 5V
Serial.begin(9600);
// Прерывание на FALLING, т.е. когда кнопка замкнута на GND
attachInterrupt(digitalPinToInterrupt(buttonPin), handleButtonPress, FALLING);
}
// Функция обработчика прерывания
void handleButtonPress() {
ledState = !ledState; // Инвертируем состояние светодиода
digitalWrite(ledPin, ledState); // Обновляем светодиод
buttonPressCount++; // Увеличиваем счетчик
}
void loop() {
// Выводим текущее количество нажатий
Serial.print("Button pressed: ");
Serial.println(buttonPressCount);
delay(200); // Небольшая задержка для удобного мониторинга
}