LCD Grafico 128×64 arduino

Antonio è un appassionato di Arduino come te in possesso di un display LCD grafico 128×64, il suo modello in particolare è il g64128-17:

LCD g64128x17

questo LCD grafico 128×64 è prodotto dalla CTC come molti altri modelli che trovi nel loro sito e spesso si trovano nel surplus elettronico delle fiere di settore.

Probabilmente anche io ne possiedo uno e non mancherò di provare a realizzare il progetto proposto da Antonio.

Collegare il display grafico LCD 128×64 ad Arduino

L’articolo originale, scritto da Antonio puoi leggerlo qui.

Per collegare qualsiasi componente elettronico è necessario che ti procuri il suo datasheet da cui apprendi i collegamenti da eseguire:

LCD grafico 128x64 arduino collegamenti

ma sopratutto il tipo di integrato di gestione che il costruttore ha utilizzato per il suo display ( NT7107 and NT7108 ) e che ti servirà per valutare la libreria da utilizzare, Antonio ha scelto e provato la GLCD.

Sketch di test del display lcd grafico 128×64

Lo sketch è di Antonio, lo riporto per poter analizzare linea per linea come da sempre nello stile del blog:

// include the library header
#include <glcd.h>

// include the Fonts
#include <fonts/allFonts.h>

void setup() {
  // Initialize the GLCD
  GLCD.Init();

 // Select the font for the default text area
  GLCD.SelectFont(Arial14);

  GLCD.print("Areacom \n Appunti \n tecnologici \n e non...");
}

void loop() {
  //loop vuoto è solo un test
}

riconosco la paternità dell’esempio e rimando al sito di Antonio se vuoi maggiori delucidazioni sullo sketch.

linea 02: includi la libreria glcd.h

linea 05: includi il file dei font, ossia dei caratteri utilizzati dalla libreria;

linea 09: inizializza la classe GLCD usando il metodo Init();

linea 12: seleziona il font che desideri utilizzare, in questo esempio “Arial”, e la dimensione del font: “14”;

linea 14: usa il metodo print() della classe GLCD per scrivere sul display;

linee 17-19: definisci la funzione loop() fondamentale per Arduino anche se vuota come in questo caso, trattandosi di un test Antonio ha preferito non modificare il testo visualizzato sul display ad ogni ciclo di loop(), ha voluto far visualizzare sul display la sola frase definita nella funzione di setup.

Semplice e coinciso, uno sketch che ti lascia ampio spazio per sviluppare tutto il tuo progetto in modo semplice.

Il video del display LCD grafico 128×64

Antonio ha realizzato anche un video che ti riporto:

Grazie Antonio per il tuo contributo.

  • 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/lcd-grafico-128x64-arduino.html

31 commenti

1 ping

Vai al modulo dei commenti

  1. Nessun grazie Mauro, per me è stato solo un piacere poter contribuire al mondo “Arduino”, tramite persone in gamba come te…

    Peccato che il 5 Luglio non posso partecipare alla giornata organizzata da te ed altri tuoi collaboratori, visto la distanza che mi separa dal luogo dell’evento.

    A presto 🙂

    Antonio

    • Alessandro il 30 Luglio 2013 alle 23:27
    • Rispondi

    Dalla mia esperienza collegando così il mio LCD G64128 non si vedeva nulla, ho inserito un potenziometro da 10K tra Vout e GND e l’ Out sul V0, così facendo sono riuscito a regolare il contrasto ed a visualizzare lo sketch..

    A presto….

    Alessandro

    1. Ciao Alessandro, grazie per il tuo contributo.
      Nello schema elettrico al pin Vout c’è un potenziometro da 10K, ti riferisci a quello?

      Mauro

        • Alessandro il 31 Luglio 2013 alle 22:19
        • Rispondi

        Si proprio lui.. però, il piedino del trimmer che tu hai sul positivo va collegato al V0.
        Ti invio lo schema Fritz sulla tua mail info…. ( non carino come il tuo ma dovrebbe rendere l’idea)..

        Alessandro

        1. Grazie Ale,
          lo guarderò e pubblicherò prossimamente.
          Rispetto al mio collegamento che comportamento hai rilevato?

          Mauro

            • Alessandro il 1 Agosto 2013 alle 12:03

            Allora con il tuo collegamento ( tra l’altro molto utilizzato) non si vede nulla, il contrasto è troppo alto, variando come da mio schema si gestisce il contrasto e si vede quanto voluto.

            Alessandro

          1. Ottimo Ale,
            scriverò una variante dell’articolo consigliando la tua connessione.

            Mauro

      • Antonio il 12 Ottobre 2013 alle 19:37
      • Rispondi

      Ciao Alessandro e ciao Mauro

      Dal video che ho fatto si può vedere che il display funziona perfettamente.

      Comunque ho provato per curiosità a collegare tra i piedini 3 e 18 del display una resistenza da 1.2 KOhm e si ottiene un contrasto perfetto con la retroilluminazione.

      Prova anche tu magari e facci sapere.

      Cordialmente
      Antonio

      1. Grazie Antonio.

        Mauro

    • Vincenzo.J.M. il 1 Gennaio 2014 alle 12:53
    • Rispondi

    Ciao a tutti… molto interessante quest’argomento… una domanda se posso… se si volesse gestire un display lcd 2.8″ tipo del samsung gt-i5500 ? praticamente devo inserire un display lcd grafico in uno spazio a forma di cerchio con diametro 8 cm. quindi considerando un quadrato il display puo essere al massimo di 5.5 x 5.5 cm.
    HO visto molti display con controller ks0108 pero con le dimensioni non ci siamo… poi ho notato che il display del cellulare sopra è particolarmente idoneo al mio uso… ora pero il problema è poterlo gestire… qualcuno puo indirizzarmi o consigliarmi ? grazie – per ora ho utilizzato due semplici display 7 segmenti gestiti da due pic 16f877… l’utilizzo finale è contagiri motore e lettura di temperatura motore – ma in un display simile potrei inserire molte piu informazioni… grazie a tutti

    1. Ciao Vincenzo,
      ti consiglio di leggere l’articolo dedicato al display da 1,8″ Tft simile al display montato sul Nokia 6110 di qualche anno fa:
      https://www.mauroalfieri.it/elettronica/18-tft-shield-adafruit-demo.html

      Anche se inferiore alla dimensione che cerchi potrebbe agevolarti nel progetto che stai realizzando.
      In alternativa cerca nel blog i display della 4dsystems io ne ho provato un modello solo ma c’è ne sono di tantissimi tipi e dimensioni.

      Mauro

    • Luigi il 10 Febbraio 2015 alle 09:34
    • Rispondi

    Buongiorno,
    sono alle prime armi con i GLCD e con arduino e ho provato a seguire questo tutorial per collegare un winstar 128×64 ad un arduino mega ma purtroppo senza successo.
    Nello specifico il mio modello di display è questo:
    http://www.parsicitalia.it/files/Winstar-126-00055–Parsic-Italia.pdf

    La piedinatura è identica a quella del vostro display ma non riesco a farlo funzionare.

    Ho provato anche a cambiare display con un altro identico pensando ad un guasto (l’ho acquistato presso una fiera e può capitare il pezzo difettoso) ma ancora nulla.

    Lo schermo rimane perfettamente pulito.
    provando l’esempio GLCD diags dice che non riesce ad inizializzare il display.

    Ho ricontrollato i collegamenti ma senza risolvere.

    Per carità, dormo lo stesso anche se non riesco a farlo andare, ma un pochino mi rode!!! 🙂

    non è che riuscireste a darmi una dritta?

    grazie mille!!!

    1. Ciao Luigi,
      i display sono controllati da un chip dedicato che non è sempre il medesimo, esistono famiglie di controller bene o male standard ma leggermente differenti tra loro.
      Prova a controllare che i tuoi display abbiano il controller identico al mio, descritto in questo articolo, altrimenti potrebbe essere necessaria una libreria differente da quella che ho utilizzato.

    • Luigi il 12 Febbraio 2015 alle 01:35
    • Rispondi

    Grazie per la risposta Mauro,
    Il controller è NT 7108
    Se non ho letto male è lo stesso usato nel vostro esempio.

    Posso chiederti una cortesia? mi diresti esattamente come sono collegati i PIN 1, 2, 3 e 18??? Temo di aver capito male il collegamento per il contrasto. Ho a disposizione anche un potenziometro da 10k (correggimi se dico una sciocchezza ma mi pare sia quello più adatto allo scopo, giusto?)
    Ho notato che collegato come da schema se ruoto il potenziometro non vedo scurirsi i pixel dell’LCD (come avviene per esempio in quelli alfanumerici.

    Grazie ancora

    1. Ciao Luigi,
      si l’integrato è il medesimo, per cui se utilizzi la medesima libreria usata da Antonio, dovresti riuscire a controllarlo.
      I collegamenti puoi vederli direttamente nello schema fornito da Antonio, controlla che i tuoi pin ed i suoi siano nella medesima posizione.
      Come ti ho scritto non è detto che i due display siano identici, ogni produttore decide la posizione dei pin da adottare.

      Il potenziometro da 10Kohm è ottimo per regolare il contrasto, sevi essere sicuro che sia connesso al pin corretto dell’LCD, di solito V0

    • Vito il 26 Febbraio 2015 alle 12:14
    • Rispondi

    Ciao Mauro, ho provato a seguire il tutorial ma senza successo. Non sono nemmeno arrivato all’accensione del display. Ho “installato” le librerie, ma quando carico un esempio IDE mi restituisce diversi errori alla verifica.
    Poi vorrei chiederti, è possibile collegarlo a UNO usando meno connessioni? Ho letto di un tipo di collegamento seriale che occupa solo 4 pin ma visto che non ho potuto fare l’upload dello sketch non so se funziona.
    Il mio display è 12864B ver 2.0
    Grazie

    1. Ciao Vito,
      esistono delle interfacce I2C con cui puoi controllare alcuni display, dovresti verificare che esista una adatta al controllo del tuo display.
      In alternativa puoi optare per dei display grafici 128×64 già con interfaccia I2C

        • Vito il 28 Febbraio 2015 alle 12:22
        • Rispondi

        Sono riuscito a collegarlo in spi mode (senza interfaccia i2c) con tre pin, 5v e GND. Grazie per la risposta

        1. Ottimo Vito,
          se ti va di condividere schema dei collegamenti, foto, sketch e descrizione del progetto sono a disposizione per pubblicarti un articolo a tuo nome.

    • CirFel01 il 29 Aprile 2015 alle 06:10
    • Rispondi

    Innanzitutto complimenti per i tuoi articoli, stimolano la voglia di imparare e non è poco .

    Poi ti vorrei pregare di spiegare come caricare la classe GLCD per la gestione del display grafico, nonostante

    l’ho scaricata dal sito ufficiale in formato zip, poi scompattata, ma non riesco ad includerla nell’ide di arduino.

    grazie

    CirFel 01

    1. Ciao CirFel01,
      la libreria GLCD si carica in arduino come tutte altre librerie aggiuntive.
      Puoi leggere come fare negli articoli del corso base e del corso intermedio gratuito on-line.

    • Rael il 1 Luglio 2015 alle 11:48
    • Rispondi

    Salve, innanzitutto complimenti per gli articoli,
    volevo segnalare che con le ultime versioni dell’ide arduino, ci sono problemi con la glcd , e come spiega uno degli autori della libreria, è stata sostituita da una nuova che si chiama openGLCD.

    http://forum.arduino.cc/index.php?topic=307390.0

    io personalmente ho risolto installando una vecchia versione di ide e continuando ad usare la glcd v3 😉

    1. Ciao Rael,
      grazie per la segnalazione.

    • Valerio il 21 Ottobre 2015 alle 11:34
    • Rispondi

    Buon giorno e scusate il disturbo, ma sarebbe possibile utilizzare la SD per mettere dentro il file FONT (allFonts.h che viene utilizzato in questo esempio) per alleggerire la memoria di arduino?

    Grazie

    1. Ciao Valerio,
      i file .h e .ccp devono essere compilati dall’IDE per poter essere utilizzati da Arduino.
      Questo rende impossibile metterli in una SD Card e passarli ad Arduino, potresti procedere alleggerendo il file allFonts.h e allFonts.cpp dai fonts che non pensi di utilizzare.

    • luca il 5 Gennaio 2017 alle 13:23
    • Rispondi

    ma è compatibile con lcd 12864b?

    1. Ciao Luca, se supporta la GLCD si.

        • Luca il 5 Gennaio 2017 alle 16:39
        • Rispondi

        Come faccio a capirlo?
        Il cip dell’ lcd é l’ST920

        1. Ciao Luca, a memoria mi sembra di si, nella libreria è riportato l’elenco dei driver per cui puoi utilizzarla.

    • Marco il 8 Febbraio 2017 alle 12:04
    • Rispondi

    Buongiorno.
    Sono un neofita del sistema arduino e non so chiedo un a boiata.
    Vorrei mandare un display grafico 240X64, che lavora con 8 fili di bus attraverso I2C.
    Questo per permettermi di utilizzare gli altri pin per altri controlli.
    Esiste una scheda o un untegrato per questa funzione??

    1. Ciao Marco,
      esistono degli adattatori i2C per display, devi verificare sui siti di rivendita componenti elettronici se ne esistono compatibili con il tuo display.

  1. […] aver realizzato il progetto descritto in questo articolo si è acceorto che il contrasto sul suo modello di LCD Grafico era troppo elevato ed ha […]

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.