Tutorial Acquisizione Dati Keypad Arduino

Questo articolo costituisce una guida dettagliata all’acquisizione dei dati di un keypad 4×3, attraverso la piattaforma Arduino Uno.

 

Keypad 3 x 4

 

Per cominciare, questo in figura è uno dei due tipi di keypad che potrete trovare in commercio, il 4×3.

E’ possibile trovare anche il 4×4.

 

Il funzionamento è analogo in entrambi i casi, solo che nel secondo avrete a disposizione più caratteri.

 

 

Come Funziona un Keypad

 

Il Keypad 4×3  è formato da una matrice di pulsanti formata da 4 righe e 3 colonne.

Quello 4×4 da 4 righe e 4 colonne, come nella seguente figura:

 

keypad-schematic

 

Alla pressione di un pulsante, collegheremo elettricamente una riga con una colonna.

 

Per capire su quale pulsante è stata effettivamente esercitata pressione,  possiamo pensare di alimentare in sequenza, una per volta, tutte le colonne.  Leggere, nello stesso tempo, i valori di tensione sul terminale di ogni riga.

 

Dal collegamento infatti è facile intuire che, premendo uno dei pulsanti, si collega la particolare colonna alla riga corrispondente del pulsante.

 

Se quindi, al momento della pressione, stessimo alimentando con 5v la colonna relativa al pulsante, otterremmo gli stessi 5v anche sul terminale della riga corrispondente.

 

 

Esempio pratico

 

A questo punto un esempio chiarirà il concetto:

 

Supponiamo di premere il primo pulsante della terza colonna.

Durante il tempo in cui il nostro dito esercita pressione sul pulsante, il software fornirà tensione alle colonne una ad una, verificando poi la tensione che sussiste ai capi di ogni riga.

 

 

Esempio Keypad

 

 

Quando verrà fornita tensione alla terza colonna, la pressione del nostro dito farà in modo che tale tensione sia trasferita ai capi della riga, dunque il nostro software avrà accertato due dati:

 

-Il primo dato è quello relativo alla colonna che si sta alimentando (nel nostro caso, la terza)

-Il secondo dato è quello relativo alla riga su cui sussiste una differenza di potenziale (nel nostro caso, la prima)

 

 

Abbiamo dunque, la posizione geometrica esatta del pulsante impegnato sulla matrice del keypad: prima riga, terza colonna.

 

 

Uno sguardo al collegamento elettrico 

 

 

Il collegamento risulta abbastanza semplice, dal keypad è possible collegare 8 pin: 4 sono colonne, 4 sono righe.

 

I pin di arduino su cui scegliamo di collegarli sono arbitrari, dobbiamo però aver cura di riportare i giusti pin di righe e colonne quando inseriremo la funzione che inizializza il keypad nel programma.

 

 

Analizziamo ora la parte software:

 

Per prima cosa abbiamo bisogno di una libreria.

Quella usata per formulare questa guida, si può scaricare cliccando qui.

 

Successivamente possiamo scrivere il codice:

 

 

 

Inizializzazione

 

Nella parte iniziale del codice, viene inizializzata la matrice di numeri e lettere relativi al tastierino.

Vengono inoltre assegnati i numeri ai pin di righe e colonne che avete precedentemente collegato ad arduino.

 

NOTA BENE: nel caso in cui, premendo un pulsante, il programma acquisisca il valore corrispondente ad un altro tasto, controllate il collegamento delle righe e delle colonne.

 

 

 

Acquisizione dei caratteri

 

Inizializzato il keypad, inseriamo nel void loop() il codice che ci permetterà di inserire i valori corrispondenti ai tasti.

 

Per acquisire dati dalla tastiera è stata creata una variabile con questa struttura:

 

  char key = keypad.getKey(); 

 

Questa istruzione crea una variabile di tipo CHAR, e vi assegna il valore restituito da una funzione presente nella libreria che associa al tasto premuto, il carattere corrispondente.

 

 

Successivamente troviamo la funzione che acquisisce il dato:

 

if (key != NO_KEY )  

 

NO_KEY” corrisponde alla condizione in cui nessun tasto è stato impegnato, dunque questa condizione impone che il ciclo si avvia appena viene premuto un tasto qualsiasi.

 

 

 

E’ possibile scaricare lo sketch già pronto cliccando qui.

Se si riscontrano errori nello sketch vi invitiamo a lasciare un commento nel campo sottostante al post.

 

Per informazioni o necessità di sketch particolari per esigenze personali, vi invitiamo a contattarci  cliccando qui.

 


Ti interessa Arduino? Leggi anche: Creare un Menù con Arduino.

 

Arduino logo


 

 

Lascia un commento

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

*

Per info e contatti