Arduino - 16

# Conteggio avanti/indietro

- 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

© Ing. Stefano Salvi - released under FDL licence