Per risolvere il problema possiamo usare questo metodo: Arduino può memorizzare lo stato iniziale del pulsante: se nel controllare lo stato, trova che c’è un cambiamento, Arduino inverte lo stato; se non c’è cambiamento lo stato non viene invertito.

Per migliorare l’efficienza del programma possiamo aggiungere un delay di 15 ms nella fase di controllo dello stato, in modo da chiedere alla scheda Arduino di non essere tanto veloce ed attendere un po’ prima di ricominciare il controllo.