Afisajul grafic LCD 128x64

In acest articol vom utiliza un afisaj grafic LCD 128x64 pixeli cu controller ST7290.

Pentru a putea folosi acest display va trebui sa adaugam libraria U8Glib in editorul Arduino. Aceasta librarie poate fi descarcata de aici si se instaleaza accesand meniul Schita > Incarcare biblioteca > Adauga biblioteca.zip.

Conectarea o vom relativ simplu folosind interfata SPI si este facuta ca in schema de mai jos: 

 

Sketch-ul folosit este urmatorul:

#include "U8glib.h"
U8GLIB_ST7920_128X64 u8g(52, 51, 50, U8G_PIN_NONE);

void ecran1(void) {
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 15, 18, "www.");
  u8g.drawStr( 03, 38, "electronicstore");
  u8g.drawStr( 80, 58, ".ro");
}

void ecran2(void) {
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 07, 18, "Folosirea unui");
  u8g.drawStr( 07, 38, "LCD grafic");
  u8g.drawStr( 07, 58, "cu Arduino");
}

void ecran3(void) {
  u8g.setFont(u8g_font_7x13);
  u8g.drawStr( 07, 18, "Display grafic");
  u8g.drawStr( 07, 38, "LCD 128*64 pixeli");
  u8g.drawStr( 07, 58, "cu chipset ST7290");
}

void clearLCD(){
    u8g.firstPage();  
    do {
    } while( u8g.nextPage() );
}

void setup(void) {
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255); 
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3); 
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1); 
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
}

void loop(void) {
  u8g.firstPage();  
  do {
    u8g.drawFrame(0,0,127,63);
    ecran1();
  } while( u8g.nextPage() );
  delay(2000);
  clearLCD();
  u8g.firstPage();  
  do {
    u8g.drawFrame(0,0,127,63);
    u8g.drawFrame(2,2,123,59);
    ecran2();
  } while( u8g.nextPage() );
    delay(2000);
  clearLCD();
  u8g.firstPage();  
  do {
     ecran3();
  } while( u8g.nextPage() );
  delay(3000);
 clearLCD();
  delay(50);
}

Rezultatul va fi urmatorul:

 

Autentificare