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.

U8X8NULL u8x8; null device, a 8x8 pixel display which does nothing U8X8SSD1306128X64NONAME4WSWSPI u8x8( clock= 13, data= 11, cs= 10, dc= 9, reset= 8); U8X8SSD1306128X64NONAME4WHWSPI u8x8( cs= 6, dc= 4, reset= 12); Arduboy (DevKit) U8X8SSD1306128X64NONAME4WHWSPI u8x8( cs= 12, dc= 4, reset= 6); Arduboy 10 (Production, Kickstarter Edition) U8X8SSD1306128X64NONAME4WHWSPI u8x8( cs= 10, dc= 9, reset= 8); U8X8SSD1306128X64NONAME3WSWSPI u8x8( clock= 13, data= 11, cs= 10, reset= 8); U8X8SSD1306128X64NONAMEHWI2C u8x8( reset= U8X8PINNONE); U8X8SSD1306128X64ALT0HWI2C u8x8( reset= U8X8PINNONE); same as the NONAME variant, but may solve the “every 2nd line skipped” problem U8X8SSD1306128X64NONAMESWI2C u8x8( clock= 2, data= 0, reset= U8X8PINNONE); Digispark ATTiny85 U8X8SSD1306128X64NONAMESWI2C u8x8( clock= SCL, data= SDA, reset= U8X8PINNONE); OLEDs without Reset of the Display U8X8SSD1306128X64VCOMH04WHWSPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but maximizes setContrast() range U8X8SSD1306128X64ALT04WHW_SPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but may solve the “every 2nd line skipped” problem

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

U8X8SH1106128X64NONAMEHWI2C u8x8( reset= U8X8PINNONE); U8X8SH1106128X64VCOMH04WHWSPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but maximizes setContrast() range U8X8SH1106128X64WINSTAR4WHWSPI u8x8( cs= 10, dc= 9, reset= 8); same as the NONAME variant, but uses updated SH1106 init sequence U8X8SH110672X40WISE4WHW_SPI u8x8( cs= 10, dc= 9, reset= 8);

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

1. Kommentar skal fjernes

U8X8SH1106128X64NONAME4WHWSPI 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

U8X8SH1106128X64NONAME4WHWSPI 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