Antonio è un appassionato di Arduino come te in possesso di un display LCD grafico 128×64, il suo modello in particolare è il g64128-17:
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:
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.
31 commenti
1 ping
Vai al modulo dei commenti
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
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
Autore
Ciao Alessandro, grazie per il tuo contributo.
Nello schema elettrico al pin Vout c’è un potenziometro da 10K, ti riferisci a quello?
Mauro
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
Autore
Grazie Ale,
lo guarderò e pubblicherò prossimamente.
Rispetto al mio collegamento che comportamento hai rilevato?
Mauro
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
Autore
Ottimo Ale,
scriverò una variante dell’articolo consigliando la tua connessione.
Mauro
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
Autore
Grazie Antonio.
Mauro
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
Autore
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
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!!!
Autore
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.
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
Autore
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
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
Autore
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
Sono riuscito a collegarlo in spi mode (senza interfaccia i2c) con tre pin, 5v e GND. Grazie per la risposta
Autore
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.
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
Autore
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.
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 😉
Autore
Ciao Rael,
grazie per la segnalazione.
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
Autore
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.
ma è compatibile con lcd 12864b?
Autore
Ciao Luca, se supporta la GLCD si.
Come faccio a capirlo?
Il cip dell’ lcd é l’ST920
Autore
Ciao Luca, a memoria mi sembra di si, nella libreria è riportato l’elenco dei driver per cui puoi utilizzarla.
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??
Autore
Ciao Marco,
esistono degli adattatori i2C per display, devi verificare sui siti di rivendita componenti elettronici se ne esistono compatibili con il tuo display.
[…] aver realizzato il progetto descritto in questo articolo si è acceorto che il contrasto sul suo modello di LCD Grafico era troppo elevato ed ha […]