collegare uno schermo lcd 128x64

ciao a tutti
premetto che non sono un grande esperto di Arduino comunque...
ieri sono andato a una fiera dell'elettronica e ho comprato uno schermo LCD per il mio Arduino UNO REV3 lo schermo è il modello MTG-12864A della winstar graphic è un 128x64 fornito anche di datasheet, non sapendolo collegare ho cercato sul web come fare e dopo un po ho trovato questo schema con tanto di spiegazione:

ho seguito passo passo il cablaggio, ho scaricato il pacchetto software necessario e ho provato a caricare quest'ultimo su Arduino.
il risultato?
si accende soltanto la retroilluminazione dello schermo e nient'altro, ho provato a caricare diversi programmi sulla scheda ma non sono riuscito a visualizzare nulla sull'LCD tranne che la retroilluminazione.
non riesco a capire se c'è qualche problema nel software oppure nell' hardware, i collegamenti tra lo schermo e Arduino gli ho controllati e ricontrollati molte volte ma niente, non so più cosa fare =(
mi potete dare una mano per favore
grazie!!!! :slight_smile:

Che lib hai scaricato? Questa?
https://code.google.com/p/glcd-arduino/downloads/list

Sui collegamenti, magari una foto fatta bene potrebbe aiutare.

ciao
si!, ho scaricato il primo dei file che mi hai mandato, precisamente dove vanno copiati?
con alcuni file ho avuto dei problemi durante il caricamento sulla scheda del tipo:ERRORE DURANTE LA COMPILAZIONE
quindi non sono riuscito a fare nulla.

La libreria va messa nella cartella /libraries che hai all'interno della tua cartella degli sketch (la sua posizione dipende dall'SO in uso).

Esattamente, che errori ricevi in fase di compilazione (copia e incolla i messaggi del terminale).

Forse il problema è nel trimmer.... va collegato tra il +5v e il pin 18 del lcd, e il centrale va sul pin 3. Seguendo la stessa guida (e con l'identico display preso in fiera a modena) non ci saltavo fuori, poi ho visto che quasi tutti gli lcd simili per il contrasto usano lo stesso collegamento. Per verificare se col trimmer metti a posto il contrasto, ruota tutto da una parte o tutto dall'altra, dovresti vedere scurire i pixel....se non succede hai trovato il problema!

inizio con il mettere il codice scaricato da internet che viene visualizzato negli esempi come: LCD12864_Char

/*
LCD  Arduino
RS = 17; Analog Pin3
RW = 16; Analog Pin2
EN = 18; Analog Pin4
D0  = 8; 
D1  = 9;
D2  = 10; 
D3  = 11; 
D4  = 4;
D5  = 5; 
D6  = 6; 
D7  = 7;
PIN15 PSB = 5V;
*/

#include "LCD12864R.h"
#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )

unsigned char show0[]={0xBB,0xFA,0xC6,0xF7,0xC8,0xCB,0xC3,0xCE,0xB9,0xA4,0xB3,0xA7};//???????????
unsigned char show1[]="www.dfrobot.com";//
 
void setup()
{
LCDA.Initialise(); // INIT SCREEN
delay(100);
}

void loop()
{
LCDA.CLEAR();//????
delay(100);
LCDA.DisplaySig(0,0,0x20);//?????????
delay(100);
LCDA.DisplayString(0,1,show0,AR_SIZE(show0));//LOGO
delay(100);
LCDA.DisplayString(2,0,show1,AR_SIZE(show1));;//LOGO
while(1);
}

questo è il codice di errore che mi da con questo codice per lo schermo:

J:\Arduino\libraries\LCD12864R\LCD12864R.cpp: In member function 'void LCD12864R::setPins(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
J:\Arduino\libraries\LCD12864R\LCD12864R.cpp:29: error: 'digitalWrite' was not declared in this scope
J:\Arduino\libraries\LCD12864R\LCD12864R.cpp: In member function 'void LCD12864R::delayns()':
J:\Arduino\libraries\LCD12864R\LCD12864R.cpp:51: error: 'delayMicroseconds' was not declared in this scope
J:\Arduino\libraries\LCD12864R\LCD12864R.cpp: In member function 'void LCD12864R::Initialise()':
J:\Arduino\libraries\LCD12864R\LCD12864R.cpp:91: error: 'OUTPUT' was not declared in this scope
J:\Arduino\libraries\LCD12864R\LCD12864R.cpp:91: error: 'pinMode' was not declared in this scope

anche se non ho capito bene come fare ho provato a spostare qualche cavo per il contrasto dello schermo, non sono riuscito a cambiare nulla, collegando una resistenza variabile da 10k l'unico risultato che ho avuto è stata la variazione di luminosità nella retroilluminazione dello schermo ma i pixel non hanno reagito in alcun modo.
ho provato a inserire delle foto ma ho avuto dei problemi nell'upload.
grazie!

Scusa, ma nella lib che ti ho linkato non vedo file "LCD12864R.h". Non è che stai mescolando una lib con un esempio di un'altra lib?

Sono riuscito a risolvere tutti i problemi dopo vari tentativi, grazie di tutto e vi ringrazio per la pazienza che avete tenuto nei miei confronti =)

Cortesemente, scrivi come hai risolto, almeno chi in futuro cercherà sul forum per il tuo stesso problema, troverà anche la soluzione :wink:

Dopo un po' di tentativi mi sono reso conto che non era un problema di software ma un problema di contrasto, seguendo quello che mi è stato detto per il collegameto della resistenza variabile sono riuscito a vedere qualcosa anche se non riesco ad avere un buon contrasto, la resistenza è da 10k, è troppo piccola?
Vorrei aumentare ancora di un po' il contrasto.
Per quanto riguarda i software ho lascito perdere quelli che mi davano errori vari e mi sono concentrato su quelli che venivano visti come corretti.
Grazie a tutti:-)

Di solito si usa un potenziometro proprio per regolare secondo occorrenza il contrasto.

da 5k, 10k, 20k cambia solo la sensibilità.... io uso dei trimmer multigiro da 20k, con un potenziometro la regolazione è troppo grezza, appena lo tocchi cambia di tanto!

ivan64:
da 5k, 10k, 20k cambia solo la sensibilità.... io uso dei trimmer multigiro da 20k, con un potenziometro la regolazione è troppo grezza, appena lo tocchi cambia di tanto!

Forse dipende dall mano o dal pot usato, ma io questo problema non ce l'ho.