int rLED = 1;
int ledState = LOW;
volatile boolean interruptButton = false;
unsigned long previousMillis = 0;
const long intervalOn = 200;
const long intervalOff = 100;
void setup()
{
attachInterrupt(2, interruptFunction, FALLING);
pinMode(rLED, OUTPUT);
digitalWrite (rLED, LOW);
}
void loop()
{
if (interruptButton == true)
{
digitalWrite (rLED, LOW);
}
else
{
previousMillis = millis();
while ((millis() - previousMillis) <= intervalOn)
{
ledState = HIGH;
digitalWrite (rLED, ledState);
}
previousMillis = millis();
while ((millis() - previousMillis) <= intervalOff)
{
ledState = LOW;
digitalWrite (rLED, ledState);
}
}
}
void interruptFunction()
{
if (interruptButton == false)
{
interruptButton = true;
}
else
{
interruptButton = false;
}
}