Hi,
Segun tu explicacion esto fue lo que yo entendi que es lo que estas buscando. Lo que tu esta buscando s es una routina que te lee un switche que al estar cerrado y pase cierto tiempo vaya y ejecuta un trabajo. Segun lo expresado adjunto una rutina que te va permitir hacerlo. La rutina va a leer el switch y si esta cerrado por a tiempo designado va y ejecuta el trabajo asignado. Si abres el switch antes del timpo no hara nada. Mira ver si esto es lo que busca y tratalo para saber si te trabaja.
//******************************************************
void chk_switch_dur() {
unsigned long switch_dur = millis() ;
do {
if ((millis() - switch_dur) > 1000) {
//si la duracion del switch cerrado es mayor de 1000 millsec
//ejecuta la accion a tomar
onoff_led(); //Ve ejecuta la accion
}
} while (digitalRead(botondetect) == 0);
}
//*****************************************************