#13 Arduino: keypad 4×4 a membrana

Oggi vedremo come usare una tastiera a membrana 4×4, che spesso vengono date insieme nei kit sensori di Arduino.

In questa lezione useremo una libreria nel codice, che ci permette di creare uno sketch più semplice e più breve.

Materiale necessario

Se siete interessati al materiale, cliccate su questo e sarete indirizzati alla pagina Amazon

Prima di vedere come programmare Arduino, una piccola parentesi su come sono formati questi tastierini a livello hardware.

I keypad al loro interno hanno una serie di membrane conduttive, che una volta premute fanno contatto permettendo il passaggio di corrente, l’organizzazione interna di queste tastiere è in righe e colonne per evitare di avere numerosi fili.

Il funzionamento è molto semplice, ogni tasto funziona come un pulsante elettrico, ad ogni pressione si mette in comunicazione una riga ed una colonna, creando un passaggio di corrente.

Rappresentazione interna
pulsante tastiera

Le tastiere solitamente sono formate oltre che dal tastierino numerico anche da cavi di tipo flat, alla cui estremità c’è o un pettine o un connettore, ogni singolo contatto è collegato ad una colonna o una riga.ì, in un tastierino 4×4 avremo 4 pin per le righe e 4 per le colonne.

Solitamente la piedinatura avrà partendo da sinistra verso destra, su PIN1 la riga1, su PIN 2 la riga2 ecc ecc
Finite le righe si ripete la stessa cosa per le colonne.
Quindi in una tastiera 4×4 avremo partendo da sinistra verso destra, dal pin1 al pin4 le righe da 1 a 4, dal pin 5 al pin 8 le colonne da 1 a 4.

Essendo i pin trattati da Arduino come dei pulsanti occorrerebbe inserire delle resistenze, ma per comodità forse è meglio attivare tramite comando sullo sketch la resistenza interna di Arduino.

Come detto ad inizio lezione, per l’uso della tastiera useremo la libreria apposita da installare in Arduino IDE, in particolare useremo la libreria keypad di Mark Stanley, includendola ad inizio sketch con il comando #include <keypad.h>.

Passiamo a compilare lo sketch:

Adesso analizziamo lo sketch:

Dopo aver incluso la libreria, inserisco due costanti di tipo byte, che nomino righe e colonne, che avranno valore rispettivamente uguale al numero di righe e colonne.

Creo successivamente una mappatura dei tasti, usando una matrice di caratteri a cui do il nome “tasti”, questa avrà dimensioni “righe” e “colonne”, al suo interno inserisco tutti i tasti presenti nel keypad e nella posizione precisa, che copio all’interno delle paratesi graffe.

Successivamente inserisco due nuovi array di tipo byte, che avranno come valori i pin usati per le righe, e per le colonne, questi avranno come numero di elementi i valori della variabili righe e colonne.

La parte forse più importante dello sketch è l’oggetto del Keypad, questo avrà nome “tastiera” è verrà creato tramite il comando Keypad con tutti i paramenti necessari che indicano ad Arduino materialmente come è formato il tastierino fisicamente, questi vanno messi dentro parentesi tonde; la mappa dei tasti invece è data tramite la funzione makeKeymap.

Nel setup attivo il monitor seriale con il comando apposito.

All’interno del loop inserisco una variabile di tipo char che chiamo “TASTO”, questa avrà valore uguale al tasto premuto che verrà letto tramite il comando keypad.getKey();

Successivamente tramite la funzione if associata alla variabile “TASTO”, avrò riportato sul serialmonitor il tasto premuto.

Ovviamente io per semplicità ho usato il serial monitor, ed ho semplicemente chiesto ad Arduino di riportarlo sul monitor, ma capite bene che all’interno dell’if si poteva chiedere ad Arduino di eseguire altre funzioni in base al pulsante premuto, tanto per fare un esempio si poteva fare accendere un led, o qualsiasi altra funzione che vi occorre.

Se avete dubbi o consigli potete lasciare un commento qui sotto, vi risponderò il prima possibile.

/ 5
Grazie per aver votato!

Allegati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *