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.

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/lcd-grafico-128x64-arduino.html

31 comments

1 ping

Skip to comment form

  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 on 30 luglio 2013 at 23:27
    • Reply

    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 on 31 luglio 2013 at 22:19
        • Reply

        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 on 1 agosto 2013 at 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 on 12 ottobre 2013 at 19:37
      • Reply

      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. on 1 gennaio 2014 at 12:53
    • Reply

    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:
      http://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 on 10 febbraio 2015 at 09:34
    • Reply

    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 on 12 febbraio 2015 at 01:35
    • Reply

    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 on 26 febbraio 2015 at 12:14
    • Reply

    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 on 28 febbraio 2015 at 12:22
        • Reply

        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 on 29 aprile 2015 at 06:10
    • Reply

    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 on 1 luglio 2015 at 11:48
    • Reply

    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 on 21 ottobre 2015 at 11:34
    • Reply

    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 on 5 gennaio 2017 at 13:23
    • Reply

    ma è compatibile con lcd 12864b?

    1. Ciao Luca, se supporta la GLCD si.

        • Luca on 5 gennaio 2017 at 16:39
        • Reply

        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 on 8 febbraio 2017 at 12:04
    • Reply

    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

Your email address will not be published.

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