GLCD Modello QC12864B

Salve ragazzi,
Poco tempo fà ho acquistato un display grafico lcd, il modello QC12864B, avente come controller l' ST7920.
Questa è l'immagine del retro: http://img713.imageshack.us/img713/4055/lcdgrafico128x641.jpg.
Il datasheet fornitomi dal venditore è il seguente: http://mikroshop.ch/pdf/QC12864B.pdf.
Io personalmente per il cablaggio e per la libreria da utilizzare mi sono affidato a questo sito(l'unico con un'esempio): http://www.peukalo.net/glcd-qc12864b-with-arduino/. Il problema è che nonostante sia il datasheet che questo sito sembrano indicarmi gli stessi cablaggi, il display non funziona. Un dato che può essere utile è che nel momento in cui collego il pin PSB del display a GND arduino và in protezione(credo si dica così, è come se si spegne);
C'è qualcuno che può aiutarmi a capire il problema?
Grazie.

Forse è un eccessivo assorbimento della retroilluminazione... prova a sconnetterla od inserire un resistore da 50 ohm o più tra +5V ed il pin 20.

L'assorbimento della logica è al massimo 15mA, ma non ci sono indicazioni sull'assorbimento dei LED

Grazie della risposta, adesso provo! :slight_smile:
Sono riuscito solamente a far accendere il display, o meglio i led del display! Infatti nel momento in cui collego il pin PSB a GND arduino và in protezione, a meno che non scollego il pin VDD. Questo cosa significa?? Una volta che abilito la logica del display esso và in collisione con l'impostazione GND del pin PSB??
Scusatemi se dico assurdità :cold_sweat:

Il led ciuccia 360mA, prova ad alimentarlo da altra fonte. Però è strano che si resetti solo quando colleghi psb a gnd, magari c'è qualche errore nel collegamento, ma non possiamo appurare se non posti lo schema di collegamento o delle immagini che ci permettano di ricavare lo schema.

Ciao.

Ciao, le immagini del collegamento le ho messe nel post principale, in uno dei tre link. se vuoi posso postare l'immagine originale del mio collegamento(è identico a quello dell'immagine del link), dimmi se può essere utile!

Collegando il pin PSB al GND lo metti in modalità seriale.
Hai provato a scollegare tutto da Arduino e alimentare l'LCD mettendo il PSB a GND. Cosa succede?
Altra cosa, che libreria stai usando?

In che senso, scollegare i pin di controllo??
Comuque utilizzo questa libreria: Google Code Archive - Long-term storage for Google Code Project Hosting..
Ti posto qui un altra discussione in cui ho illustrato tutto il cablaggio: 12864ZW with u8glib - no DI pin?! - #12 by system - Displays - Arduino Forum nell'ultimo commento c'è scritto tutto :slight_smile:
Grazie della presa in considerazione :slight_smile:

AxlRose94s:
In che senso, scollegare i pin di controllo??

Scollegarlo da Arduino e alimentarlo con il pin PSB su GND.

Che Arduino utilizzi?
E' preferibile sempre una foto dei collegamenti fatti.
Inserisci lo sketch utilizzato (Senza andarlo a pescare su altri post).

Ciao

Utilizzo arduino uno, lo sketch è questo:

=#includequotU8glibhquotU8GLIB_ST7920_128X64_1Xu8g181617SPIComSCKen18MOSIrw16CSdi17voiddrawvoidgraphiccommandstoredrawthecompletescreenshouldbeplacedhereu8gsetFontu8g_font_unifontu8gsetFontu8g_font_osb21u8gdrawStr022quotHelloWorldquotvoidsetupvoidflipscreenifrequiredu8gsetRot180setSPIbackupifrequiredu8gsetHardwareBackupu8g_backup_avr_spiassigndefaultcolorvalueifu8ggetModeU8G_MODE_R3G3B2u8gsetColorIndex255whiteelseifu8ggetModeU8G_MODE_GRAY2BITu8gsetColorIndex3maxintensityelseifu8ggetModeU8G_MODE_BWu8gsetColorIndex1pixelonvoidloopvoidpictureloopu8gfirstPagedodrawwhileu8gnextPagerebuildthepictureaftersomedelaydelay500]#include "U8glib.h"


U8GLIB_ST7920_128X64_1X u8g(18, 16, 17);	// SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17



void draw(void) {
  // graphic commands to redraw the complete screen should be placed here  
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr( 0, 22, "Hello World!");
}

void setup(void) {
  
  // flip screen, if required
  // u8g.setRot180();
  
  // set SPI backup if required
  //u8g.setHardwareBackup(u8g_backup_avr_spi);

  // assign default color value
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) 
    u8g.setColorIndex(255);     // white
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT )
    u8g.setColorIndex(3);         // max intensity
  else if ( u8g.getMode() == U8G_MODE_BW )
    u8g.setColorIndex(1);         // pixel on
}

void loop(void) {
  // picture loop
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
  
  // rebuild the picture after some delay
  delay(500);
}

ed il collegamento è questo:
1 VSS 0V
2 VDD 5.0V
3 V0/NC — Contrast Adjust (into a central pin of the potentiometer, with 5v and GND)
4 RS(CS) analogpin 3
5 R/W(SID) analogpin 2
6 E(SCLK) analogpin 4
15 PSB GND
16 NC — No connection
19 LEDK 5V
20 LEDA 0V

Vedi di sistemare un po' il post precedente :roll_eyes:

U8GLIB_ST7920_128X64_1X u8g(18, 16, 17);   // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17

Questo è il comando di inizializzazione del display.
Se hai utilizzato i collegamenti che hai detto al primo post http://www.peukalo.net/glcd-qc12864b-with-arduino/ difficilmente funzionerà su un'Arduino Uno. Per quello ti ho chiesto gentilmente se è possibile avere una foto dei collegamenti.

pighixxx:
Vedi di sistemare un po' il post precedente :roll_eyes:

+1 racchiudi il codice tra i tag code /code altrimenti è inguardabile :fearful:

Ciao Michele, ogni tanto ci si incontra :smiley:
[OT]Sono ad un buon punto con Ardutester[/OT]

Ho dato un'occhiata alla user reference della libreria e al datasheet:
Se vuoi farlo andare ed hai usato i collegamenti che hai detto, devi modificare la riga in questa maniera:

U8GLIB_ST7920_128X64_1X u8g(5, 9, 8);

Maledetto fritzing!

Grazie delle risposte ragazzi!! :slight_smile:
Per quanto riguarda questo:

Ciao Michele, ogni tanto ci si incontra
[OT]Sono ad un buon punto con Ardutester[/OT]

Ho dato un'occhiata alla user reference della libreria e al datasheet:
Se vuoi farlo andare ed hai usato i collegamenti che hai detto, devi modificare la riga in questa maniera:

Code:
U8GLIB_ST7920_128X64_1X u8g(5, 9, 8);

Maledetto fritzing!

non credo funzioni così, io mi sono basato su quel collegamento per quanto riguarda le alimentazioni, i pin sono relativi alla libreria che ho utilizzato, la quale mi ha fornito dei precisi pin :frowning:

Se hai utilizzato i collegamenti che hai detto al primo post http://www.peukalo.net/glcd-qc12864b-with-arduino/ difficilmente funzionerà su un'Arduino Uno. Per quello ti ho chiesto gentilmente se è possibile avere una foto dei collegamenti.

Si, utilizzo arduino uno, perchè pensi che non dovrebbe funzionare, qual'è il problema??

AxlRose94s:
Si, utilizzo arduino uno, perchè pensi che non dovrebbe funzionare, qual'è il problema??

Ti ho risposto un paio di post fa :~
ripeto:

Ho dato un'occhiata alla user reference della libreria e al datasheet:
Se vuoi farlo andare ed hai usato i collegamenti che hai detto, devi modificare la riga in questa maniera:

U8GLIB_ST7920_128X64_1X u8g(5, 9, 8);

Modificato la riga ed i commenti come mi hai detto tu, ma continua con lo stesso gioco, è tutto spento, fino a che non stacco il pin PSB oppure quello VDD, in questi casi si accende la retroilluminazione. Non riesco proprio a capire il perchè... =(

mancano ancora un paio di cose che ti ho chiesto...

Scusate la bassa qualità ma è l'unica possibilità :~

Mancava questo giusto?? :smiley:

Facile... e' rotto :slight_smile:

1° Hai collegato sui 3.3V invece che sui 5 (almeno da quello che vedo)
2° Non hai collegato il trimmer

No, infatti, non l'ho collegato...ma esso serve soltanto a regolare il contrasto, era collegato fino a poco fà!
Ho alimentato tutto a 3,3V perchè con i collegamenti fatti in quel modo, a 5V arduino và in protezione, si spegne. Hai qualche idea??