Arduino – Display OLED via I2C (SH1106)

Hardware

Display OLED 128x64 I2C bovenkant

   BESTEL NU!

Deze pagina beschrijft het aansluiten van een OLED 128×64 I2C display op een arduino.

Pinout

Display OLED 128x64 I2C bovenkant 
Pin:Functie:
1GND
2VCC (+3.3 - 5v)
3SCL
4SCA

Wat heb je nodig?

1) Arduino u8glib bibliotheek

Aansluiten op de Arduino

Sluit de OLED display aan volgens onderstaand schema:

Display OLED 128x64 I2C arduino schema

Pin OLED I2C Display:Pin Arduino:
GNDGND
VCC+5v
SCLA5
SCAA4

Script

Je kan met de u8glib bibliotheek heel veel displays aansturen, dat is afhankelijk van de controller die gebruikt wordt. Je moet daarvoor (in de voorbeeld scripts de commentaar // weghalen) een regel specificeren, het script hieronder is voor een display met een SH1106 controller, daarvoor moet deze regel ingeladen worden:

U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI

In de u8glib library’s zijn enkele voorbeeld scripts te vinden, o.a. een Demo wat allemaal mogelijk is, Ik heb uit de Demo wat regels aan script uitgehaald, zodat je eenvoudig kan zien wat nodig is om wat tekst op het display te plaatsen.

Voorbeeld: Hallo Wereld!

Het resultaat (zelfde als onder op de SPI versie):
OLED 128x32 SPI display (SSD1306) - hallo wereld

Voorbeeld: Hallo Wereld! en Maan! (met geinverteerde kleuren z/w)

Het resultaat (zelfde als onder op de SPI versie):
OLED 128x32 SPI display (SSD1306) - hallo wereld en maan

Framerate

De SSD1306 chip ondersteunt niet meer dan 100KHz. met de overhead van de ACK (I2C), is er ongeveer 90KHz over voor pure bitrate. Het display heeft 128×64 pixels, dat maakt in totaal 8192 pixels, dat geeft een maximum van ongeveer 11 frames per seconde!

Bronnen:
arduino-er.blogspot.nl
henrysbench.capnfatz.com