#1 Arduino librerie: Keypad

come usare la libreria keypad, per le tastiere numeriche.

Nella precedente lezione abbiamo visto come collegare e configurare una tastiera a membrana 4×4 su Arduino, tramite l’uso della libreria keypad.h di Mark Stanley.
Oggi vedremo quali comandi riconosce questa libreria e cosa ci permette di fare.

Per chi fosse interessato alla lezione precedente sull’installazione e creazione dello sketch per la tastiera vi riporto il link qui sotto:

La libreria keypad è pensata per migliorare la configurazione delle tastiere a matrice in Arduino, inoltre attiva le resistenze pullup interne di Arudino.

Iniziamo a vedere come lavora all’eterno dello sketch e come scrivere questo per evitare errori:

Come prima cosa occorre dichiarare l’uso della libreria tramite comando #include <Keypad.h>.
Successivamente inseriamo due costanti:

Queste rappresentano rispettivamente il numero di righe e di colonne del tastierino, la libreria associa la prima costante al numero di righe e la seconda al numero di colonne.

Fatto questo, passo alla creazione di una mappa del tastierino, tramite una nuova matrice, questa indica alla libreria i pulsanti presenti e la loro posizione.

L’ultima parte da configurare sono i pin di installazione tramite due variabili di tipo byte, che avranno dimensioni sempre uguali alle prime costanti (righe e colonne).

Una volta finite queste configuraizoni, arriva la parte forse più importante, la creazione dell’oggetto keypad (io l’ho chiamato “tastiera”), che conterrà i dati inseriti in precedenza in questo ordine:

la mappa dei tasti, i pin di righe e colonne ed il numero di righe e colonne.

Adesso possiamo passare alla creazione dello sketch in base alle nostre necessità; in void setup non occorre indicare i pin della tastiera avendolo fatto in precedenza.

ComandoFunzione
char waitForKey()Mette in attesa lo sketch finché non si preme un pulsante, non vi saranno avanzamenti in nessuna parte di sketch.
Ad esempio non vi saranno lampeggi di led o altro.
char getKey()Restituisce il tasto premuto.
char TASTO = tastiera.getKey();
KeyState getState()Restituisce lo stato attuale di una qualsiasi chiave
gli stati possono esse: IDLE, PRESSED, RELEASED, HOLD
Rispettivamente: INATTIVO, PREMUTO, RILASCIATO, IN ATTESA

Esempio:
char TASTO = tastiera.getKey();
int TASTOState = tastiera.getState();
if (TASTOState == uno degli stati ){…..}
boolean keyStateChanged()Restituisce quando il pulsante è passato da uno stato all’altro.
setHoldTime(unsigned int time)Imposta la durata in millisecondi che il pulsante dovrà essere premuto per passare allo stato HOLD
setDebounceTime(unsigned int time)Imposta la durat ain millisecondi che devono passare tra una pressione e l’altra dei pulsanti, utile come funzione antiribalzo
addEventListener(keypadEvent)Attiva un evento quando viene utilizzata la tastiera.
/ 5
Grazie per aver votato!