Hola buenas! Lo primero es dejar claro que soy novatillo tanto en arduino como en programación, apenas llevo un mes dando en clase y sinceramente estoy aprendiendo yo más con arduino que en dichas clases xD. Lo que estoy intentando hacer es que en el momento que pulso un botón, el programa empiece a contar X segundos hasta llegar a un máximo y de ahí pasar a la siguiente acción. Y que si no se llega a esos segundos se reinicie.
PD: llevo un par de horas buscando y no encuentro nada que me sirva, seguro que lo hay, pero no soy capaz de encontrarlo.
Como no sé lo que tiene que hacer antes de apretar el botón, supongo que no haces nada, simplemente esperas a que se pulse.
unsigned long tiempo;
byte pulsaciónValida = 0;
while(!digitalread(InputPin)); // Espera pulsación
tiempo = milis(); // guardo el inicio de la pulsación
do // Mientras dos condiciones: un segundo y botón apretado
{
if(milis() >= tiempo + 1000) // leo el reloj, ¿paso un segundo?
pulsaciónValida = 1;
}
while( (!pulsaciónValida) && (digitalread(InputPin) );
if(pulsaciónValida)
...
else
...