Tutorial: Arduino scrive su un Lcd

Mi sono arrivate alcune richieste in merito alla possibilità di scrivere su dispaly Lcd con Arduino, ho quindi iniziato qualche test in merito che oggi vorrei condividere con te. Come sempre consioglio di partire dal sito ufficiale Arduino per tutti i dubbi e gli approfondimenti.

lcd 2x16

Partiamo dalla scelta dell’Lcd: indipendentemente dal numero di caratteri e linee quello che più è importante è il tipo di processore e driver che il costruttore del tuo Lcd ha utilizzato, quello in figura è un display LCD 2×16 con driver Hitachi HD44780, è anche quello più utilizzato, ne ho trovati alcuni tra i componenti elettronici di recupero in mio possesso e tutti utilizzano il medesimo driver.

La prima cosa che ti interesserà sapere è come collegarlo, per questo è necessario distinguere i display di questo tipo in due categorie quelli a 14 contatti e quelli a 16 contatti,la differenza è che questi ultimi sono retroilluminati e la luminosità viene regolata agendo sul pin 15 e 16. Ecco la tabella dei collegamenti:

Pin Utilizzo
1 Vss: GND – Massa
2 Vcc: +5v
3 Vee: Contrasto
4 RS: indica il tipo di comando che inviamo, pin 12 di Arduino
5 R/W: indica all’lcd se deve scrivere o leggere – 0 scrivi 1 leggi
6 Enable (E): indica che i dati per la lettura, pin 11 di Arduino
7 DB0: linea dati 0, non usato
8 DB1: linea dati 1, non usato
9 DB2: linea dati 2, non usato
10 DB3: linea dati 3, non usato
11 DB4: linea dati 4 collegato al pin 5 di Arduino
12 DB5: linea dati 5 collegato al pin 4 di Arduino
13 DB6: linea dati 6 collegato al pin 3 di Arduino
14 DB7: linea dati 7 collegato al pin 2 di Arduino
15  Led+: terminale positivo per la retroilluminazione
16  Led-: terminale negativo per la retroilluminazione

Avrai notato che i pin 7,8,9 e 10 sono indicati come non collegati, i dispaly di questo tipo posson essere pilotati con 4 o 8 bit, solitamente essi sono pilotati con 4 bit risparmiando pin di Arduino da destinare ad altri scopi, la differenza tra una modalità e l’altra è la velocità di trasferimento dell’informazione al display, non trovandoti in ambienti critici la modalità a 4 bit è sufficente ed ha il vantaggio appena descritto.

Ed ecco lo schema di collegamento classico dell’LCD al tuo Arduino:

Schema di collegamento Lcd e Arduino

Il potenziometro collegato al pin 3 dell’Lcd è di 10K e ti permette di regolare il contrasto del display, provandolo vedrai che ruotando il potenziometro da un estremo all’altro scompariranno i caratteri o saranno coperti dai punti, troppo evidenti, del display.

In questo collegamento non sono utilizzati i pin 15 e 16, non dovresti aver prblema a collegarli con un potenziometro da 10K anch’essi per regolare l’intensità della retroilluminazione.

Vediamo lo sketch, partiamo con il primo, classico e molto semplice “Hello Word” che trovi anche tra gli esempi del sito e dell’Ide. Il funzionamento è molto semplice perchè la comunità di sviluppo Arduino ha tra i suoi membri appassionati con voglia di condividere le proprie idee che hanno scritto e rilasciato sotto licenza Cretive Common la libreria LiquidCrystal.

Ed ecco lo sketch:

#include <LiquidCrystal.h>

// initialize the library with
// the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row,
  // since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

linea 1: includi la libreria LiquidCrystal.h che semplifica tutte le operazioni di scrittura sul display;
linea 5: inizializza l’oggetto lcd passandogli i pin a cui il display è collegato sul tuo Arduino, nel caso illustrato al pin 12 di Arduino è connesso il pin 4 del display (RS) al pin 11 di Arduino il pin 6 del display ed ai pin 2,3,4 e 5 sono connessi i pin lcd 14,13,12 e 11 come da schema;
linea 7: la funzione setup di Arduino serve a settare tutti i parametri di startup dello sketch;
linea 9: inizializzi il display vero e proprio indicando al metodo begin il numero di caratteri e righe, nell’esempio 16 cratteri e 2 righe, se sbagli i parametri otterai delle anomalie nella gestione come ad esempio inserendo 8 e 1 non potrai mai scrivere oltre l’ottavo carattere e mai sulla seconda riga;
linea 11: scrivi “hello, world!” sul display, come vedi è molto semplice, basta utilizzare il metodo print della classe liquidCrystal. La frase sarà scritta partendo dal primo carattere della prima riga del display;
linea 14: la funzione loop di Arduino è quella ciclicamente ripetuta dal processore drante tutto il ciclo di funzionamento dello sketch;
linea 18: sposta il cursore alla posizione carattere 0 della seconda riga (1) ricorda ch per Arduino la prima riga del display è la 0 e la seconda di consegueza è la 1;
linea 20: utilizzando nuovamente il metodo print puoi scrivere nella nuova posizione ciò che vuoi, nell’esempio ad ogni ciclo dello sketch viene aggiornato il valore in millisecondi/1000 dalla partenza dello sketch stesso, la prima riga non viene mai modificata.

Nei prossimi articoli ti mostrerò altri interessanti esempi di utilizzo dei display Lcd.
Buon lavoro

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/tutorial-arduino-scrive-su-un-lcd.html

131 commenti

2 ping

Vai al modulo dei commenti

    • brisik il 3 Dicembre 2011 alle 15:43
    • Rispondi

    interessante articolo solo che io ho un display piu grande e ha 20 pin come faccio

    1. Ciao Brisik,
      che tipo di display possiedi? e che integrato utilizza ?
      Se mi fornisci queste specifiche posso cercare di capire il problema e magarti darti qualche suggeriemnto utile a tutti.

      Ciao
      Mauro

    • Travis9011 il 2 Gennaio 2012 alle 04:04
    • Rispondi

    Hai mai provato a modificare variabili visualizzate su display tramite pulsanti e salvarle nella eeprom? Sarebbe molto interessante…

    1. Bellissima idea, che ne pensi di svilupparla, io posso pubblicare i tuo risultati una volta pronti e insieme ad altri appassionati di Arduino troveremo sicuramente un buon progetto da realizzare.

      Ciao

  1. Ciao a tutti! Ho inziato da pochi giorni a dilettarmi con Arduino, ho provato a montare il progetto da voi proposto però mi sono imbattuto in un inconveniente: il mio display 16×2 è un Zettler ACM1602B (http://www.zettlerelectronics.com/pdfs/lcds/ACM1602B.pdf) e ha una configurazione dei pin diversa da quella che voi presentate, sono riuscito a far variare l’illuminazione tramite il potenziometro ma non riesco a stampare caratteri! Qualcuno mi sa aiutare?

    1. Ciao LG,
      mi puoi indicare il chip del tuo display?

      Mauro

  2. Mi cogli un pò impreparato anche perchè il display era contenuto in un kit Arduino quindi non so bene che specifiche abbia se non quelle del link che ho messo nell’ultimo post e il fatto che utilizza il controller HD44780 (se può essere di rilievo) purtroppo non sò altro anche perchè come avevo detto ho iniziato da poco con Arduino e non ho ancora dimistichezza purtroppo

    1. Ottimo, l’informazione di cui avevo bisogno è proprio quella che mi dai: HD44780.
      Quindi tornando alla tua richiesta iniziale, ho osservato nuovamente il link che mi hai inviato è la piedinatura è compatibile con quell mostrata nella figura, c’è una differenza con l’elenco dei pin del mio LCD, riguarda i pin 1 e 2 che sono invertiti, il tuo deve rispettare il disegno, il pin 1 dell’LCD è massa, il pin 2 dell’LCD è la Massa ( GND )

      Se ci sono cose che non ho compreso scrivimi cosa si verifica.

      Mauro

  3. Grazie della risposta, si i pin che hai indicato sono effettivamente invertiti però oltre a questo ho notato anche che i pin nel modello da te usato sono posti sulla parte superiore del display, nel mio caso sono sulla parte inferiore, inoltre (se non mi sbaglio) ciascun pin credo sia “simmetrico” rispetto al tuo display ma anche ricollegando tutto seguendo il datasheet del mio display con la configurazione che hai proposto tu non riesco a stampare nulla se non quadretti neri, ora sto facendo altre prove per vedere di risolvere il problema. Colgo l’occasione per complimentarmi del lavoro che svolgi per il tuo ben curato blog

    1. La posizione non è fondamentale, io non possiedo il display che vedi in figura, quella è solo una rappresentazione grafica, il mio ha i pin su due file da 8 laterali, ma poco importa.
      Vicino ad un pin dovresti leggere il numero 1 o il 16, se hai individuato quelli per la retroilluminazione sei già a posto.
      Mi dici che vedi quadratini neri, hai provato a ruotare il potenziometro per ridurre il contrasto? magari non è quello in ogni caso saprai se il potenziometro è connesso in modo corretto o meno.

      Attendo il risultato delle tue prove.

      Ciao

    • iw2eux il 24 Aprile 2012 alle 17:33
    • Rispondi

    Ho lo stesso problema di LG, anche io con un ACM1602B, l’LCD ha questi pin + – 1 2 3 4 5 6 7 8 9 10 11 12 13 14. Mi si illumina di scuro solo una riga, nessun carattere viene stampato e il potenziometro funziona.
    Avete consigli ?
    Grazie Luciano

    • gpisto il 11 Maggio 2012 alle 14:39
    • Rispondi

    Ho appena collegato un ACM1602B della zetler seguendo lo schema indicato. tutto funziona alla perferzione. bisogna solo stare attenti alla numerazione della piedinatura.

    1. Ottimo, se vuoi condividere la tua esperienza con altri appassionati inviami qualche foto/schema e due righe .. magari sul tuo progetto.

      Mauro

    • Saverio il 5 Giugno 2012 alle 19:31
    • Rispondi

    Salve,ho iniziato da poco a lavorare con arduino, come alcuni sopra, anche io ho problemi collegare il modello ACM1602B della zettler electronic, il mio LCD addirittura non si accende e non capisco come mai, avendo rispettato lo schema e avendo fatto le dovute inversioni! Qualcuno potrebbe aiutarmi magari allegando una foto? è possibile che il mio display sia uscito difettoso? grazie in anticipo!!

    1. Guardando il datasheet: http://www.azdisplays.com/PDF/acm1602b.pdf il collegamento è identico a quello mostrato nell’articolo a meno dei primi due pin:
      il pin 1 è la massa ( GND ) ed il pin 2 è il positivo ( +5v ); tutti gli altri collegamenti sono identici.

      I pin 15 e 16 servono alla retroilluminazione dove 15 è – e 16 è +;

      Spero di poter essere stato di aiuto a te ed anche ad altri, purtroppo non possedendo questo tipo di display non posso fare esperimenti, se qualcuno abita vicino a Milano e volesse prestarmene uno per i test potrei fornirVi maggiori dettagli.

      Mauro

    • Daniel il 14 Giugno 2012 alle 17:28
    • Rispondi

    Ciao, sto facendo alcune prove con Arduino Leonardo + motor shield r3 + LCD: si verifica che lo schermo va in tilt (scritte a caso, lampeggia, si oscura…). Mi pare di capire che il problema riguardi i pin, alcuni dei quali utilizzati sia dalla shield e sia da LCD. Ho provato ad assegnare alcuni pin liberi all’LCD: la cosa migliora ma non sono sicuro del risultato. I pin si possono assegnare liberamente per l’LCD o bisogna per forza rispettare l’impostazione “LiquidCrystal lcd(12, 11, 5, 4, 3, 2);”? Ci sono alternative? Se il problema sono i pin, si può usare un’altro tipo di schermo? Quello che ho adesso è come quello del tuo articolo… grazie per l’aiuto

    1. Ciao Daniel penso tu abbia colto nel segno.
      I comportamenti anomali sono certamente dovuti all’uso di quei pin da parte della shield, io ho utilizzato nei miei artivoli sul dolly una motor shield Fe che ti permette di variare i pin usati dalla shield con dei jumper.

      In ogni caso proprio quando inizializzi la classe LCD i pin che specifici sono quelli che vuoi usare, puoi cambiarli come a te viene più comodo.
      Leggi i miei articoli sul Dolly ed LCD, ne usciranno a breve altri, sicuramente ti chiarirammo molto le idee per il tuo progetto.

      Mauro

    • Rambod il 14 Giugno 2012 alle 23:36
    • Rispondi

    Ciao,
    io ho un LCD ACM1602B della ZETTLER, ho collegato tutto seguendo gli schemi dei miei pin sull’LCD correttamente, riesco solamente a controllare l’illuminazione, e mentre vario l’illuminazione vedo dei quadretti neri che appaiono e scompaiono! Ma mai nulla di concreto! Qualcuno può darmi una mano?

    1. Ciao Rambod,
      sei fortunatissimo, domattina pubblico un tutorial proprio sull’LCD ACM1602B.

      Mauro

    • Stefano il 27 Gennaio 2013 alle 10:05
    • Rispondi

    Salve e ciao, mi chiamo stefano e sono un neofita purissimo (per quanto le mie reminiscenze scolastiche di elettrotecnica siano alquanto arruginite). Ovviamente mi è arrivato da poco un Arduino kit discretamente fornito. Un paio di aiutini per favore: volevo provare ad accendere il mio lcd 16×2 (displaytech 162b l’unica dicitura che son riuscito a scovare). Nello schema usi un potenziometro..che ovviamente non ho (ne ho uno slider ma non so come collegarlo), posso fare anche senza?? Secondo problemino: nel kit ho solo jumper intestati ai capi con connettore maschio, come faccio a “dividere” il filo?? (chiedo scusa per le mie espressioni arcaiche) mi spiego meglio: il fil nero che esce dal potenziometro nel tuo sketch qui sopra si divide uno in arduino e uno per l’ lcd, come posso risolvere con i miei jumper?? Ho quasi paura che dovrò fare un ulteriore acquisto di materiale SOB
    Grazie
    Stefano

    1. Ciao Stefano,
      ti iuto volentieri, mi indici quale kit arduino hai acquistato? Così controllo la lista dei materiali presenti.

      Per LCD, se é un kit ufficiale, l’importante é la piedi natura del display che deve essere nel kit.

      Lo slider é un potenziometro a tutti gli effetti ha 3 pin: 1 va al +5v, 1 va al Gnd e il centrale, quello che varia resistenza variando la leva va all’LCD.

      Per sdoppiare i cavi usa un breadboard.

      Mauro

    • stefano il 28 Gennaio 2013 alle 15:56
    • Rispondi

    Ciao Mauro,
    Possiedo un lcd “phico d-0 94v-0” 16X1 . Il mio poblema persiste nel fatto che riesco a visualizzare solo i primi otto caratteri mentre gli altri nemmeno si accendono con gli usuali quadretti neri. Avendo già cambiato il parametro “lcd.begin” non camiba nulla . Mi puoi aiutare?…:)

    1. Ciao Stefano, non conosco il tuo LCD, prova a verificare nel datasheet che sia pilotabile con soli 4 bit ( 4 fili ) e come debbano essere collegati.

      Mauro

      • Jonathan il 12 Maggio 2015 alle 23:22
      • Rispondi

      salve stefano,
      ho avuto il tuo stesso problema e facendo questo passaggio ho risolto :

      #include
      LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

      void setup() {
      lcd.begin(16, 2);
      lcd.print(“CIAO MON”);// qui inserisci i primi 8 caratteri
      }

      void loop() {
      lcd.setCursor(0, 1);
      lcd.print(“DO !!! “);// e qui i successivi 8 ed il gioco è fatto !!!
      }

      1. Grazie Jonathan !!!

    • davide il 22 Febbraio 2013 alle 20:29
    • Rispondi

    ciao mauro, secondo te questo lcd può funzionare a 4 bit?
    MTC-20201X

    perche mi si accende solo la prima riga e non scrive niente.
    grazie ciao

    1. Ciao Davide,
      ho cercato in internet il produttore e penso di avelo trovato, dal datasheet (http://www.microtipsusa.com/pdfs/products/Character/NMTC-S20201XRGHS.pdf) semrea che possa lavorare sia a 4 sia a 8 bit.

      Probabilmente le istruzioni inviate al display non sono quelle compatibili con l’LCD della libreria LiquidCrystal di arduino, devi cercare una libreria per quel chip.

      Mauro

    • BBf il 23 Febbraio 2013 alle 14:44
    • Rispondi

    Ciao a tutti! Ho inziato da pochi giorni a dilettarmi con Arduino,il mio display è Display LCD 16×2 – RGB – Positivo comprato qui. http://www.robot-italy.com/it/lcd-display-16×2-rgb-positivo.html
    Ho già collegato il dispositivo al mio arduino uno utilizzando un potenziometro come nel esempio qui in alto funziona solo che vorrei sapere di preciso come collegare gli altri piedini per avere la luce blu con lettere bianche??.
    ecco a voi il mio datasheet
    http://dlnmh9ip6v2uc.cloudfront.net/datasheets/LCD/Monochrome/ADM1602K-FS%28RGB%29-FBW.pdf

    se non riuscite a visualizzarlo potete trovarlo sul sito dal quale o comprato il display con link scritto in precedenza. inoltre se e posssibile sarebbe meglio avere uno schema elettrico o di montaggio come quello she ce gia sopra con l’aggiunta di questa informazione. Grazie in anticipo a chi risponde.

    1. Ciao Luigi,
      leggendo sul sito da cui hai acquistato ho trovato:

      Note: The backlight is controlled by pins 18, 17, and 16.
      E nel datasheet riporta il 15 come catodo della retroilluminazione e 16,17,18 come anodo dell’RGB.

      Se hai difficoltà a pilotarli ti consiglio di chiedere al sito da cui hai acquistato se esiste un modo per pilotare facilmente i pin.
      Sembra un buon prodotto, non l’ho mai provato e quindi non so darti più aiuto.

      Mauro

    • Giovanna il 29 Marzo 2013 alle 20:06
    • Rispondi

    Ciao,
    io ho un LCD BMX-01 E226252 , ho collegato tutto seguendo gli schemi dei pin. Pur controllando con il multimetro che ci sia continuità nel circuito riesco a visualizzare dei quadratini neri solo andando a premere sul display. Fattò ciò riesco anche a controllare l’illuminazione,ma mai nessun carattere. Qualcuno mi può aiutare?

    1. Ciao Giovanna,
      il display non lo conosco hai un link al datasheet che posso consultare?

      Mauro

        • Giovanna il 31 Marzo 2013 alle 00:23
        • Rispondi

        Purtroppo non sono riuscita a trovare il datasheet in rete..la cosa strana è che per vedere almeno i quadratini neri devo fare pressione sul lato sinistro del display..potrebbe essere danneggiato?

        1. Ciao Giovanna,
          la pressione sul display evidenzia i quadratini perché comprimi i cristalli dell’LCD, probabilmente lo hai alimentato in modo non corretto o il contrasto é impostato male.

          Senza Datasheet é difficile collegare un display in modo corretto e procedere per prove successive potrebbe danneggiare il display.

          Ho trovato in rete questo:
          http://www.ece.msstate.edu/classes/ece4723/dissect/040293027582/productA.html
          C’è un Data Sheet di un display che dovrebbe essere simile al tuo, controlla che ti coincidano i pin.

          Mauro

            • mario il 12 Aprile 2013 alle 10:37

            Salve, ho lo stesso display di Giovanna e la stesso problema di mancanza di un Datasheet. Il link indicato nella risposta precedente mi è stato utile per capire innanzitutto che l’alimentazione va data a 3.3V e non a 5V. Ora ho il seguente problema: con la configurazione in figura e lo sketch mostrato sopra il display si illumina, la regolazione del contrasto col potenziometro funziona ma l’unica cosa visualizzata è una riga di quadratini neri. Forse il display non supporta la comunicazione su 4 bit? Qualcuno mi può aiutare? Grazie

          1. Ciao Mario,
            dal datasheet sembra che questo display supporti senza problemi i 4bit.
            Da esperienza potrebbe essere dovuto ad un inversione sui pin enable, rs, r/w oppure un collegamento errato sui D4-D7.

            Mauro

            • Daniele F il 22 Agosto 2013 alle 10:58

            Ciao, anche io ho lo stesso display LCD BMX-01 E226252 16×2. Ho seguito i collegamenti del link da te riportato (queso: http://www.ece.msstate.edu/classes/ece4723/dissect/040293027582/productA.html)e ho effettuato una connessione a 4 bit. Il risultato sono una serie di scritte che scorrono a gran velocità. Inserendo un delay nello sketch sono riuscito a visualizzarle. Escono scritte tipo:
            5c
            _T1_^Vu#R2

            che iniziano a scorrere. Dopodiché il numero che precede la “c” inizia a variare mentre quello dopo la “R” si incrementa. Insomma un bel casino apparentemente senza senso. Suggerimenti su quale potrebbe essere il problema? grazie mille in anticipo.

            • Daniele F il 22 Agosto 2013 alle 13:06

            Ignora tutto. Collegamento errato dei pin D4-D7. Tutto risolto. Adesso funziona perfettamente. Grazie

    • Alessandro il 28 Aprile 2013 alle 18:34
    • Rispondi

    Ciao! sto iniziando a fare le prime prove con Arduino, ho provato ad installare un Display LCD; ho riscontrato lo stesso problema di molti..ovvero funziona l’illuminazione, la retroilluminazione ma non riesco ad vedere i caratteri..ho cercato su internet il displey che ho (ADM1602K-NSW-FBS/Z), credo sia questo il datasheet https://www.sparkfun.com/datasheets/LCD/ADM1602K-NSW-FBS-3.3v.pdf, solo che non riesco ancora a farlo funzionare..perchè non capisco cosa debba fare..

    1. Ciao Alessandro,
      controlla i collegamenti dei pin, il 90% degli errori é dovuto ad un errato collegamento di RS,Enable,ecc…

      Mauro

  4. Se il pin1 deve stare a 5v perchè nel disegno invece lo hai messo a massa ? nel senso che è indifferente o è un errore ?

    1. Ciao Daniele,
      hai ragione lo schema si riferisce ad un display differente dal mio che ha un datasheet come quello in tabella.

      Alcuni LCD hanno il primo pin a 5v ed altri a Gnd ed il secondo invertito.

      Ti consiglio di far riferimento al tuo datasheet per i collegamenti.

      Mauro

      1. magari metti un appunto vicino allo schema, altrimenti qualcuno potrebbe fare confusione, magari scrivi anche che vcc spesso può venire indicato come Vdd come è accaduto a me nel display a 4 linee.

        1. Ciao Daniele,
          lo farò 🙂 anche se adesso grazie allo scambio di info nei commenti tutti coloro che li leggono sapranno di questa possibilità.

          Mauro

    • Marco il 10 Giugno 2013 alle 08:05
    • Rispondi

    Buongiorno io ho un problema con il mio display e collegandolo con Arduino seguendo la guida riesco solo a vedere quadratini neri. Il display è qc1602a e il datasheet è http://e-licktronic.com/attachment.php?id_attachment=20 Dove ho sbagliato?

    1. Ciao Marco,
      sei sicuro di aver letto la guida? il problema sembra l’elevato contrasto.
      Nell’articolo c’è scritto come regolarlo.

      Mauro

    • Wolki il 10 Giugno 2013 alle 09:28
    • Rispondi

    Ho provato un arduino con shield ethernet e lcd 16x 2
    Sembra che le due cose non possano funzionare assieme.

    ti torna?

    1. Ciao Wolki,
      hai provato a collegare l’LCD ai pin NON usati dalla Ethernet Shield.
      Probabilmente è solo un conflitto di pin perché hai utilizzato i medesimi pin.

      Mauro

  5. Ho il display che mi è uscito nello starter kit comprato una settimana fà. ha la stessa configurazione ma quando attacco il polo positivo e negativo l’arduino si spegne e il display non si accende. Cosa può essere successo? Ho riprovato molte volte a farlo ma il risultato è lo stesso. Arduino è alimentato con la usb del computer.

    1. Ciao Pro,
      dalla tua descrizione sembra che tu stia collegando in corto circuito qualcosa.

      Mauro

    • Claudio il 6 Luglio 2013 alle 18:26
    • Rispondi

    Salve, volevo un info, ho un display denominato DISPLAYTECH 162F (di cui penso questo sia il datasheet http://www.mikrocontroller.net/attachment/14142/LCD162F_DIS.pdf) e un “Arduino” chiamato ET-Easy168ST dato che non dispongo di un potenziometro (ne di nient’altro il materiale è stato fornito dall’università) volevo sapere se potevo far funzionare il display anche senza il potenziometro.
    Se non è fattibile senza potenziometro, almeno sapere la configurazione minima per capire se il display è ancora funzionante.

    Grazie in anticipo 🙂

    1. Ciao Claudio,
      il potenziometro è molto utile sopratutto perché regola il contrasto del display.
      Il datasheet mi sembra chiaro, se segui uno degli articoli che ho scritto su come sono collegati i pin del display ad arduino sono certo che potrai rapidamente eseguire il test che desideri.

      Mauro

        • Claudio il 6 Luglio 2013 alle 19:29
        • Rispondi

        Grazie per la celere risposta,
        Ho provato varie volte di collegare il display senza il potenziometro, ma non sono riuscito ad ottenere altro che delle strisce casuali (verticali, orizzontali che coprivano solo sezioni di schermo) che comparivano e scomparivano in maniera casuale, volevo solo sapere se era indispensabile il potenziometro e per questo non riuscivo a fare funzionare il display oppure poteva essere rotto o ancora se ero io a sbagliare qualcosa.

        1. Ciao Claudio,
          senza poter osservare il display di persona, facendo dei test sarei veggente a poterti dare una risposta.
          Da come lo descrivi sembra un errore di collegamento, se hai seguito alla lettera i pin da collegare e non hai commesso errori potrebbe essere un problema di sketch incompatibile o, come affermi, rotto.

          Certo é c’è un potenziometro é importante ed ha un costo ridicolo, se vuoi davvero provare a continuare in questo hobby consiglio di procurarti un po’ di materiale elettronico.

          Mauro

            • Claudio il 7 Luglio 2013 alle 10:58

            Ma infatti farò i dovuti acquisti, la mia curiosità era sapere se dato che ho provato a collegare tutto senza averlo, ho solo perso tempo perché era impossibile che funzionasse dato che il potenziometro giocava un ruolo determinante oppure il potenziometro serviva solo ad aggiungere la funzione di regolazione del contrasto, forse giustamente per voi la risposta è ovvia, ma io non la conosco 😀

            Ho riportato il mio problema solo perché così nel caso in cui fosse già capitato a qualcuno che avesse risolto avrei potuto risolvere anch’io, non per farmelo risolvere da qualche veggente 😛

            Comunque grazie ancora e complimenti per il sito!

          1. Ciao Claudio,
            il potenziometro é importante perché senza la regolazione del contrasto potresti ottenere che il display si accenda ma non visualizzi nulla oppure si accendano tutti i quadratini neri che dovrebbero comporre il carattere.

            Entrambi i comportamenti potrebbero essere causati dal contrasto sbagliato e non ti permetterebbero di verificare il corretto funzionamento.

            Mauro

    • Giuseppe il 7 Luglio 2013 alle 21:16
    • Rispondi

    Ciao Mauro, vorrei ancora “approfittare” della tua competenza per chiederti aiuto nel collegamento di un display nokia 5510. Ho cercato su fritzing, ma il progetto che viene fuori non funziona. Il display che ho è questo: http://www.ebay.it/itm/261034182941?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_6482wt_1388

    Su fritzing ho trovato questo: http://fritzing.org/projects/connect-nokia-5110-lcd-module-to-arduino/

    Grazie.

    1. Ciao Giuseppe,
      vorrei aiutarti ma non possiedo un display simile al tuo e non ho mai avuto occasione di provarlo, ciò che posso dirti é che sia lo schema, sia il venditore mostrano la piedinatura da seguire, confrontare per verificare che corrispondano, a volte basta un pin in posizione differente dallo schema e non funziona nulla.

      Mauro

        • Giuseppe il 9 Luglio 2013 alle 09:40
        • Rispondi

        Ok, grazie mille!!!

    • Fabrizio il 12 Luglio 2013 alle 12:52
    • Rispondi

    In questi giorni mi sto avvicinando ad Arduino, e questo è il primo progetto per il pilotaggio di un LCD che comprendo! Se ho ben compreso appunto, basta trovare un qualsiasi display 16 caratteri su 2 righe compatibile con HD44780. Corretto? Grazie e bel sito davvero!

    1. Ciao Fabrizio,
      correttissimo, l’integrato si chiama anche driver in quanto controlla, guida, il display.

      Mauro

    • valon il 7 Agosto 2013 alle 16:17
    • Rispondi

    Ciao, ho un problema con la libreria LiquidCrystal. prendo l’esempio HELLO WORLD lo carico su arduino pero non va, mi da questo problema (redefinition of ‘LiquidCrystal lcd’), come posso rimediare grazie

    1. Ciao Valon,
      la libreria LiquidCrystal è inclusa nell’IDE Arduino.
      Prova ad usare quella senza aggiungerne una nuova.

      Mauro

    • valon il 7 Agosto 2013 alle 20:16
    • Rispondi

    con quella gia che ce l-ho provato mi fa lo stesso problema, grazie della risposta

    1. Ciao Valon,
      hai provato a toglierla dallo sketch, forse la includi più volte attraverso qualche altra libreria che hai incluso.

      Mauro

    • massimo il 19 Febbraio 2014 alle 20:34
    • Rispondi

    Ciao Mauro, sono alle prime armi con Arduino, ho provato a lanciare lo sketch di cui al presente articolo sull’IDE 1.0.5 ma la compilazione riscontra errori di “conflicting return type specified for ‘virtual void LiquidCrystal::write(uint8_t)'” e di “overriding ‘virtual size_t Print::write(uint8_t)'”. Lo stesso sketch lanciato sull’IDE 0022 non dà errori di compilazione. Evidentemente la libreria LiquidCrystal non è per tutte le versioni di Arduino. Io adopero un altro tipo di LCD (1602A-1-V1.3) ma che ha le stesse connessioni dell’Hitachi del tuo esempio. Il punto è che a parte la retroilluminazione ed il contrasto – indipendenti dal listato – funzionanti, sull’LCD si vedono solo una serie di rettangoli (16) sulla prima riga suddivisi ciascuno da 40 piccoli quadrati (5×8). Per quanto abbia controllato e ricontrollato le connessioni tra Arduino ed LCD, non ho trovato errori di collegamento, la variazione del contrasto non evidenzia alcun carattere. Quale potrebbe essere la causa?
    Grazie,
    massimo

    1. Ciao Massimo,
      per il primo errore potrebbero essere solo cambiati dei metodi nella libreria e ti consiglio di adattarli, io uso la. LiquidCrystal con IDE 1.0.5 da mesi senza difficoltà, consulta uno dei miei articoli ultimi per trovare le differenze e correggere lo sketch.

      Nel secondo quesito se i collegamenti sono ok l’unica é che lo sketch non abbia gli stessi pin collegati e devi definire i nuovi pin dati.

      Mauro

        • massimo il 20 Febbraio 2014 alle 17:44
        • Rispondi

        Grazie Mauro,
        per il primo quesito , grazie alle tue indicazioni, ho risolto e quindi non mi dà più quegli errori. Per ciò che riguarda il secondo quesito, i pin 12, 11, 5, 4, 3, 2 di cui allo sketch sopra riportato sono collegati, rispettivamente, alle piazzole 4 (RS), 6 (EN), 11 (DB4), 12 (DB5), 13 (DB6) e 14 (DB7) dell’LCD. A questo punto devo pensare ad un guasto del display.
        Un’ultima domanda (per ora), ho notato nei tuoi sketch che a fianco delle righe compilate appaiono i numeri di riga, che compilatore adoperi?
        Ciao e di nuovo grazie

        1. Ciao Massimo, i pin corrispondono nell’esatta sequenza: 4a12, 6a11,…… Se si il problema potrebbe essere il display ma non dovrebbe neppure visualizzare la riga con i quadratini, quello é un errore tipico dei collegamenti errati.

          I numeri di riga li mette il plugin WordPress che uso per pubblicare il codice, il mio IDE non ha i numeri di riga perché é la ver.1.0.5 che avrai di certo anche tu.

            • massimo il 21 Febbraio 2014 alle 19:13

            Ciao Mauro, finalmente ho trovato il problema: non avevo messo a massa il piedino RW (5).
            Grazie per l’assistenza.
            massimo

          1. Bene Massimo sono contento che tu ci sia riuscito.

    • Giuseppe il 10 Marzo 2014 alle 16:37
    • Rispondi

    Salve, ho da poco acquistato un kit Arduino uno all’interno del quale c’è un display 16×2 QC1602A V2.0. Effettuando tutti i collegamenti in maniera perfetta regolando il potenziometro riesco a far vedere tutti i puntini ma solo della prima riga. Diminuendo la resistenza attraverso il potenziometro non riesco però a vedere alcuna scritta. Avete mai riscontrato questo problema?

    1. Ciao Giuseppe, è un problema che si presenta spesso se i collegamenti del display sono errati.
      Controlla di aver correttamene seguito le istruzioni fornite con il display per i collegamenti.

        • Giuseppe il 10 Marzo 2014 alle 19:25
        • Rispondi

        Grazie per l’immediata risposta ma ahimè i collegamenti sono stati fatti più volte correttamente. L’unico dubbio che mi sorge riguarda il potenziometro; i cavi alimentazione e massa devono obbligatoriamente passare per il potenziometro oppure è necessario rispettare +5V e GND?

        1. Ciao Giuseppe, il potenziometro regola solo il contrasto e da quello che mi scrivi riesci a regolarlo correttamente.
          La mancanza di testo sul display dipende dai cavi d4-d7,rs ed en non collegati ai pin giusti o collegati differentemente da come indicati nello sketch.

            • Giuseppe il 11 Marzo 2014 alle 11:59

            Ok, fortunatamente tutto risolto! Era una saldatura non effettuata correttamente! Grazie per la disponibilità!

          1. Ciao Giuseppe,
            sono contento che tu ci sia riuscito.
            Ero certo che fosse nel collegamento elettrico da ricercare il problema.

  6. Ciao e grazie per gli utili consigli !
    Ho un problema quasi incredibile (almeno per me …)
    Mi funziona tutto ma se tento di visualizzare il carattere “O” (maiuscolo o minuscolo) il display va in tilt (visualizza una serie di caratteri strani o addirittura niente) !
    Se tento di visualizzare la stringa è “ABCDEFGHIJKLMNPQ” funziona, se invece la stringa è “ABCDEFGHIJKLMNOP” non funziona più niente …
    Hai qualche idea in proposito ?

    Grazie

    Sebastiano

    1. Ciao Sebastiano, é un problema stranissimo anche per me, mai capitato. Sembra un problema di firmware del display o un difetto dello stesso.

      Prova a scrivere qualcosa che usi la stessa matrice della O ad esempio 0 (zero) o 8 (otto) infine prova a costruirti un carattere speciale con la matrice di punti che rispecchi la O e prova a visualizzarlo.

      Scrivimi come sono andati i test.

  7. Ciao Mauro,
    Grazie per la risposta !
    in effetti il carattere “0” (zero) riuscivo a visualizzarlo.
    Ho pensato a qualche problema legato alle saldature, così dissalda, salda e risalda … addio display !
    ah ah ah
    Oggi ne ho acquistato uno nuovo …
    E’ un po’ diverso dal precedente ma ingenuamente l’ho configurato come il primo (1602A) mentre il nuovo è 1602B …
    Risultato: non funzionava niente …
    Poi grazie al tuo articolo ho capito la differenza tra le due versioni
    (1602A / 1602B) e finalmente ho visto apparire “Salve mondo!” !!
    Senza le tue spiegazioni avrei buttato via anche il 2° display … e forse anche Arduino 🙂

    Grazie !

    Sebastiano

    1. Bene Sebastiano,
      sono contento che tu abbia risolto. Ora sei pronto per realizzare il tuo progetto.

    • nico_bass il 12 Maggio 2014 alle 12:15
    • Rispondi

    Ciao, lo so che hai già sentito questa domanda mille volte ma non sono riuscito a trovare una risposta nei commenti precedenti. Il modello del display è il ACM1602b…riesco solo ad utilizzare la retroilluminazione e basta, non vedo nessun carattere.

    il pin 5 posso collegarlo direttamente a 5V?

    1. Ciao Nico,
      ai display LCD ho dedicato molti articoli e di modelli in commercio ne esistono migliaia.
      Sicuramente è un problema di connessione tra i pin ed il loro vero scopo, prova a controllare il datasheet del produttore per capire se il tuo display ha i pin corrispondenti al mio schema.

    • luca il 26 Maggio 2014 alle 18:32
    • Rispondi

    ciao mauro sei semplicemente un genio, trovo ogni risoluzione ai miei problemi nel tuo blog.
    volevo domandarti una cosa..
    ho lo stesso display utilizzato qui, e ho provato a utilizzare invece delle uscite 12,11,5,4,3,2 ho utilizzato 22,24,26,28,30,32… con arduino mega.. provo, ma non funziona, si vede tutta la prima riga nera, mentre se provo con le uscite di default va.. non posso inizializzare altre uscite come ho fatto io?

    1. Ciao Luca,
      si si può, io lho fatto spesso usando l’arduino MEGA.
      Se vedi solo la prima riga potrebbe essere un errore nei collegamenti dei DATI 4-7 solitamente è nel collegare questi che si commettono gli errori.
      Prova anche a cambiare i pin a cui lo hai collegato senza tornare a quelli originali, es.: 32,33,34,35,36,37

      Mauro

    • Luca il 23 Giugno 2014 alle 23:42
    • Rispondi

    ciao io ho un problema con un lcd hd44780 collegato ad un pic16f84a.
    al display se non collego anodo e catodo non si accende nulla per prima cosa e poi quando collego anodo e catodo cmq non esce nessuna scritta. aiutatemi x favore

    1. Ciao Luca, penso tu abbia sbagliato blog 🙂 non ho conoscenze sui pic, lascio il tuo commento pubblico perché qualcun’altro possa aiutarti.

    • MARCO il 14 Luglio 2014 alle 22:44
    • Rispondi

    CIAO MICHELE IO HO COLLEGATO IL DISPLAY LCD PERFETTAMENTE CONTROLLATO COME è PROGETTATO PERò NON MI COMPARE NESSUNA SCRITTA DOPO IL COLLEGAMENTO IL DISPLAY NON è HITACHI MA è UN PM1621 P113 . DEVE ESSERE PER FORZA HITACHI?16X2

    1. Ciao Marco, io sono Mauro, forse volevi scrivere a Michele Maffucci. Provo a risponderti comunque: si questo tipo collegamento si riferisce al tipo di controllo descritto ed anche la libreria sw é per questo driver di controllo LCD.
      Se vuoi usare un display con un driver differente devi cercare la libreria ed i collegamenti per il chip specifico che hai.

    • Francesco il 21 Febbraio 2015 alle 17:24
    • Rispondi

    Ciao Mauro . Vorrei approfittare della tua disponibilità per chiederti un favore. Intanto volevo comunicarti che anche io uso un display lcd Hitachi hd44780 16×2 . Vorrei invertire il processo rappresentato qui in alto ovvero vorrei fare in modo che arduino facesse contare il display per esempio da 100 a 1, in ordine decrescente. Sarebbe possibbile ?

    1. Ciao Francesco,
      si è possibile, devi fare un contatore a scalare.
      Ti consiglio di leggere i miei articoli partendo da quelli del corso base per capire come puoi fare.

    • Raffaele il 9 Aprile 2015 alle 16:34
    • Rispondi

    Buongiorno, ho un piccolo problema con il pilotaggio/visualizzazione di un LCD 16×4. Nel mio sketch utilizzo 3 interrupt per contare degli impulsi (uno di questi ha frequenza che va da 0,1 a 3 Hz mentre gli altri 2 da circa 5 a 100 Hz). A volte nel funzionamento del sistema lo schermo diventa illeggibile in quanto alcuni caratteri assomigliano al cinese. Penso possa essere dovuto agli interrupt che mi bloccano momentaneamente la trasmissione dei dati verso LCD. Esiste un modo per proteggere questa trasmissione? Grazie. LCD lo aggiorno ogni 100ms utilizzando una variabile che vado a confrontare con millis(). Logicamente non posso usare delay(). Grazie

    1. Ciao Raffaele,
      non ho molta esperienza con gli interrupt per chi lascio il tuo commento perché qualche utente più esperto possa risponderti.
      Di mio posso ipotizzare di fare qualche test lasciando invariata la parte dell’LCD hai provato a leggere solo il primo interrupt e verificare se il problema si verifica?

    • Raffaele il 15 Aprile 2015 alle 15:14
    • Rispondi

    Ciao, intanto grazie comunque della risposta. Con gli interrupt il sistema non ha problemi e a volte funziona anche per diverse ore senza i problemi di cui parlavo nel post precedente. Il sistema serve a miscelare dei fluidi agendo su valvole proporzionali in funzione delle portate lette da 3 flussimetri (per i quali uso gli interrupt). Volevo chiederti se esiste un modo per riavviare il display senza dover per forza riavviare arduino. Secondo me il problema è dovuto a qualche interrupt che mi interrompe i dati inviato allo schermo ( utilizzo una comunicazione a 4 byte, probabilmente con le 8 linee di invio dati non mi da problemi ma non ho più pin liberi). Se io nello sketch inserisco un’istruzione lcd.begin attivabile mediante pressione di un tasto mi si riavvia la trasmissione dei dati? Grazie saluti

    1. Ciao Raffaele,
      comprendo il tuo problema e probabilmente hai ragione in quanto la LiquidCrystal usa dei delayMicroseconds che potrebbero subire l’effetto di modifiche ai TIMER interni ad opera degli interrupt.
      Ho letto la libreria LiquidCrystal.cpp, è un file di testo e puoi farlo anche tu, ed ho trovato:

      // Note, however, that resetting the Arduino doesn’t reset the LCD, so we
      // can’t assume that its in that state when a sketch starts (and the
      // LiquidCrystal constructor is called).

      da questo deduco che il richiamo alla begin non è sufficente ma ti serve richiamare il costruttore.

    • Massimiliano il 16 Novembre 2015 alle 16:31
    • Rispondi

    Salve, ho seguito con interesse i suoi tutorial con Arduino e ho deciso di acquistarne una versione compatibile per iniziare ed evitare di rovinarne una originale. È il mio primo approccio all’elettronica ma a livello scolastico conosco un pò di programmazione, tra cui il c++ che mi sta aiutando molto visto che è molto simile al wiring. Ho fatto qualche esercizio base con led normali e rgb, potenziometri, pulsanti buzzer etc..
    Da un paio di giorni sto provando un pò esercizi con un LCD 1602 iic v1.. Ho superato le difficoltà iniziali nel farlo funzionare ma ora ho un problema che non riesco a risolvere se non in maniera piuttosto scomoda; ovvero quando utilizzo la funzione lcd.print(“xxxx”); mi stampa solo il primo carattere di ogni print. Ho momentaneamente e rudimentalmente “risolto” 3 facendo un print per ogni carattere da stampare. L’errore non si verifica nel file di esempio della libreria Liquidcrystal_i2c che stampa il serial.read(). Oltre nelle stringhe tra virgolette il problema si presenta anche nel caso di un print di una variabile.. Ad esempio se stampo la variabile int secondo che prende millis() /1000 mi stampa solo la prima cifra, ovvero prosegue bene fino a nove poi resta a 1 per 10 secondi poi a 2 e così via fino a cento secondi che torna a 1.. Grazie per i tutorial, complimenti.

    1. Ciao Massimiliano,
      potrebbe essere legato ad un malfunzionamento della scheda “non originale” con quelle che utilizzo io non è mai successo.
      Sei certo che il display sia I2C e che la Liquidcrystal_i2c sia aggiornata?

        • Massimiliano il 19 Novembre 2015 alle 04:27
        • Rispondi

        Grazie per la risposta, a questo punto deduco sia la prima ipotesi; la libreria è aggiornata e il display è un lcm1602 iic v1. Se mando un print per ogni carattere da stampare il display funziona bene, spreco righe di codice ma pazienza… Il vero problema è stampare variabili a più caratteri o ancor peggio a più cifre, perché così di codice ne dovrei sprecare veramente troppo.
        Tornando al discorso principale, ci sono altre opzioni plausibili del malfunzionamento?
        Grazie e saluti

        1. Ciao Massimiliano,
          il miglior test che puoi eseguire è con un’altra arduino o genuino originale e verificare se l’errore è nel micro controllore o nel display.

            • Massimiliano il 21 Novembre 2015 alle 12:16

            Va benissimo, penso che per ora proseguirò con esercizi senza il display e quando avrò un po’ più di confidenza con l’elettronica e sarò sicuro di non fare danni acquisterò probabilmente un Arduino mega originale. Non potrei provarla senza acquistarla io perché sono l’unica persona che “conosco” ad averlo 😉 penso proprio che sarà il mio regalo di natale che mi farò. Magari insieme a un altro po’ di componenti interessanti.
            Grazie ancora per la disponibilità, spero di ricordarmi quando avrò acquistato di farti sapere come va lo schermo.
            Saluti.

          1. OK, ricorda che in Italia si chiama Genuino 🙂

    • Gabriele il 10 Dicembre 2015 alle 20:51
    • Rispondi

    Ciao!
    innanzi tutto complimenti per l’ottimo tutorial…veloce conciso e soprattutto chiaro!
    Purtroppo ho un problema con il mio display e spero tu possa aiutarmi 🙂
    Ho acquistato lo starter kit della sunfounder e incluso c’era anche il display con il potenziometro.
    Purtroppo pur essendomi assicurato di aver effettuato correttamente tutti i collegamenti sul display vedo sempre caratteri strani che nulla c’entrano con il mio testo (ti allego il link con la foto del display).

    Mi spiace non poterti fornire un datasheet o un modello più preciso però spero di averti fornito abbastanza informazioni e foto.
    Spero possa aiutarmi perchè ad oggi ho buttato via 3 giorni interi per questo lcd! :'(

    Ciao e grazie

    1. Ciao Gabriele,
      senza datasheet è difficile far funzionare un display LCD perché dovresti seguire le piste che partono dal driver di controllo e definire come sono connessi i pin di uscita.
      Chiedilo al produttore del display o procurati un display di cui il produttore ti fornisca il data sheet.

        • Gabriele il 12 Dicembre 2015 alle 14:31
        • Rispondi

        Ciao Mauro!
        Grazie per la celere risposta! alla luce dei tuoi consigli ho cercato ancora su internet..ma non trovo proprio nulla…
        Allora ho scritto una mail al produttore del display (Sunfounder) perchè anche sul loro sito non c’è nessun datasheet (eppure fanno un saccco di starter kit).
        Mentre aspetto notizie dal produttore, volevo chiederti, in base alle foto che ti ho mandato ( a proposito, ho visto che nel commento che ho fatto precedentemente non si vedono i link e quindi spero che le abbia comunque potute vedere) potrebbe essere un difetto del display? che sia rotto intendo…
        Ti chiedo questo perchè cercando su internet ho visto che ce ne sono molti uguali al mio (almeno esteticamente :P) e a tutti funziona…
        Grazie ancora per la gentile disponibilità!

        1. Ciao Gabriele,
          i link sono oscurati di default come i codici per evitare che si faccia pubblicità a siti che non la autorizzano, questioni legali.
          Dalle foto è di certo impossibile stabilire quello che mi chiedi.
          In generale io suggerisco, come avrai letto in alcuni miei articoli, di acquistare solo materiale originale e dotato di manualistica e datasheet per evitare di trovarsi con prodotti inutilizzabili.

    • Gabriele il 14 Dicembre 2015 alle 14:48
    • Rispondi

    Ciao Mauro,
    grazie ancora per i preziosi consigli.
    Posso chiederti quindi di linkarmi alcuni rivenditori ufficiali?
    Oppure direttamente il link ebay/amazon di un dispaly lcd?
    Cosi compro direttamente da li e seguo il tutorial di nuovo .
    Grazie e buona giornata

    1. Ciao Gabriele,
      io acquisto solitamente da http://www.robotics-3D.com e ricevo il materiale in 1 o 2 gg in Italia.
      Rivende molti marchi noti, tuttavia controlla sempre che nella scheda del prodotto ci siano i link ai datasheet o a dei tutorial per utilizzare i prodotti.

    • Max il 3 Febbraio 2016 alle 11:36
    • Rispondi

    1 Vcc: +5v
    2 Vss: GND – Massa

    devi correggere!!!

    1. Ciao Max,
      è già come scrivi, non comprendo cosa dovrei correggere, sul display che ho usato io è coerente.
      Se ti riferisci alla figura essa potrebbe differire in funzione del display che possiedi.

    • Aldo il 3 Febbraio 2016 alle 19:46
    • Rispondi

    Ciao, vorrei segnalare un errore nel tuo articolo. Nella tabella dei collegamenti hai invertito il pin 1 con il 2 (Vcc con GND). Lo schema di collegamento per fortuna è corretto.
    Saluti

    1. Ciao Aldo,
      su alcuni modelli i pin Vcc e Gnd sono come da schema ed in altri modelli sono invertiti.
      L’errore che segnali è di coerenza tra la tabella e l’immagine, ed hai ragione, in ogni caso ti invito a controllare bene sulle istruzioni del tuo Lcd per essere sicuro di non invertire l’alimentazione.

    • Vincenzo il 12 Marzo 2016 alle 17:28
    • Rispondi

    Ciao Mauro, sto imparando tanto dai tuoi tutorial egregiamente spiegati…
    Volevo chiederti una cosa sullo “scrivere su lcd”:
    Ho compilato un listato con tanti delay per simulare un semaforo, devo capire meglio i millis…. però adesso volevo scrivere su lcd lo stato delle uscite, uso 12 pin digitali per i led del semaforo, e tramite I2C piloto l’lcd 20×4 dove ho scritto un maschera fissa…… ma come stampo lo stato delle uscite? mi serve solo 0 e 1…
    Grazie dei suggerimenti e COMPLIMENTI!!!
    Vincenzo

    1. Ciao Vincenzo,
      non ho compreso la domanda.

    • Thealexx3c il 10 Settembre 2016 alle 03:17
    • Rispondi

    Buonasera. Ho molti LCD di recupero che erano montati su delle centraline degli allarmi. Il modello da me in possesso è un “SPC 1 94v0”. Non riesco nemmeno ad accenderlo, molto probabilmente perché non sarànemmno compatibile con il driver HD… . Avete informazioni in merito? Non riesco a trovare nessun datasheet, e dato che ho 3 o 4 di questi display posso provare a collegarli e vedere che succede. Se avete qualche info..

    1. Ciao Alex,
      purtroppo senza una sigla o datashhet puoi solo provare a fare reverse enginering delle piste per comprendere i collegamenti o andare per tentativi.

    • Luca il 22 Gennaio 2018 alle 19:29
    • Rispondi

    Buongiorno sono un ragazzo che come progetto per il diploma vuole costruire un inseguitore solare a 2 assi, per renderlo più interessante vorrei integrare nel progetto uno schermo lcd che dia i watt in tempo reale, secondo te come devo fare?
    Comunque grazie per tutti i tutorial sono tutti perfetti.,

    1. Ciao Luca,
      interesante progetto, dovresti valutare la carica della batteria nel tempo per calcolarti i watt.

    • giuseppe il 30 Marzo 2018 alle 12:37
    • Rispondi

    ciao , ho copiato questo progetto . ho copiato il programma , non mi ha dato errori , ma non compare nulla sul display.nella compilazione devo andare nella apertura file , poi andare su liquid cristal e poi mi da altre opzioni , quali debbo seguire?lato collegamenti sono giusti in base al tuo schema

    1. Ciao Giuseppe,
      sei certo che il modello di display sia identico a quello da me utilizzato ?
      Ti invito a leggere e comprendere anche altri articoli sui display che ho scritto per definire che modello di display possiedi e quali collegamenti eseguire.
      Se non sai determinare il modello puoi chiedere al costruttore/venditore del componente che hai acquistato.

    • Gaspare il 8 Settembre 2018 alle 18:53
    • Rispondi

    Ciao Giuseppe,
    come si fa a settare il chartset italiano al fine di poter scrivere le nostre lettere accentate (à, è ù ° ecc.)
    Grazie

    1. Ciao Gaspare,
      ho fatto delle ricerche in internet scoprendo che l’integrato di controllo del display viene pre-settato in fabbrica con un character set predefinito.
      Nel caso del HD77480 ( https://www.sparkfun.com/datasheets/LCD/HD44780.pdf ) di cui ti ho riportato il datasheet, possono essere presenti due set di caratteri, pagine 16 e 17 ) nel primo, corrispondente al codice ROM A00 sono presenti caratteri asiatici, mentre nel secondo, codice A02, contiene le lettere accentate.

      Non ho trovato tutorial o possibilità di sostituire il set di caratteri di default.

    • Raffaele il 25 Gennaio 2019 alle 17:02
    • Rispondi

    Ciao Mauro,
    ho acquistato una scheda arduino UNO, una scheda MPU6050 ed un display LCD1602A con lo scopo di gestire una parabola satellitare da installare sul mio camper.
    Ho collegato il tutto, testato il display con il tuo sketch ” hello word” e relativo conteggio, andato a buon fine,
    ho provveduto a caricare MPU6050 anch’esso a buon fine ma non vedo i dati dell’accelerometro/girobussola
    sul display.
    Premetto che è la prima volta che utilizzo questo tipo di componenti, pertanto chiedo se possibile avere qualche dritta per far funzionare il tutto.
    Grazie e complimenti per il tuo tutorial.

    1. Ciao Raffaele,
      quale esempio stai utilizzando per l’MPU6050?

    • andrea il 3 Febbraio 2019 alle 00:07
    • Rispondi

    Ciao a tutti mi chiamo Andrea, sto muovendo i primi passi in questo mondo ed ho appena creato un progetto ma ho un problema, funziona tutto ma dovendo alimentarlo a batterie volevo creare una sorta di stand by del lcd, ho trovato un tutorial che utilizza un mosfet come interruttore sulla massa.

    Vorrei sapere se collegandolo con un display a 4 bit succede qualcosa oppure posso farlo ?

    grazie della risposta

    1. Ciao Andrea,
      ti consiglio di chiedere a chi ha realizzato il circuito in quanto non conoscendolo potrei suggerirti qualcosa di errato.

        • andrea il 4 Febbraio 2019 alle 18:47
        • Rispondi

        se vuoi ti linko il tutto, il problema che è in inglese ma non riesco a rispondere sono riuscito solo a capire a cosa serviva, sto studiando anche quello…. sorry

        1. Grazie Andrea,
          ma non posso intervenire in progetti che no ho realizzato io.

    • andrea il 5 Febbraio 2019 alle 20:55
    • Rispondi

    grazie mille comunque

    • Stefano il 1 Maggio 2020 alle 11:07
    • Rispondi

    Mi hanno dato questi codici come si ottiene il disegno leggendo questi codici grazie mille

    [[ codice rimosso in automatico ]]

    1. Ciao Stefano,
      come hai letto nel regolamento del sito non è consentito incollare codice nei commenti.
      Se qualcuno ti fornisce del codice puoi chiedere all’autore eventuali dubbi, io posso chiariti i dubbi che riguardano il mio codice, in merito a quello fornito da altri è difficile per me capirlo.

    • andrea il 4 Dicembre 2020 alle 06:41
    • Rispondi

    Vorrei sapere se posso utilizzare un pannello alfanumerico grande 1 mt x35 come se si che caratteristiche deve avere. Grazie

    Andrea

    1. Ciao Andrea,
      ho eliminato la tua email dai commenti per evitarti inutile span da parte dei bot che ogni giorno scansionano il web in cerca di tali info, la tua email io la leggo perché l’hai inserita nell’apposito campo.
      In merito alla domanda, non saperi indicarti un display con tali dimensioni, se lo hai già individuato puoi controllare che sia compatibile con qualche libreria per Arduino.

  1. […] collegare il display ad Arduino come mostrato in questo articolo e ruota il cursore del potenziomentro fino a vedere i caratteri sullo […]

  2. […] World” dell’IDE Arduino, la descrizione dello sketch puoi leggerla in un mio precedente articolo, ecco […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

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