Grotere LCD

In de doos met door school aangekochte componenten lag een grotere 12864B LCD, ik zag de uitdaging.
Deze display werkt anders dan het kleinere display wat ik eerder heb aangesloten. Zo bestaat deze uit 128 bij 64 pixels. Om dus iets weer te geven moet je dus pixel coördinaten opgeven waar tekst begint. Het is mij gelukt, om met een stukje voorbeeld code en wat kleine aanpassingen, het scherm te laten werken. Om het scherm aan te sturen moest ik wel de u8glib bibliotheek toevoegen aan mijn Arduino IDE.

 
Foto’s

IMG_20150909_163310

 
Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "U8glib.h"
 
// setup u8g object, please remove comment from one of the following constructor calls
 
U8GLIB_ST7920_128X64 u8g(13, 11, 10, U8G_PIN_NONE); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 0
 
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, 15, "abcdefghijklmnop");
u8g.drawStr( 0, 27, "qrstuvwxyz");
}
 
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(1); // max intensity
else if ( u8g.getMode() == U8G_MODE_BW )
u8g.setColorIndex(§); // pixel on
}
 
void loop(void) {
// picture loop
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
// rebuild the picture after some delay
delay(500);
}

Leave a Reply

Your email address will not be published. Required fields are marked *