Dette eksempel viser hvordan du kan printe både grafik og tekst på dit OLED display. I eksemplet sker der følgende:

1: Et .xbm billede vises til venstre, ved hjælp fra u8g2.drawXBM.
2: En ramme med afrundede hjørner vises til højre. Dette sker med u8g2.drawRFrame.
3: Tekst printes med u8g2.drawStr.
4: Symboler vises med hjælp fra u8g2.drawGlyph.

Du skal blot kopiere eksemplet ind i et nyt projekt i Arduino, hvorefter du er klar til at teste. Bemærk at du skal installere biblioteket U8g2, før du kan bygge programmet - og at der i eksemplet er anvendt NodeMCU, som er forbundet som vist herunder:


/* Copyright © JenTronic */

#include <U8g2lib.h>

U8G2_SH1106_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, D8, D4, U8X8_PIN_NONE);

static unsigned char Logo[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x80, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 
  0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x00, 
  0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x07, 0x10, 0x38, 0x00, 
  0x00, 0x00, 0xC0, 0x01, 0x73, 0xE0, 0x00, 0x00, 0x00, 0x70, 0xC0, 0xF3, 
  0x80, 0x03, 0x00, 0x00, 0x1C, 0xF0, 0xF3, 0x03, 0x0E, 0x00, 0x00, 0x06, 
  0xFC, 0xF3, 0x0F, 0x18, 0x00, 0x80, 0x03, 0xFE, 0xF3, 0x3F, 0x70, 0x00, 
  0xE0, 0x80, 0xFF, 0xF3, 0xFF, 0xC0, 0x01, 0x38, 0xE0, 0xFF, 0xF3, 0xFE, 
  0x01, 0x07, 0x0C, 0xE0, 0xCF, 0xF3, 0xF8, 0x07, 0x0C, 0x06, 0xE0, 0xC3, 
  0xF3, 0xE0, 0x1F, 0x18, 0x82, 0xE1, 0xC0, 0xF3, 0xE0, 0x7F, 0x10, 0xC2, 
  0x61, 0xC0, 0xF3, 0xE0, 0xFF, 0x10, 0xE2, 0x01, 0xC0, 0xF3, 0xE0, 0xFD, 
  0x11, 0xE2, 0x01, 0xC0, 0xF3, 0xE0, 0xF1, 0x11, 0xE2, 0x01, 0xC0, 0xF3, 
  0xE0, 0xE1, 0x11, 0xE2, 0x00, 0xC0, 0xF3, 0xE0, 0xE1, 0x11, 0x22, 0x00, 
  0xC0, 0xF3, 0xE0, 0xE1, 0x11, 0x02, 0x00, 0xC0, 0xF3, 0xE0, 0xE1, 0x11, 
  0x02, 0x00, 0xC0, 0xF3, 0xE0, 0xE1, 0x11, 0x02, 0x00, 0xC0, 0xF3, 0xE0, 
  0xE1, 0x11, 0x02, 0x00, 0xC0, 0xF3, 0xE0, 0xE1, 0x11, 0x02, 0x00, 0xC0, 
  0xF3, 0xE0, 0xE1, 0x11, 0xE2, 0x01, 0xC0, 0xF3, 0xE0, 0xE1, 0x11, 0xE2, 
  0x01, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0xE2, 0x01, 0xC0, 0x03, 0xE0, 0x01, 
  0x10, 0xE2, 0x01, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0xE2, 0x01, 0xC0, 0x03, 
  0xE0, 0x01, 0x10, 0xE2, 0x01, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0xE2, 0x01, 
  0xC0, 0x03, 0xE0, 0x01, 0x10, 0xE2, 0x01, 0xC0, 0x03, 0xE0, 0x01, 0x10, 
  0xE2, 0x01, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0xE2, 0x01, 0xC0, 0x03, 0xE0, 
  0x01, 0x10, 0xE2, 0x01, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0xE2, 0x01, 0xC0, 
  0x03, 0xE0, 0x01, 0x10, 0xE2, 0x03, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0xE2, 
  0x0F, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0xC2, 0x3F, 0xC0, 0x03, 0xE0, 0x01, 
  0x10, 0x82, 0x7F, 0xC0, 0x03, 0xE0, 0x01, 0x10, 0x06, 0xFE, 0xC1, 0x03, 
  0xE0, 0x01, 0x18, 0x1C, 0xFC, 0xC7, 0x03, 0xE0, 0x01, 0x0E, 0x30, 0xF0, 
  0xCF, 0x03, 0xE0, 0x81, 0x03, 0xE0, 0xC0, 0xFF, 0x03, 0xE0, 0xC1, 0x00, 
  0x80, 0x03, 0xFF, 0x03, 0x60, 0x70, 0x00, 0x00, 0x0E, 0xFE, 0x03, 0x20, 
  0x1C, 0x00, 0x00, 0x38, 0xF8, 0x03, 0x00, 0x07, 0x00, 0x00, 0x60, 0xE0, 
  0x03, 0x80, 0x01, 0x00, 0x00, 0xC0, 0x81, 0x03, 0xE0, 0x00, 0x00, 0x00, 
  0x00, 0x07, 0x03, 0x38, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x0E, 0x00, 
  0x00, 0x00, 0x00, 0x30, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xC0, 
  0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };


void UpdateDisplay(int Symbol) {

  u8g2.firstPage();
  
  do {

    u8g2.drawXBM(0, 2, 54, 60, Logo);
    u8g2.drawRFrame(58, 2, 70, 60, 10);
    
    u8g2.setFont(u8g2_font_unifont_t_symbols);

    switch (Symbol) {
      case 1:
        u8g2.drawGlyph(73, 20, 0x2660);
        break;
      case 2:
        u8g2.drawGlyph(83, 20, 0x2661);
        break;
      case 3:
        u8g2.drawGlyph(93, 20, 0x2662);
        break;
      case 4:
        u8g2.drawGlyph(103, 20, 0x2663);
        break;
    }

    u8g2.drawLine(63, 27, 122, 27);
    u8g2.drawStr(64,44,"Sample");
    u8g2.drawStr(64,56,"program");
            
  } while ( u8g2.nextPage() );

}

void setup() {

  Serial.begin(9600);
  u8g2.begin();
  Serial.println("Sample program for Oled display");
 
}

void loop() {

  for(int Symbol = 1; Symbol < 5; Symbol = Symbol + 1 ) { 
    UpdateDisplay(Symbol);
    delay(1000);
  }

}