#include <TimerOne.h>
const int led = 9; // вывод со светодиодом
int ledState = LOW; //состояние светодиода
volatile unsigned long blinkCount = 0; // используйте volatile для общих переменных
bool work = false;
void setup(void)
{
pinMode(2, INPUT_PULLUP);
attachInterrupt(0, SOS, FALLING);
pinMode(led, OUTPUT);
Timer1.initialize(150000);
Timer1.attachInterrupt(blinkLED); // вызывать blinkLED каждые 0.15 сек.
}
void SOS(){
if(work == false){
work = true;
}
}
void blinkLED(void)
{
if(work == true){
if(blinkCount < 3){
Timer1.setPeriod(200000);
} else if(blinkCount < 6){
Timer1.setPeriod(600000);
} else if(blinkCount < 9){
Timer1.setPeriod(200000);
} else {
blinkCount = 0;
work = false;
}
if (ledState == LOW)
{
ledState = HIGH;
blinkCount++;
} else
{
ledState = LOW;
}
digitalWrite(led, ledState);
}
}
void loop(void)
{}