Proviamo ad utilizzare i tasti. Per prima cosa dovremo programmare nella funzione setup() i relativi tre piedini in ingresso, con le seguenti tre righe: pinMode(S1PIN, INPUT); pinMode(S2PIN, INPUT); pinMode(S3PIN, INPUT);
Per come sono stati collegati i tasti, se il piedino ritorna true, il tasto è rilasciato, mentre se torna false è premuto
A questo punto occorre fare alcuni ragionamenti
Per prima cosa, il tasto rimarrà premuto per un certo periodo (non siamo certo in grado di fare un "pressione istantanea" per quanto veloci noi siamo a mollare il tasto), ma l'azione associata al tasto andrà fatta una volta per ogni pressione, quindi dovremo attendere il rilascio prima di ripetere l'azione
A complicare le cose, la meccanica del tasto fa si che il tasto rimbalzi alcune volte sui contatti prima di restare definitivamente chiuso, aprendosi e richiudendosi, quando lo premiamo. Lo stesso succede al rilascio.
Per risolvere questo problema potremo, dopo aver trovato il tasto premuto, attendere un certo tempo che si esauriscano i rimbalzi, quindi ricontrollare. Se dopo il ritardo:
il tasto è ancora premuto, lo resterà fino al rilascio, quindi eseguiremo l'azione
non è più premuto allora abbiamo rilevato un rimbalzo sul rilascio, e non dobbiamo ripetere l'azione