Ciao a tutti!
Oggi vi mostrerò come collegare un keypad ad Arduino,
oppure, se non lo avete, vi farò vedere come realizzarlo.
Caricheremo anche uno sketch di esempio per testarne le potenzialità.
Quello nella foto è un keypad commerciale a membrana, si trova su eBay ad un costo irrisorio, ma se non ne avete uno sotto mano, e ne avete bisogno adesso, vediamo insieme come farne uno.
Per la realizzazione del nostro "tastierino", vi servono solamente 12 pulsanti e qualche pezzo di filo.
Collegate i pulsanti come in figura (il display serve per l'esempio, ma potete anche usare il serial monitor):
Se invece avete un tastierino commerciale, e volete individuarne la piedinatura, è sufficiente prendere un ohmmetro (o un cicalino) e provare la resistenza tra i pin mentre premete un pulsante.
Ad esempio premete il pulsante "1". probabilmente la resistenza sarà zero tra i pin 1 e 7. Se premendo il "2" ci sono zero ohm tra i pin 2 e 7 Vuol dire che il pin 1 è la colonna "0", il pin 2 è la colonna "1" e il pin 7 è la riga "0". Provando gli altri tasti vi ricaverete con certezza tutti i pin.
Ora che avete fatto i collegamenti possiamo passare all'esempio.
Ecco cosa farà il vostro Arduino:
Per farlo caricate questo sketch, assicuratevi di avere nella cartella "libraries" di arduino le librerie LiquidCristal e Keypad, se non le avete si trovano facilmente con Google, scaricatele e mettetele in quella cartella.
Come al solito per qualunque dubbio sono sempre qui, Ciao!
Oggi vi mostrerò come collegare un keypad ad Arduino,
oppure, se non lo avete, vi farò vedere come realizzarlo.
Caricheremo anche uno sketch di esempio per testarne le potenzialità.
Quello nella foto è un keypad commerciale a membrana, si trova su eBay ad un costo irrisorio, ma se non ne avete uno sotto mano, e ne avete bisogno adesso, vediamo insieme come farne uno.
Per la realizzazione del nostro "tastierino", vi servono solamente 12 pulsanti e qualche pezzo di filo.
Collegate i pulsanti come in figura (il display serve per l'esempio, ma potete anche usare il serial monitor):
Ad esempio premete il pulsante "1". probabilmente la resistenza sarà zero tra i pin 1 e 7. Se premendo il "2" ci sono zero ohm tra i pin 2 e 7 Vuol dire che il pin 1 è la colonna "0", il pin 2 è la colonna "1" e il pin 7 è la riga "0". Provando gli altri tasti vi ricaverete con certezza tutti i pin.
Ora che avete fatto i collegamenti possiamo passare all'esempio.
Ecco cosa farà il vostro Arduino:
Per farlo caricate questo sketch, assicuratevi di avere nella cartella "libraries" di arduino le librerie LiquidCristal e Keypad, se non le avete si trovano facilmente con Google, scaricatele e mettetele in quella cartella.
- #include <Keypad.h>
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
- const byte ROWS = 4; // Quattro righe
- const byte COLS = 3; // Tre colonne
- // Definisci la composizione del keypad
- char keys[ROWS][COLS] = {
- {
- '1','2','3' }
- ,
- {
- '4','5','6' }
- ,
- {
- '7','8','9' }
- ,
- {
- '#','0','*' }
- };
- // Connetti le righe del keypad ROW0, ROW1, ROW2 ai seguenti pin di Arduino.
- byte rowPins[ROWS] = {
- 14, 15, 16, 17 };
- // Connetti le colonne del keypad COL0, COL1, COL2 ai seguenti pin di Arduino.
- byte colPins[COLS] = {
- 12, 11, 10 };
- // Creazione del keypad
- Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
- void setup()
- {
- lcd.begin(16, 2);
- lcd.setCursor(0, 0);
- lcd.print("premi un tasto!");
- }
- void loop()
- {
- char key = kpd.getKey();
- if(key) // Controlla se il key è corretto.
- {
- lcd.setCursor(0, 0);
- lcd.print("tasto premuto: ");
- lcd.print(key);
- }
- if(key==42) // 42 è Codice ASCII per l'asterisco.
- {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("premi un tasto!");
- }
- }
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Il video risulta privato
RispondiEliminaL'ho corretto, ora è visibile,
Eliminagrazie mille per il tuo prezioso commento!
Ho copiato il programma e ho riscontrato un problema durante la compilazione precisamente nella riga 33
RispondiEliminaCiao, grazie per il commento, hai installato la libreria keypad?
EliminaCiao, ma la scritta keypad dovrebbe comparire arancione?
RispondiEliminasi, e ti diventa arancione solo se hai messo la libreria "Keypad" nella cartella libraries di Arduino.
Eliminaok grazie mille, gentilissimo ciao
RispondiEliminaCiao Daniele,
RispondiEliminabell'articolo! Chiarisce bene come usare la keypad Lib. Anche io avevo tentato un esperimento simile ma per mancanza di pin sull'Arduino alla fine ho dovuto usare un multiplexer. Se vi interessa trovate schemi e codice su http://www.0ex.it/2012/04/tastierino-16-tasti-con-dm74150n/
Ciao,
Silvio
Grazie, tornerà sicuramente utile a qualcuno!
EliminaCiao Daniele,
RispondiEliminaottima guida! Una domanda, volendo riprodurre lo schema coi tasti e il software senza l'uso della libreria Keypad, come faccio ad alimentare la pulsantiera, visto che in quello mostrato i tasti non sono collegati ai pin di alimentazione? Grazie
ciao, non so che metodo venga usato, anche perchè i pulsanti entrano nei pin Analogici, dovresti aprire e studiare la libreria Keypad.h.
Elimina