Precedente Indice Successiva

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

Valid XHTML 1.0! Valid CSS!