const int pinLED = 9;
volatile boolean actionState = LOW;
void setup()
{
pinMode(pinLED, OUTPUT); // выход на светодиод
pinMode(2, INPUT_PULLUP); // подтягивающий резистор на входе прерывания
attachInterrupt(0, myEventListener, FALLING); //разрешение внешнего прерывания (вывод 2 Arduino UNO)
}
void loop()
{
// В функции loop мы ничего не делаем, т.к. весь код обработки событий будет в функции myEventListener
}
//Функция обработки внешнего прерывания
void myEventListener()
{
actionState = !actionState;
digitalWrite(pinLED, actionState); //переключение состояния светодиода
}