LCD03 – Integrare un display a cristalli liquidi LCD e un Keypad su Arduino tramite I2C

Introduzione

In un precedente articolo (vedi qui) abbiamo già visto come integrare un display a cristalli liquidi generico LCD1602 nei nostri progetti con Arduino. In questo articolo vedremo come fare la stessa cosa con LCD03 un altro modulo a cristalli liquidi. In questo caso utilizzeremo un’altra libreria Arduino, specifica solo per questo modello. Vedremo inoltre che la potenza di questo modulo sta soprattutto nella possibilità di integrare direttamente un keypad (una piccola tastiera numerica). Questa opzione amplia molto le opportunità di progetto realizzabili su Arduino.

Il dislay a cristalli liquidi – LCD1603

Questo modulo a cristalli liquidi esiste in due diverse versioni, la 20×4 caratteri e la 16×2 caratteri. Entrambe hanno schermo retroilliminato o blu o verde.

Questo modulo ha già integrato al suo interno la scheda che gestisce la comunicazione I2C. Questa avviene attraverso l’indirizzo di default 0XC6.

Come possiamo vedere dalla figura abbiamo i 4 pin laterali. Due per l’alimentazione VCC e GND, e due per la comunicazione I2C. 7

Inoltre sono presenti anche due pin per inserire un jumper (Jumper mode). Se il jumper non è presente la comunicazione sarà tramite I2C, se invece è presente la comunicazione sarà seriale.

Inoltre una cosa molto interessante di questa scheda è la possibilità di gestire un keypad direttamente da LCD. Infatti sono presenti i 7 pin predisposti per la connessione ad un keypad.

Le connessioni sono state fatte appositamente per una perfetta integrazione su un bus da 7 canali che va direttamente dalla scheda al keypad.

Se siete interessati a maggiori informazioni tecniche al riguardo, vi consiglio di andare a vedere su questa pagina.

I keypad sono componenti davvero poco costosi, e ne esiste persino uno a membrana impermeabile.

SODIAL (R) New 4 x3 12 Matrice Tasto tastiera
SODIAL (R) New 4 x3 12 Matrice Tasto tastiera Interruttore matrice membrana tastiera per Arduino

Costruiamo il circuito

Prima di cominciare a programmare il tutto dobbiamo realizzare tutte le connessioni. Per prima cosa pensiamo alle connessioni tra Arduino e la scheda LCD03

Arduino UNO/ZERO LCD03
GND GND
5V VCC
A4 SDA
A5 SCL

Poi colleghiamo un keypad alla scheda LCD03 seguendo lo schema nella figura

 

La libreria Arduino LCD03

Per poter utilizzare la scheda LCD03 con Arduino, è stata realizzata una libreria apposita, chiamata appunto LCD03. La potete scaricare direttamente da qui arduino-lcd03-1.0 , altrimenti potete andare su GitHub e scaricarvi il codice sorgente

oppure documentarvi nel sito ufficiale dello sviluppatore andatche.

Scaricate la libreria, un file zip. Integrate la libreria direttamente su Arduino IDE, selezionando la voce del menu Sketch > #Include libreria > Aggiungi libreria da file ZIP.

Per prima cosa sviluppiamo un semplice programma Hello World. Questo semplice sketch effettuerà una connessione I2C tra Arduino e il Display LCD e poi visualizzerà del testo sulle due righe. Sulla prima riga “I’m Arduino” e sulla seconda “Hello world!”

Ecco lo sketch:


Se eseguite il programma vedrete accendersi LCD03 con la retroilluminazione e poi comparire la scritta “I’m Arduino” sulla prima riga e “Hello world!” sulla seconda.

Integriamo il Keypad

Adesso il secondo passaggio sarà quello di programmare Arduino, o meglio la scheda integrata LCD03 per mettersi in ascolto di eventuali pressioni di tasti. Grazie alla libreria LCD03 la gestione di questo tipo di eventi è davvero semplice.

Vediamo infatti un semplice esempio in cui premendo il tasto 1 o il tasto 2 si avrà la risposta su schermo. Questo tutorial è molto semplice ma vi apre la strada a moltissime applicazioni. Potrete sostituire il codice all’interno di ogni condizione di pressione con quello che vorrete.

Vediamo il codice

Eseguendo

Se vorrete aggiungere gli altri pulsanti queste sono le costanti:

  • KEYPAD_1
  • KEYPAD_2
  • KEYPAD_3
  • KEYPAD_4
  • KEYPAD_5
  • KEYPAD_6
  • KEYPAD_7
  • KEYPAD_8
  • KEYPAD_9
  • KEYPAD_0
  • KEYPAD_STAR
  • KEYPAD_HASH

Mentre se volete porre una condizione in cui due pulsanti sono premuti contemporaneamente. Per esempio 1 e *, aggiungete questa condizione.

if(keystate == (KEYPAD_1 | KEYPAD_STAR)) {

// inserisci il codice

}

Conclusioni

In questo articolo abbiamo visto come poter utilizzare sia un keypad che uno schermo a cristalli liquidi LCD occupando solo due pin su Arduino. Questo è molto importante dato che la disponibilità di pin è sempre necessaria per poter arricchire la possibilità di utilizzare sensori e altri componenti aggiuntivi su Arduino.

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.