Secondo Esperimento: Hello World con lcd hd44780 compatibile

by admin on 20/05/2011

Oggi realizzeremo un piccolo circuito che ci permette di pilotare uno schermo lcd 16×2 tramite Arduino.

Prima di iniziare le solite premesse:

Se volete sapere cos’è uno schermo lcd hd44780 leggete l’articolo ad esso dedicato qui.

Colleghiamo Arduino tramite una porta usb al pc, avviate l’ide, se non avete ancora configurato l’ide vi rimando all’articolo specifico qui.

Perfetto adesso entriamo nel vivo del tutorial, per prima cosa elenchiamo il materiale occorrente:

1 Arduino (il mio è un 2009)

1 schermo lcd hd44780 compatibile (oggi usiamo un Ampire 16×2 con controller Sitronix ST7066-0A)

1 potenziometro da 10 Kohm lineare (contrassegnato da una A )

1 breadboard (la mia è da 840 punti ma ne basta anche una piccola)

12 fili per i collegamenti

tempo di realizzazione 5 minuti

carichiamo lo sketch (il programma) nell’ide , cliccare su       file –> Examples –> LiquidCrystal –> HelloWorld


immagine Hello World

Immagine Hello World

 

Se i colori del vostro ide è diverso dal mio non vi preoccupate, questa immagine è stata catturata sotto linux.

una volta caricato lo sketch clicchiamo sull’icona upload ed attendiamo il caricamento sul nostro Arduino.

Upload HelloWorld

Ora scolleghiamo Arduino dal pc, sistemiamolo vicino alla breadboard ed iniziamo ad inserire i componenti.

Inserire i pin dello schermo su una linea della breadboard (inizialmente lo schermo non aveva pin saldati, sono stati aggiunti dopo l’acquisto)

Posizionare di fianco ad esso sulla parte sinistra il potenziometro in modo da aver il minor accavallamento di fili possibili

Colleghiamo ri fili in questo modo:

  • LCD   RS  (pin 4)  ——————–   ARDUINO uscita digitale 12
  • LCD Enable (pin 6) ——————  ARDUINO uscita digitale 11
  • LCD D4 (pin11) ———————-  ARDUINO uscita digitale  5
  • LCD D5 (pin12) ———————-  ARDUINO uscita digitale 4
  • LCD D6 (pin13) ———————- ARDUINO uscita digitale  3
  • LCD D7 (pin14) ———————- ARDUINO uscita digitale  2
  • LCD GND (pin1) ——————— POTENZIOMETRO uscita a destra —————– ARDUINO gnd
  • LCD VCC (pin2) ——————— POTENZIOMETRO uscita a sinistra ————— ARDUINO 5v
  • LCD Vo (pin3) ———————— POTENZIOMETRO uscita centrale
  • LCD R/W (pin5) ———————- LCD GND (pin1) ponticellare i pin 1 e 5

Una volta finito  possiamo collegare il nostro Arduino ad una fonte di alimentazione, ora è possibile regolare con il potenziometro il contrasto dello schermo così da poter visualizzare la nostra prima scritta su lcd, il programma caricato inizialmente HelloWorld, visualizza nella prima riga la scritta Hello World e nella seconda riga viene visualizzato un contatore che si aggiorna ogni secondo.

circuito completo e funzionante

Se per caso riscontrate degli errori sulla visualizzazione ricontrollate i collegamenti e soprattutto vedete se il vostro schermo è hd44780 compatibile e se nel datasheet i pin sono posti come elencato sopra.

Come di consueto andiamo a spiegare il programma caricato e come effettuare delle modifiche ad esso.

Per prima cosa importiamo la libreria HelloWorld e inizializiamo i pin dell’Arduino

inizializzazioni pin

Questa libreria ci rende il lavoro facile, visto che oltre alla sua inclusione nel programma e all’inizializzazione non bisogna inserire centinaia di righe di codice per poter interfacciare lcd con Arduino,  naturalmente dobbiamo conoscere le funzioni che fanno questo per noi, per elencarne qualcuna  passiamo direttamente al void Setup ()

setup

Il Settaggio del numero dei caratteri del nostro lcd avviene qui,  lcd.begin() alla funzione vengono passati i parametri 16,2 cioè 16 caratteri e 2 righe, andando a modificare tale impostazione possiamo inserire qualsiasi schermo di qualsiasi dimensione  hd44780 compatibile.

Naturalmente la funzione lcd.print() non fa nient’altro che stampare a schermo la stringa inserita tra gli apici, quindi per modificarla basta cambiare la scritta hello, world.

Passiamo al void loop() il ciclo, il cuore del programma.

il ciclo del programma

impostiamo tramite la funzione lcd.setCursor() su quale riga e quale colonna andare a scrivere (poichè lo schermo viene vista come una matrice, di tante colonne quanti sono i caratteri e tante righe quante sono le righe reali dell’lcd) 0,1 vuol dire : “cursore spostati sulla colonna 0 ma alla riga 1” quindi ci troviamo nella seconda riga, per cambiare  questo parametro come per gli altri basta impostare il numero di colonna e riga desiderato in (0,1).

Una volta definito dove si trova il curosre, viene richiamata la funzione lcd.print() che, come prima stampa cio che è contenuto tra le parentesi, ma questa volta al posto di avere una stringa di caratteri, abbiamo un’operazione, e quello che dobbiamo visualizzare è il suo risultato. (millis()/1000) non è nient’altro che una chiama ad una funzione denominata millis() essa da come risultato il numero di millisecondi passati da quando il nostro Arduino ha iniziato ad eseguire il programma, la divisione per 1000 ci permette di visualizzare il risultato in secondi.

Le modifiche all’interno della funzione lcd.print() da poter fare sono infinite, basti pensare che possiamo aggiungere un sensore di temperatura al circuito e far stampare il valore, per dirne una semplice, oppure realizzare un menu navigabile aggiungendo dei pulsanti. quindi ora grazie alla libreria helloworld possiamo utilizzare lo schermo lcd così da poter staccare il nostro Arduino dal pc e renderlo realmente indipendente

ps: se il vostro lcd è retroilluminato bisogna collegare anche i pin 15 e 16 per poter gestire tale funzione, altrimenti funzionerà come un normale lcd, vi spiego brevemente come:

collegate il pin denominato A (vcc) il pin 15, per intenderci ai 5 volt dell’Arduino e il pin denominato K (Vss) al GND dell’Arduino, ora l’lcd è dotato anche di retroilluminazione!!!

Buon Divertimento con Arduino.

 

Trackbacks & Pings

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.