Qualche giorno fa ho acquistato un LCD keypad shield per Arduino.
Questo shield, disponibile su vari siti Internet ed eBay, mette a disposizione un LCD alfanumerico 16×2 (16 caratteri per due righe) e una piccola tastiera composta da 5 pulsanti, siglati UP/DOWN/LEFT/RIGHT e SELECT. Lo shield è quindi ottimo per visualizzare menu navigabili.
E’ possibile pilotare il display LCD utilizzando la libreria LiquidCrystal prestando attenzione ad indicare i corretti collegamenti:
#include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); |
Per evitare di utilizzare troppi PIN, tutti i pulsanti sono collegati ad un unico PIN di input analogico di Arduino, secondo il seguente schema:

Leggendo il valore di tensione presente sul PIN AD0 è quindi possibile capire quale pulsante è stato premuto:
int read_buttons() { int adc_key_in = analogRead(0); if (adc_key_in > 1000) return btnNONE; if (adc_key_in < 50) return btnRIGHT; if (adc_key_in < 195) return btnUP; if (adc_key_in < 380) return btnDOWN; if (adc_key_in < 555) return btnLEFT; if (adc_key_in < 790) return btnSELECT; } |
Ho preparato uno sketch di esempio, disponibile su Github… eccone il funzionamento:







Grande Luca,
proprio in questi giorni sto testando la stessa shield.
Questo tutorial è eccellente !!!
Sto cercando di collegare Arduino 1 con LCD keypad schield e la scheda A4988 stepper motor driver carrier per controllare un motore bipolare a 4 fili , ma non riesco a collegare la scheda A 4988 con il Display . Vorrei usare un programmino da me elaborato , combinando altri programmini trovati in rete , per controllare ,con i pulsanti del display , il motorino.
Avresti qualche schema o foto per il collegamento?
Sono alle prime esperienze con arduino ed ho bisogno di una mano.
Grazie
Paolo
Ciao Paolo! I moduli con A4988 hanno bisogno di essere collegati a due PIN di Arduino (pin STEP e DIR): puoi scegliere qualsiasi PIN non utilizzato già dallo shield LCD. Guarda ad es. la scheda RAMPS che ne usa 4 per comandare gli assi e l’estrusore di una stampante 3d…