LCD keypad shield

luca 12/02/2013 8

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 &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;   
}

Ho preparato uno sketch di esempio, disponibile su Github… eccone il funzionamento:

8 Comments »

  1. Mauro 12/02/2013 at 16:25 - Reply

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

    Questo tutorial è eccellente !!!

  2. Paolo 16/04/2013 at 13:48 - Reply

    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

    • luca 16/04/2013 at 20:24 - Reply

      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…

  3. ivan 08/03/2014 at 11:08 - Reply

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

  4. franceco 17/04/2016 at 23:48 - Reply

    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

    • luca 19/04/2016 at 13:53 - Reply

      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…

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi