Gestione tastiere a matrice con Arduino

Il tastierino numerico è una periferica di input, ne esistono di vari formati. I tasti sono disposti in formato matriciale. La struttura a righe e colonne, permette di verificare con l’ausilio di un microcontrollore quale dei tasti è stato digitato tramite la lettura dei pin di output del tastierino stesso.
In questo articolo vedremo la gestione delle tastiere a matrice tramite Arduino.

Tastiera a tasti

Il tastierino visibile in figura ha 16 tasti (4×4) e presenta un’uscita con 8 pin che permettono la lettura della matrice righe/colonne.

Sono disponibili anche delle tastiere 4×3, la cui struttura è simile alla precedente

Tastiera a membrana

Oltre alla tastiere a tasti meccanici, sono disponibili delle tastiere a membrana. Come per il modello precedentemente descritto, sono disponibili sia a matrice 4×4 che 4 x3.
Le tastiere a membrana sono meno costose di quelle a tasti, sono sottili e hanno anche un supporto adesivo in modo da poterle attaccare alla maggior parte delle superfici piatte.

Pin delle tastiere

Tastiera meccanica 4×3

PinColonna/rigaTasto
1Colonna 22,5,8,0
2Riga 11,2,3
3Colonna 11,4,7,*
4Riga 4*,0,#
5Colonna 33,6,9,#
6Riga 37,8,9
7Riga 24,5,6
Ourpcb

Tastiera a membrana 4×3

PinColonna/rigaTasto
1Riga 11,2,3
2Riga 24,5,6
3Riga 37,8,9
4Riga 4*,0,#
5Colonna 11,4,7,*
6Colonna 22,5,8,0
7Colonna 33,6,9,#

Tastiera meccanica/membrana 4×4

PinColonna/rigaTasto
1Riga 11,2,3,A
2Riga 24,5,6,B
3Riga 37,8,9,C
4Riga 4*,0,#,D
5Colonna 11,4,7,*
6Colonna 22,5,8,0
7Colonna 33,6,9,#
8Colonna 4A,B,C,D,

Dove trovare le tastiere

Le tastiere potranno essere acquistate presso il sito Homotix,  sono disponibili:

Se lo acquisterete presso il sito potrete usufruire di uno sconto del 3% inserendo lo speciale codice sconto riservato agli utenti del sito ADRIROBOT.

Le tastiere sono inoltre disponibili presso il sito FUTURA ELETTRONICA, sono disponibili:

Libreria KeyPad

Per facilitare la gestione delle tastiere a matrice con Arduino è possibile utilizzate apposite librerie.
Queste possono essere scaricate utilizzando l’apposita funzione fornita dall’IDE.
Vi basterà ricercare “keypad“, e vi saranno mostrate varie librerie, personalmente ho scelto quella  realizzata da Mark Stanley e Alexander Brevig.
Se avete dubbi sull’utilizzo delle librerie,  leggete anche l’articolo Arduino – Tutorial, come installare una libreria

Funzioni della libreria KeyPad

void begin(makeKeymap(userKeymap))
Inizializza la mappa della tastiera, è uguale a userKeymap

char waitForKey()
Questa funzione resta in attesa di una pressione di un tasto
Attenzione:  la funzione blocca l’esecuzione del programma fino a quando non viene premuto un tasto, ad esempio non lampeggiano i LED e non viene aggiornato lo schermo LCD.

char getKey()
Restituisce il tasto che viene premuto, se presente. Questa funzione non blocca l’esecuzione del programma.

KeyState getState()
Restituisce lo stato attuale di uno qualsiasi dei tasti. I quattro stati sono IIDLE, PRESSED, RELEASED e HOLD

boolean keyStateChanged()
Permette di sapere se vi è stato un cambiamento di stato.

setDebounceTime(unsigned int time)
Imposta la quantità di millisecondi che l’utente dovrà tenere premuto un pulsante fino a quando lo stato HOLD è attivato.

setDebounceTime (tempo unsigned int)
Imposta la quantità di millisecondi che la tastiera attenderà fino a che non accetta una nuova pressione del tasto / KeyEvent. Questo è il “tempo di ritardo” metodo anti rimbalzo.

addEventListener(keypadEvent)
Attivare un evento se la tastiera è utilizzata.

Esempio schema minimo di collegamento

Materiale necessario

Uno R3 ATmega328 Arduino Compatibile Breadboard
Jumper Dupont M/M 200mm Tastiera 16 tasti

Schema dei collegamenti

Sketch di prova

Lo sketch sotto riportato, verifica i collegamenti della tastiera  se sono corretti, premendo i vari tasti, attivando il monitor seriale  saranno stampati i caratteri riportati sui relativi tasti premuti.

Download Sketch

Gestione di due relè tramite tastiera

Materiale necessario

Uno R3 ATmega328 Arduino Compatibile Breadboard
Jumper Dupont M/M 200mm Tastiera 16 tasti
2 moduli relè – 5V es. modulo KY-019

Schema dei collegamenti

 

Sketch comando relè

Lo sketch sotto riportato, gestisce due moduli relè, per attivarli occorre premere:
I tasti 1 e 4 per il relè 1, il tasto 1 attiva, il tasto 4 disattiva)
I tasti 2 e 5 per il relè 2, il tasto 2 attiva, il tasto 5 disattiva)

NOTA:
dato che la disposizione dei pin dei moduli relè non è standard, occorre verificare quella del proprio modello. Anche il circuito di comando della bobina del relè non è standard, alcune bobine si eccitano tramite il comando HIGH e altri con il comando LOW, nel caso modificare lo sketch

Download Sketch

Video illustrativo