SH 1106 Display

A very common used display for small systems is monochrome LED displayss

 
  • 128 x 32 0.91" OLED

  • I2C interface

  • driver chip SSD1306

  • 3.3-5V

 
  • 128 x 64 1.3" OLED

  • SPI(I2C) interface

  • driver chip SH1106

  • 3.3-5V

Just these two similar displays requires different drivers

(click for see my User_Setup.h file - look for JDN)

OLED

128x64 pixels display

Driver

Displayet har en SH1106 driver chip. Dvs der skal installeres et bibliotek der understøtter den

Åben Arduino IDE Vælg NODEMCU ESP32 Sketch->include library-> manage libraries søg efter U8g2 bibliotek - installer biblioteket

Nu kan du finde eksempler under File->examples->U8g2

Åbn file->examples->U8g2->8x8->HelloWorld

I eksemplet er der en masse config linier til forskellige displays

Det er fordi denne driver kan bruges til rigtig mange displays.

U8X8_NULL u8x8; null device, a 8x8 pixel display which does nothing U8X8_SSD1306_128X64_NONAME_4W_SW_SPI u8x8( clock= 13, data= 11, cs= 10, dc= 9, reset= 8); U8X8_SSD1306_128X64_NONAME_4W_HW_SPI u8x8( cs= 6, dc= 4, reset= 12); Arduboy (DevKit) U8X8_SSD1306_128X64_NONAME_4W_HW_SPI u8x8( cs= 12, dc= 4, reset= 6); Arduboy 10 (Production, Kickstarter Edition) U8X8_SSD1306_128X64_NONAME_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8); U8X8_SSD1306_128X64_NONAME_3W_SW_SPI u8x8( clock= 13, data= 11, cs= 10, reset= 8); U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8( reset= U8X8_PIN_NONE); U8X8_SSD1306_128X64_ALT0_HW_I2C u8x8( reset= U8X8_PIN_NONE); same as the NONAME variant, but may solve the “every 2nd line skipped” problem U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8( clock= 2, data= 0, reset= U8X8_PIN_NONE); Digispark ATTiny85 U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8( clock= SCL, data= SDA, reset= U8X8_PIN_NONE); OLEDs without Reset of the Display U8X8_SSD1306_128X64_VCOMH0_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but maximizes setContrast() range U8X8_SSD1306_128X64_ALT0_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but may solve the “every 2nd line skipped” problem

U8X8_SH1106_128X64_NONAME_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8); JENS DEN VI SKAL BRUGE

U8X8_SH1106_128X64_NONAME_HW_I2C u8x8( reset= U8X8_PIN_NONE); U8X8_SH1106_128X64_VCOMH0_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but maximizes setContrast() range U8X8_SH1106_128X64_WINSTAR_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but uses updated SH1106 init sequence U8X8_SH1106_72X40_WISE_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8);

Vi skal have valgt den rigtige som er U8X8_SH1106_128X64_NONAME_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8);

1. Kommentar skal fjernes

U8X8_SH1106_128X64_NONAME_4W_HW_SPI u8x8( cs= 10, dc= 9, reset= 8);

2. Vi skal lægge os fast på hvilke ben vi skal forbinde

gnd gnd vcc 3.3V /Vin

clk GPIO18 mosi GPIO23

res GPIO17 dc GPIO22 cs GPIO5

I kan se i config linien ovenover at funktionen har pin nr på cs,dc og reset som parameter

Vi vælger at bruge 5,22,17 til cs,dc og reset

U8X8_SH1106_128X64_NONAME_4W_HW_SPI u8x8(5, 22, 17);

Nu skal der forbindes ledninger op

På kanten af display er det

pin  — - forbindes til …

GND GND (stel) VCC 3.3V eller Vin CLK GPIO18 MOSI GPIO23 RES GPIO17 DC GPIO22 CS GPIO5

WARNING

Her er min setup kode

u8x8.begin(); u8x8.setPowerSave(0); Serial.begin(115200); Serial.print(“MOSI: ”); Serial.println(MOSI); Serial.print(“SCK:”); Serial.println(SCK);

Læg mærke til jeg som første linie efter u8x8.begin kalder u8x8.setPowerSave(0)

dvs jeg TÆNDER DISPLAY

ellers er det sort uanset du bruger det

Den linie MANGLER i nogle af eksemplerne