probeaufbau Probeaufbau mit Arduino Nano

Startseite

OLED Klasse für Arduino

Mit dieser Klasse steuerst du die billigen kleinen OLED Displays mit SSD1306 oder SH1106 Controller an. Sie ist deutlich kleiner und schneller, als die Grafik-Bibliothek von Adafruit ( GFX+ SSD1306), dafür allerdings weniger universell.

Der Code hat folgende Funktionen:

Download: OLED.zip (Lizenzfrei)

Ein einfaches Anwendungsbeispiel:

#include "oled.h"

OLED display(Wire, 0x3C, NO_RESET_PIN, 128, 64);

void setup()
{
    Wire.begin();
    display.init();
    display.draw_string(0,0,"Hello World!");
    display.display();
}
Die Dokumentation befindet sich in der Datei oled.h. In dem ZIP File befindet sich ein größerer Sketch, der alle Funktionen demonstriert.

Ich habe den Code mit folgender Hardware erfolgreich getestet:

Beim ESP8266 kann man mit Wire.begin(sda,scl) die Pin Nummern vom I²C Bus ändern.

Bitte beachte, dass die Displays mit 3,3V betrieben werden müssen! Das dargestellte Modul enthält einen 5V → 3,3V Spannungsregler und Pull-Up Widerstände auf 3,3V. Man kann es direkt an den Arduino anschließen, sofern kein anderes Modul die Leitungen auf 5V hoch zieht.

Manche Displays unterstützen sowohl SPI als auch das I²C Protokoll. Sie haben unterschiedlich beschriftete Anschlüsse:

Auf der Rückseite haben diese Displays oft entsprechend beschriftete Bauteile oder Lötjumper für die Umstellung von SPI nach I²C. Kontrolliere auch, ob SCL und SDA mit den angemessenen Pull-Up Widerständen ausgestattet sind. Ich empfehle 2,2kΩ. Oft sind wesentlich hochohmigere Widerstände eingelötet oder sie fehlen ganz.

Für SH1106 Controller muss der Konstruktor mit einem weiteren Parameter (true) aufgerufen werden. Es sind Displays mit SH1106 aufgetaucht, wo das Bild um zwei Pixel verschoben erscheint. Links fehlt etwas und rechts erscheint ein vertikaler Balken mit zufälligem Inhalt. In diesem Fall musst du im Quelltext von OLED::display() eine 0x00 auf 0x02 ändern. Die Stelle ist mit einem Kommentar gekennzeichnet.