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