Arduino Lektion 78: 128×64 Pixel, 1,3″ OLED Display

In diesem Tutorial möchte ich das 128×64 Pixel, 1,3″ OLED Display für den Arduino vorstellen.

1,3" OLED Display
1,3″ OLED Display

Das Display wird mit einer 4er Pinleiste geliefert welche noch angelötet werden muss.

1,3" Display - Pinleiste anlöten
1,3″ Display – Pinleiste anlöten

Bezug

Das Display kann für ca. 3,5€ inkl. Versandkosten aus China bei ebay.de bestellt werden. 

Technische Daten des Displays

  • Auflösung 128x64Pixel
  • Größe 1,3″
  • Controller SSH1106
  • Betriebsspannung 3,3V bis 5V
  • Umgebungstemperatur -40°C bis +70°C

Anschluss & Schaltung

Das Display verfügt über 4 Pins welche mit GND, VCC, SCL und SDA bezeichnet sind.

DisplayArduino Leonardo
GNDGND
VCC5V
SCLA4 oder SCL
SDAA5 oder SDA

Der Arduino UNO und Leonardo verfügen neben den analogen Pins A4 & A5 auch über separat hinausgeführte SCL & SDA Pins.

Beschriftung der SCL & SDA Pins auf der Rückseite des Arduino UNOs
Beschriftung der SCL & SDA Pins auf der Rückseite des Arduino UNOs
Schaltung - 1,3" OLED Display am Arduino UNO
Schaltung – 1,3″ OLED Display am Arduino UNO
Arduino Leonardo mit 1,3" OLED Display
Arduino Leonardo mit 1,3″ OLED Display

Quellcode

Für den betrieb des Displays verwende ich die Adafruit Bibliothek SSD1306 in der Version 1.2.9. Die Bibliothek kann über den „Bibliotheksverwalter“ installiert werden.

Bibliothek - Adafruit SSD1306 von Adafruit
Bibliothek – Adafruit SSD1306 von Adafruit

Zusätzlich wird die GFX Bibliothek von Adafruit benötigt.

Bibliothek - Adafruit GFX Library von Adafruit
Bibliothek – Adafruit GFX Library von Adafruit

Nachdem beide Bibliotheken installiert wurden (ein neustart ist nicht notwendig) kann mit der Entwicklung begonnen werden.

Beispiele zur Bibliothek „U8glib“

Der Bibliothek liegen einige Beispiele bei welche die Funktionen der Bibliothek sehr gut beschreiben. 

Arduino IDE - Beispiele der Bibliothek U8glib
Arduino IDE – Beispiele der Bibliothek U8glib

Die Bibliothek kann für mehrere Displays verwendet werden und daher muss man sich aus einer (wahnsinnig) langen Liste erst einmal sein Display raussuchen und konfigurieren.

Für die nachfolgenden Beispiele nutze ich 

da, das Display über SCL & SDA angeschlossen ist.

Eine Ausführliche Erläuterung was die Bibliothek bietet findet man unter https://github.com/olikraus/u8glib/wiki/userreference.

Einfaches Beispiel – „Hello World!“

Ergebnis

einfaches Beispiel - "HelloWorld!"
einfaches Beispiel – „HelloWorld!“

Das positionieren und ausgeben von Texten auf dem Display ist mit den Funktionen

möglich. Dabei muss man natürlich darauf achten das man innerhalb des Displays bleibt da sonst der Text über den bereits bestehenden Text gelegt wird.

1,3" Display mit langem Text
1,3″ Display mit langem Text

Grafiken auf dem Display anzeigen

Wie man eine Grafik auf einem OLED Display anzeigt, habe ich bereits in dem Tutorial Arduino Projekt: Darstellen von Text und Grafik auf einem OLED Display erläutert. Dieses Display ist jedoch etwas größer und eignet sich daher besser um Grafiken darzustellen.

Damit wir eine Grafik auf dem Display anzeigen können muss diese zunächst in das XBM Format gebracht werden. Das XBM Format ist eigentlich ein Array welches die Punkte in der Grafik repräsentieren.

Mit dem OnlineTool https://convertio.co/de/png-xbm/ läßt sich ein PNG Bild in ein XBM Array convertieren. 

Das PNG darf jedoch keine Transparenz enthalten, damit kommt das Tool nicht zurecht!

Wenn das Bild heruntergeladen wurde, kann diese Datei mit einem beliebigen Texteditor geöffnet werden. Ich empfehle hier den PSPad oder den NotePad++ (beide sind kostenfrei nutzbar). 

Hat man diese Datei geöffnet so erschließt einem sich folgender Aufbau:

Diesen Code übernehmen wir nun in unsen Sketch und Zeichnen mit der Funktion 

beginnend an x = 0, y = 0  unser 64×64 Pixel großes Bild.

1,3" OLED Display mit XBM Grafik
1,3″ OLED Display mit XBM Grafik

Quellcode

Zeichnen von geometrischen Formen

Das zeichnen von einfachen, geometrischen Formen ist mit der Bibliothek „U8gLib“ sehr einfach.

1,3" OLED Display mit geometrischen Formen
1,3″ OLED Display mit geometrischen Formen

Es gibt für faste jede geometrische Form eine Funktion, möchte man also einen Kreis auf dem Display zeichnen so benötigt man die Funktion „drawCircle“. Dieser Funktion wird eine X & Y Koordinate des Mittelpunktes des zu zeichnenden Kreises übergeben sowie den Durchmesser.

Fazit

Das 1,3″ OLED Display ist in der Programmierung (mit der Bibliothek U8gLib) sehr einfach auch der Anschluß an den Arduino UNO gestaltet sich über I2C sehr einfach. 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.