Dit lijkt me toch niet zo moeilijk.
Onderstaand niet geteste code als een voorzet.
Het is een combinatie van de code die je hier kan vinden http://arduino.cc/en/Reference/AttachInterrupt
en een timer conditie
met vriendelijke groet
Jantje
int pin = 3;
volatile int state = HIGH;
int prefState = state;
unsigned long TimerStart=0;
void blink()
{
state = !state;
}
void setup()
{
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, CHANGE);
}
void loop()
{
if(prefState != state ) // de knop is vernderd
{
prefState = !prefState; //Zet prefState gelijk aan state
if (TimerStart==0) //is dit de eerste keer dat de schakelaar van stand veranderd?
{
TimerStart=millis(); //Zo ja start de timer
}
digitalWrite(pin, prefState); //zet de pin goed
}
if ( (TimerStart!=0) && ((TimerStart+40*60*100) < millis()) ) // de timer is meer dan 40 minuten geleden gestart
{
while(true);//wacht voor eeuwig en altijd
}
}