LCD keypad shield

by luca
8 comments

A couple of days ago I brought an LCD keypad shield for Arduino.

This shield, available on many Internet stores and on eBay, has an alphanumeric 16×2 LCD (16 chars for 2 rows) and a small keypad with 5 buttons, labeled UP/DOWN/LEFT/RIGHT e SELECT. This shield is perfect if you want to add a menu to your Arduino project.

You can control the LCD display using the LiquidCrystal library with the correct setup:

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

To avoid using many PINs, all the buttons are connected to a single Arduino’s analog PIN with the following wiring:

If you read the voltage value present on AD0 PIN, you can therefore understand which button is pressed:

int read_buttons() {
 
 int adc_key_in = analogRead(0);
 
 if (adc_key_in &gt; 1000) return btnNONE;
 if (adc_key_in &lt; 50)   return btnRIGHT;  
 if (adc_key_in &lt; 195)  return btnUP; 
 if (adc_key_in &lt; 380)  return btnDOWN; 
 if (adc_key_in &lt; 555)  return btnLEFT; 
 if (adc_key_in &lt; 790)  return btnSELECT;   
}

I wrote an example sketch, available on Github… here’s how it works:

[youtube id=”brLCr3j9M4w” width=”600″ height=”350″]

Related Posts

8 comments

Mauro Tuesday February 12th, 2013 - 04:25 PM

Grande Luca,
proprio in questi giorni sto testando la stessa shield.

Questo tutorial è eccellente !!!

Reply
Keypad LCD con Arduino - prima parte - Mauro Alfieri Elettronica Wednesday February 13th, 2013 - 02:20 PM

[…] l’amico Luca Dentella ha pubblicato un articolo sulla shield Keypad LCD una shield molto interessante non solo per il display LCD ma sopratutto per […]

Reply
Paolo Tuesday April 16th, 2013 - 01:48 PM

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

Reply
luca Tuesday April 16th, 2013 - 08:24 PM

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…

Reply
ivan Saturday March 8th, 2014 - 11:08 AM

Ciao ottima guida…
Potresti spiegarmi come bisogna calcolare il valore delle resistenze per aggiungere altri pulsanti?
Grazie,
Ivan

Reply
luca Saturday March 15th, 2014 - 10:44 AM

Ciao Ivan, ti rimando a questo ottimo tutorial che lo spiega.

Reply
franceco Sunday April 17th, 2016 - 11:48 PM

ciao luca, io ho un problema con questo shield. E’ la stessa del tuo video, ma gia a occhi ho notato che ho saldato soltanto il pin A5 e Vin (in basso a dx),, i restanti non sono saldati alla scheda. Ho provato a scaricare il tuo sketch, ma il display non mi fa visualizzare nessun testo. Cosa potrebbe essere che non funziona? La scheda LCD e’ su un arduino Uno, e i collegamenti LCD con la libreria sembrano corretti. Mi puoi dare qualche consiglio?
Grazie,
Francesco

Reply
luca Tuesday April 19th, 2016 - 01:53 PM

Ciao Francesco, per prima cosa carica lo sketch di esempio del tuo shield così verifichi se è malfunzionante o magari ha collegamenti diversi rispetto a quello che ho io e quindi devi adattare lo sketch…

Reply

Leave a Comment

3 + 10 =