Display ST7920 tramite librerie u8glib

Tutto sull'Arduino e la sua grande famiglia... Atmel AVR, Microchip PIC, ecc...

Moderatori: ragno, tapino, alez, zulu, davidea

Rispondi
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Display ST7920 tramite librerie u8glib

Messaggio da alez »

Per andare oltre ai soliti display 128x64 basati su KS0108, la curiosità mi ha portato ad acquistarne uno basato su ST7920.

Ora, questo simpatico chipset mi ha attratto perché può funzionare sia in modalità parallela a 8 bit oppure in modalità seriale SPI, molto utile per ridurre drasticamente il numero di fili per il collegamento.

La libreria che ho trovato nel playground di Arduino mi pare obsoleta, per lo meno non si riesce a compilare con le IDE recenti:

http://playground.arduino.cc/Code/LCD12864

In compenso ho scoperto queste bellissime librerie:

http://code.google.com/p/u8glib/

che supportano molti chipset e molte modalità di comunicazione.

I collegamenti base da fare per entrambe le modalità sono:

Codice: Seleziona tutto

Display   -   Arduino
1 VSS     -   GND
2 VDD     -   +5V
4 RS      -   A4
5 RW      -   A2
6 E       -   A4
17 RST    -   +5V (RESET NEGATO)
19 BLA    -   +5V (BackLight Anode)
20 BLK    -   +5V (BackLight Katode)
Il pin 3 Vo dovrebbe servire per regolare il contrasto ma nel modello che ho io evidentemente non serve, ho provato a collegarlo direttamente a +5V, a 0 V oppure a Vout (che in alcuni display genera una tensione negativa necessaria alla polarizzazione) senza risultati; per fortuna c'è da dire che questo è senza ombra di dubbio il display col miglior contrasto che mi sia passato fin ora tra le mani!

Questi sopra sono i PIN che in modalità seriale o parallela non cambiano, ora andiamo a vedere le differenze tra le due configurazione di comunicazione.

Modalità SPI

Codice: Seleziona tutto

Display   -   Arduino
15 PSB    -   GND (SELETTORE MODALITA' COMUNICAZIONE)
Modalità parallela

Codice: Seleziona tutto

Display            -   Arduino
7..10 DB0..DB3     -   8..11
11..14 DB4..DB7    -   4..7
15 PSB             -   +5V (SELETTORE MODALITA' COMUNICAZIONE)
Aprendo uno degli esempi inclusi con le librerie u8glib poi è possibile andare a scommentare la modalità desiderata, ad esempio:

Codice: Seleziona tutto

//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);   // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);   // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17);	// SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17
//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17);	// SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17


Immagine

Immagine
Ciao alez
essere_digitale
Messaggi: 3
Iscritto il: 18 ago 2013, 17:24

Re: Display ST7920 tramite librerie u8glib

Messaggio da essere_digitale »

Ciao,
anche io ho questo display e volevo collegarlo ad una mega 2560, e prima di procedere con le prove, volevo qualche conferma:
1) i PIN 4 e 6 del display vanno collegati entrambi alla porta analogica A4 dell'arduino?
2) per alimentare il backlight si deve dare la 5V sia all'anodo che al catodo (pin 19 e 20 del display)?
infine
3) volendo utilizzare la comunicazione seriale, quale PIN di quelli da te indicati, si devono inserire nella creazione dell'oggetto u8g,
U8GLIB_ST7920_128X64_4X u8g(??, ??, ??) ?

Grazie mille.
--
Alfredo
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Display ST7920 tramite librerie u8glib

Messaggio da alez »

Ciao e benvenuto al tuo primo post.

Riguardo alla retroilluminazione ci deve essere sicuramente un errore, sul GND ci va sicuramente lo 0V, appena riesco lo provo e posto eventuali correzioni, riguardo ad A4 non ricordo esattamente, quindi lo provo e ti dico.
Ciao alez
essere_digitale
Messaggi: 3
Iscritto il: 18 ago 2013, 17:24

Re: Display ST7920 tramite librerie u8glib

Messaggio da essere_digitale »

grazie mille ;)
essere_digitale
Messaggi: 3
Iscritto il: 18 ago 2013, 17:24

Re: Display ST7920 tramite librerie u8glib

Messaggio da essere_digitale »

Risolto.
Di seguito i pin per collegarla ad una Arduino Mega 2560.
Display --------> Arduino
1 GND --------> GND
2 5V --------> 5V
4 RS --------> 17 RX2
5 R/W --------> 16 TX2
6 E --------> 18 TX1
15 PSB --------> GND
19 BLA --------> 5V
20 BLK --------> GND

Ed ecco il codice:

Codice: Seleziona tutto

U8GLIB_ST7920_128X64_4X u8g(18, 16, 17);
Si potrebbe anche aggiungere un potenziometro per scegliere la potenza della luce della retroilluminazione.
Ciao e grazie
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: Display ST7920 tramite librerie u8glib

Messaggio da alez »

Grazie per aver riportato, purtroppo non ho ancora avuto tempo. 4x o 1x è la velocità con cui comunica, per cui in linea di massima se va 4x va anche 1x solo che è più lento
Ciao alez
gbgallo
Messaggi: 2
Iscritto il: 06 ago 2015, 17:23

Re: Display ST7920 tramite librerie u8glib

Messaggio da gbgallo »

Buona sera a tutti

Scusate ma anch'io ho lo stesso problema di utilizzare un display lcd 12864 controller st7920 con arduino mega in modalità parallela
Ho provato varie impostazioni di pinout ma con esito negativo
Con arduino uno tutto funziona alla perfezione ma con arduino mega niente da fare.
Avete qualche consiglio da darmi? Grazie Gianni
Stamattina sono riuscito a visualizzare i caratteri ma erano in cinese.
Vi posto i collegamenti effettuati

LCD MEGA
1 GND GND
2 5 5Vdc
3 C POT C POT
4 RS 36
5 R/W 35
6 E 37
7 DB0 22
8 DB1 23
9 DB2 24
10 DB3 25
11 DB4 26
12 DB5 27
13 DB6 28
14 DB7 29
15 PSB 5Vdc
16 NC NC
17 RST NC
18 VOUT VOUT
19 BLA BLA
20 BLK BLK

Vi ringrazio in anticipo per ogni vostro aiuto
Rispondi