Goede opbouw programma

Je kan een interrupt aan die input-pin 'knopen'
Zoals hier:

const byte LED = 13;
const byte BUTTON = 2;

// Interrupt Service Routine (ISR)
void pinChange ()
{
  if (digitalRead (BUTTON) == HIGH)
    digitalWrite (LED, HIGH);
  else
    digitalWrite (LED, LOW);
}  // end of pinChange

void setup ()
{
  pinMode (LED, OUTPUT);  // so we can update the LED
  digitalWrite (BUTTON, HIGH);  // internal pull-up resistor
  attachInterrupt (0, pinChange, CHANGE);  // attach interrupt handler
}  // end of setup

void loop ()
{
  // loop doing nothing 
}

Dit voorbeeld is afkomstig van deze website: http://www.gammon.com.au/forum/?id=11488
Een heel informatieve site met duidelijke uitleg (als je engels verstaat) gerund door Nick Gammon, een van de moderators hier.