Sebbene sia possibile, e talvolta desiderabile, utilizzare gli interruttori di cambio pin per leggere lo stato dei pulsanti, è più semplice eseguire il polling dello stato dei pulsanti loop(). Questa è una tecnica comunemente usata.
Se loop()esegui abbastanza rapidamente, le pressioni dei pulsanti saranno sempre catturate e l'utente non sarà in grado di percepire alcun ritardo o ritardo.
È possibile che il tuo loop impieghi così tanto tempo da causare un ritardo o un ritardo da percepire.
La domanda è: quanto tempo sarebbe, in generale, prima che un utente lo veda?
loop()è piuttosto lento (voglio dire, troppo lento per essere in grado di fornire un feedback abbastanza veloce all'utente finale), potresti eventualmente utilizzare un ISR sulla modifica del livello dei pin e fornire un feedback immediato (se questo può essere calcolato velocemente) per l'utente oppure forniscigli un feedback temporaneo (ad es. LED acceso) per comunicargli che la sua richiesta è stata riconosciuta e verrà elaborata a breve (inloop()); lascerestiloop()impostando alcuneboolvariabili globali nell'ISR.