Come collegare un display LCD ad Arduino

Ciao a tutti!
Questo tutorial è un po' un ritorno al passato per me,
dato che è una delle prime cose che fa chi si avvicina ad Arduino,
ma per completezza ho deciso comunque di aggiungerlo al mio sito.

Qui di seguito vi spiegherò semplicemente come collegare un display LCD 16x2 (link eBay) ad Arduino.
L'unica cosa a cui dovete fare attenzione, nel caso dobbiate ancora acquistare il display, è che il display sia compatibile con il driver Hitachi HD44780, informazione che troverete sicuramente scritta nell'inserzione di eBay o nel sito da cui acquistate.

Quando avete tutto effettuate il collegamento in questo modo:


Ho cercato di fare il collegamento più chiaro possibile, se avete dubbi chiedete pure!
quando avete fatto il collegamento possiamo proseguire.


Da notare l'unica resistenza necessaria per collegare LCD è quella che vedete sopra (tra il pin 3 e GND)
serve a regolare il contrasto del display.
Nell'esempio ufficiale è utilizzato un trimmer da 10k per variare il contrasto, ma io preferisco utilizzare una resistenza per semplicità. 
Nel dettaglio ho usato una resistenza da 2.2KOhm perchè mi è sembrato possa garantire una buona leggibilità.


Fatti i collegamenti aprite l'IDE di Arduino e caricate questo sketch nella vostra scheda:

  1. /*
  2.   Libreria LiquidCrystal - Hello World
  3.  Dimostrazione dell'uso di un display LCD 16X2.  
  4.  La libreria LiquidCrystal funziona con tutti i display lcd
  5.  compatibili con il driver Hitachi HD44780.
  6.  Questo sketch genera la scritta "Hello World!" sull'LCD e mostra un conteggio.
  7.   il circuito:
  8.  * LCD RS al pin digitale 2
  9.  * LCD Enable al pin digitale 3
  10.  * LCD D4 al pin digitale 4
  11.  * LCD D5 al pin digitale 5
  12.  * LCD D6 al pin digitale 6
  13.  * LCD D7 al pin digitale 7
  14.  * LCD R/W al pin GND
  15.  * Resistenza da 2.2KOhm tra il pin 3 del diplay e GND.
  16.  Libreria aggiunta originariamente il 18 Apr 2008
  17.  da David A. Mellis
  18.  modificata il 5 Jul 2009
  19.  da Limor Fried (http://www.ladyada.net)
  20.  esempio aggiunto il 9 Jul 2009
  21.  da Tom Igoe
  22.  modificato il 22 Nov 2010
  23.  da Tom Igoe
  24.  tradotto in italiano e modificato il 14 Oct 2014
  25.  da Daniele Alberti http://www.danielealberti.it
  26.  Il codice di questo esempio è di pubblico dominio.
  27.  http://www.arduino.cc/en/Tutorial/LiquidCrystal
  28.  */
  29. // includi la libreria:
  30. #include <LiquidCrystal.h>
  31. // inizializza la libreria con i numeri dei pin utilizzati
  32. LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
  33. void setup() {
  34.   // imposta il numero di colonne e righe del display utilizzato:
  35.   lcd.begin(16, 2);
  36.   // Stampa il messaggio sull'LCD.
  37.   lcd.print("hello, world!");
  38. }
  39. void loop() {
  40.   // Metti il cursore alla colonna 1, riga 0
  41.   // (nota: la colonna 1 è la seconda perchè il conteggio parte da 0):
  42.   lcd.setCursor(0, 1);
  43.   // Stampa il numero dei secondi trascorsi dal reset:
  44.   lcd.print(millis()/1000);
  45. }

Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

17 commenti:

  1. Io non ho il resistore da 2,2kohm, vanno bene 2 resistenze da 1000ohm e una da 220ohm tutte e tre in serie? Io con il display non ci so fare , mi sono limitato a copiare lo schema e lo sketch.

    RispondiElimina
    Risposte
    1. Io non ho usato la resistenza ne il potenziometro ma non è cambiato nulla

      Elimina
    2. ciao, dipende dal display, in alcuni se non la metti non si vede nulla..

      Elimina
    3. ok grazie una domanda ho fatto i tuoi stessi collegamenti impostando il tuo sketch ma ogni tanto se tocco qualche filo mi si sballa tutto e vengono una serie di punti interrogativi

      Elimina
  2. possibile che sia colpa dei contatti o ho sbagliato a collegare qualcosa??
    quando va sempre con lo stesso circuito guardo e dopo poco anche non toccando nulla sparisce la scritta e vengono i punti interrogativi
    Per questo volevo saperlo

    RispondiElimina
  3. Sto infatti pensando di comprare una strip pin maschio in modo da rendere tutto più semplice

    RispondiElimina
  4. ma posso scrivere qualsiasi cosa e farlo comparire nel
    display??? cosa devo scrivere precisamente nello sketch

    RispondiElimina
    Risposte
    1. certo, basta cambiare la riga 46,
      lcd.print("hello, world!");
      al posto di "hello, world!" scrivi il tuo messaggio (lascia le vigolette però!)

      ciao

      Elimina
  5. ciao ma come hai collegato lcd ad arduino...hai stagnato i fili al display?

    RispondiElimina
  6. ciao ma come hai collegato lcd ad arduino...hai stagnato i fili al display?

    RispondiElimina
    Risposte
    1. Ciao, alcuni display vengono venduti con una striscia di pin saldati nei fori del display, se il tuo non li ha puoi saldare i pin o dei fili. Ciao

      Elimina
  7. Ma i pin d0 - d3 per cosa vanno usati? Ho provato a trafficare un po' ma quando modifico lo sketch che mostri mi stampa caratteri a caso... sono bloccato :3

    RispondiElimina
    Risposte
    1. Prova a fare i collegamenti uguali allo schema sopra, il circuito è collaudatissimo quindi deve funzionare!

      Elimina
  8. ciao ho fatto i collegamenti come dal tuo schema..ma non funziona nulla...sullo sketch mi da il seguente eroore

    ^

    exit status 1
    expected unqualified-id before numeric constant

    Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
    "Mostra un output dettagliato durante la compilazione"
    in "File -> Impostazioni"

    RispondiElimina
  9. va bene se uso una resistenza da 1 k ohm ?

    RispondiElimina
  10. Ciao ho seguito alla lettera il tuo schema e inserito resistenza da 2.2 ohm, ma quando programmo mi dà di defolut pin 8 e 9 anzichè 2 e 3. Preciso che uso MBlock

    RispondiElimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post