Gestione Interrupt

In realtà è solo una molla posizionata al centro sulla base ed un'altra posizionata sulla testa. Quando ruota la testa di 360° le molle si toccano chiudendo il circuito.
Inoltre l'avevo già definita così la funzione inverti_rotazione, questo è il codice:

[ ... ]

// quando il circuito è chiuso sul pin ho 0 altrimenti 1

digitalWrite(inizio, HIGH); // pin dell'interrupt
attachInterrupt(1, inverti_rotazione, FALLING );

[ ... ]

void inverti_rotazione()
{
   avanza = 1;
   rotazione = !rotazione;
}

Solo che alla prima accensione l'interruttore è chiuso, quindi il pin è a 0. Non appena si apre il pin passa a 1 e si verifica l'interrupt?!?! Ma non dovrebbe verificarsi quando passa da 1 a 0 se dichiaro FALLING ?