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
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); } |