Arduino Nano - SSD1309 OLED Display 128x64 | 2,42 Zoll I2C OLED Tutorial
Ein OLED (Organic Light-Emitting Diode) Display bietet selbstleuchtende Pixel, die tiefe Schwarztöne, hohen Kontrast und weite Betrachtungswinkel liefern — was es zu einem großartigen Upgrade gegenüber herkömmlichen LCDs macht. Der SSD1309 ist der Treiber-IC, der häufig auf 2,42-Zoll (manchmal als 2,4-Zoll bezeichnet) 128×64 I2C OLED Modulen zu finden ist.
In diesem Schritt-für-Schritt Leitfaden lernen Sie, wie Sie das SSD1309 OLED 128×64 mit einem Arduino Nano Board über die DIYables_OLED_SSD1309 Bibliothek verbinden und programmieren. Konkret behandeln wir:
- Verkabelung des 2,42-Zoll SSD1309 OLED mit Arduino Nano über I2C
- Text und Zahlen auf dem Bildschirm ausgeben
- Text sowohl vertikal als auch horizontal zentrieren
- Geometrische Formen zeichnen (Linien, Rechtecke, Kreise, Dreiecke, abgerundete Rechtecke)
- Monochrome Bitmap-Bilder rendern
- Hardware-Scrolling in vier Richtungen
- Kontrast anpassen und Display dimmen
- Benutzerdefinierte externe Schriftarten aus der Adafruit GFX Schriftsammlung verwenden
Benötigte Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das SSD1309 2,42-Zoll OLED Display
Der SSD1309 ist ein Single-Chip CMOS OLED Treiber-IC, der für 128×64 Punkt-Matrix-Panels entwickelt wurde. Er ist registerkompatibel mit dem weit verbreiteten SSD1306, sodass viele bestehende Code-Beispiele mit minimalen Änderungen übertragbar sind. Die wichtigsten Hardware-Unterschiede sind:
- Keine eingebaute Ladungspumpe — der SSD1309 benötigt eine externe VCC-Versorgung, obwohl praktisch alle Breakout-Boards (einschließlich 2,42-Zoll und 2,4-Zoll Module) mit einem integrierten Boost-Konverter geliefert werden, sodass dies für Sie transparent ist.
- Höhere Spannungstoleranz — der SSD1309 akzeptiert bis zu 16 V VCC, während der SSD1306 auf etwa 4,2 V begrenzt ist.
Das 2,42 Zoll (2,4 Zoll) OLED Modul verwendet üblicherweise den SSD1309 Treiber und verfügt über eine 128×64 Pixel Auflösung mit I2C Schnittstelle. Die Panel-Farbe (weiß, blau, gelb, grün oder zweifarbig) wird durch das physische OLED-Material bestimmt und ist nicht softwaresteuerbar.
Dieses Tutorial kommuniziert mit dem Display über den I2C Bus, der nur zwei Signalleitungen (SDA und SCL) benötigt und den Bus mit anderen I2C Peripheriegeräten teilen kann.
SSD1309 OLED Pinout (I2C Modul)
- GND Pin: Dieser sollte mit der Masse des Arduino Nano verbunden werden.
- VCC Pin: Dies ist die Stromversorgung für das Display, die mit 5V verbunden werden sollte.
- SCL Pin: Dies ist ein serieller Taktpin für die I2C Schnittstelle. Mit A5 verbinden.
- SDA Pin: Dies ist ein serieller Datenpin für die I2C Schnittstelle. Mit A4 verbinden.

※ Notiz:
- Die Pins des OLED Moduls können je nach Hersteller und Typ unterschiedlich sein. Bitte verwenden Sie die auf dem OLED Modul aufgedruckten Bezeichnungen. Bitte schauen Sie genau hin!
- Dieses Tutorial verwendet das OLED Display, das vom SSD1309 I2C Treiber angesteuert wird. Wir haben es mit dem OLED Display von DIYables getestet und es funktioniert einwandfrei.
Schaltplan
- Schaltplan zwischen Arduino Nano und SSD1309 OLED 128x64

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.
Die Verkabelungstabelle zwischen Arduino Nano und SSD1309 OLED Display:
| OLED Modul | Arduino Nano |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Arduino Nano für SSD1309 OLED programmieren
Die DIYables_OLED_SSD1309 Bibliothek installieren
Die DIYables_OLED_SSD1309 Bibliothek ist speziell für SSD1309 Displays entwickelt und erweitert Adafruit_GFX für erweiterte Grafikunterstützung.
- Klicken Sie auf das Libraries Symbol in der linken Leiste der Arduino IDE.
- Suchen Sie nach DIYables_OLED_SSD1309 und suchen Sie dann die DIYables OLED SSD1309 Bibliothek von DIYables
- Klicken Sie auf Install um die DIYables_OLED_SSD1309 Bibliothek zu installieren.

- Sie werden aufgefordert, Abhängigkeiten für die Bibliothek zu installieren
- Installieren Sie alle Abhängigkeiten, indem Sie auf Install All klicken.

Programmierungsschritte
- Die erforderlichen Bibliotheken einbinden
- Die Bildschirmabmessungen definieren
- Das Display-Objekt deklarieren
- Das OLED in setup() initialisieren
- Inhalt anzeigen
Arduino Nano Code — Hello World auf SSD1309 OLED
Der einfachste Ausgangspunkt: einige Textzeilen in verschiedenen Größen ausgeben.
Arduino Nano Code — Text auf SSD1309 OLED anzeigen
Das folgende Beispiel demonstriert erweiterte Textfunktionen — mehrere Größen, Zahlenformatierung und das F() Makro zur RAM-Einsparung.
Nützliche Display-Funktionen Referenz
Unten finden Sie eine Kurzreferenz der am häufigsten verwendeten Funktionen bei der Arbeit mit dem SSD1309 OLED über die DIYables Bibliothek:
- oled.clearDisplay() — löscht den Framepuffer (alle Pixel aus).
- oled.display() — überträgt den Puffer auf das OLED, damit Änderungen sichtbar werden.
- oled.drawPixel(x, y, color) — setzt oder löscht einen einzelnen Pixel.
- oled.setTextSize(n) — skaliert die Schrift um Faktor *n* (1 = 6×8, 2 = 12×16, …, bis zu 8).
- oled.setCursor(x, y) — bewegt den Textcursor zu den Pixelkoordinaten *(x, y)*.
- oled.setTextColor(SSD1309_PIXEL_ON) — nur Text-Vordergrund (Hintergrund ist transparent).
- oled.setTextColor(SSD1309_PIXEL_OFF, SSD1309_PIXEL_ON) — Text mit expliziter Hintergrundfarbe.
- oled.println("nachricht") — gibt einen String aus und geht zur nächsten Zeile.
- oled.println(number) — gibt eine Ganzzahl dezimal aus.
- oled.println(number, HEX) — gibt eine Ganzzahl hexadezimal aus.
- oled.startscrollright(start, stop) — Hardware-Scroll nach rechts zwischen Seite *start* und Seite *stop*.
- oled.startscrollleft(start, stop) — Hardware-Scroll nach links.
- oled.startscrolldiagright(start, stop) — Hardware-Scroll diagonal nach rechts.
- oled.startscrolldiagleft(start, stop) — Hardware-Scroll diagonal nach links.
- oled.stopscroll() — stoppt jeden aktiven Hardware-Scroll.
- oled.setContrast(value) — passt die Display-Helligkeit an (0–255).
- oled.dim(true/false) — dimmt das Display schnell auf Minimum oder stellt den vorherigen Kontrast wieder her.
- oled.invertDisplay(true/false) — Hardware-Level Farbinversion (an-Pixel ↔ aus-Pixel).
Text vertikal und horizontal auf dem SSD1309 OLED zentrieren
Arduino Nano Code — Formen auf SSD1309 OLED zeichnen
Da die DIYables_OLED_SSD1309 Bibliothek Adafruit_GFX erweitert, erhalten Sie einen vollständigen Satz von Form-Zeichen-Primitiven: Pixel, Linien, Rechtecke, gefüllte Rechtecke, Kreise, gefüllte Kreise, Dreiecke, gefüllte Dreiecke und abgerundete Rechtecke. Der folgende Sketch durchläuft alle mit animierten Demos.
Arduino Nano Code — Hardware Scrolling auf SSD1309 OLED
Der SSD1309 verfügt über eine eingebaute Scrolling-Engine, die den Display-Inhalt ohne CPU-Last verschiebt. Die DIYables Bibliothek stellt vier Scroll-Richtungen zur Verfügung: rechts, links, diagonal-rechts und diagonal-links. Jede nimmt einen Start-Seiten- und Stop-Seiten-Parameter (Seiten sind 8-Pixel-hohe horizontale Streifen nummeriert 0–7 auf einem 64-Pixel-hohen Display).
※ Notiz:
Rufen Sie immer display() auf, um Ihren Inhalt auf das OLED zu übertragen, bevor Sie einen Scroll starten. Vermeiden Sie es, neue Inhalte zu zeichnen, während das Scrolling aktiv ist — rufen Sie zuerst stopscroll() auf.
Arduino Nano Code — Bitmap-Bild auf SSD1309 OLED anzeigen
Um ein Bitmap auf dem SSD1309 OLED anzuzeigen, müssen Sie zuerst Ihr Bild in ein C Byte-Array konvertieren. Verwenden Sie das kostenlose image2cpp Online-Tool für diese Konvertierung:
- Laden Sie Ihre Bilddatei hoch (PNG, JPG, BMP, etc.).
- Setzen Sie die Canvas-Größe auf 128×64 (oder kleiner).
- Wählen Sie Arduino code als Ausgabeformat.
- Kopieren Sie das generierte Array in Ihren Sketch.

Das folgende Beispiel wechselt zwischen einem 16×16 Herz-Symbol und einem vollbreiten DIYables Logo:
※ Notiz:
- Die Bitmap-Abmessungen dürfen die Bildschirmauflösung nicht überschreiten (128×64 für das 2,42 Zoll Modul).
Arduino Nano Code — Kontrast und Dimmen auf SSD1309 OLED
Der SSD1309 unterstützt 256 Kontraststufen (0–255). Die DIYables Bibliothek bietet setContrast() für feinabgestimmte Kontrolle und dim() für einen schnellen Wechsel zwischen minimaler Helligkeit und dem zuvor konfigurierten Level.
Arduino Nano Code — Benutzerdefinierte externe Schriftarten auf SSD1309 OLED
Die Adafruit GFX Bibliothek wird mit Dutzenden skalierbarer FreeFont Schriftarten geliefert (Serif, Sans, Mono — jeweils in Regular, Bold, Italic und vier Größen). Sie können jede davon auf dem SSD1309 Display aktivieren, indem Sie den entsprechenden Header einbinden und setFont() aufrufen.
※ Notiz:
- Wenn eine externe Schriftart aktiv ist, bezieht sich die Cursor Y-Koordinate auf die Text-Grundlinie, nicht auf die obere linke Ecke. Dies unterscheidet sich von der eingebauten 5×7 Schrift.
- Externe Schriftarten werden im Flash (PROGMEM) gespeichert. Auf speicherlimitierten AVR Boards (Arduino Nano = 32 KB Flash) verwenden Sie sie sparsam.
SSD1309 OLED Fehlerbehebung mit Arduino Nano
Wenn nach dem Hochladen Ihres Sketches nichts auf dem 2,42 Zoll SSD1309 OLED erscheint, arbeiten Sie diese Überprüfungen durch:
- Verkabelung überprüfen — bestätigen Sie, dass SDA, SCL, VCC und GND mit den korrekten Arduino Nano Pins verbunden sind.
- Treiber-Chip bestätigen — diese Bibliothek ist für den SSD1309 entwickelt. Wenn Ihr Modul einen anderen Controller verwendet (z.B. SH1106), wird es nicht korrekt reagieren.
- I2C Adresse überprüfen — die meisten SSD1309 Module verwenden standardmäßig 0x3C, aber einige verwenden 0x3D. Führen Sie den I2C Scanner Sketch unten aus, um die tatsächliche Adresse zu erkennen:
Erwartete Serial Monitor Ausgabe wenn der SSD1309 erkannt wird:
- Sicherstellen, dass display() aufgerufen wird — der SSD1309 verwendet einen Framepuffer. Zeichenfunktionen modifizieren nur den Puffer im RAM; nichts erscheint auf dem Bildschirm, bis Sie oled.display() aufrufen.
- Stromversorgung überprüfen — das 2,42 Zoll Modul zieht mehr Strom als kleinere OLEDs. Stellen Sie sicher, dass Ihre Stromquelle ausreichend Strom liefern kann (typischerweise 20–40 mA bei voller Helligkeit).
Video Tutorial
Zusammenfassung
Dieser Leitfaden hat alle wesentlichen Punkte für die Verwendung des 2,42-Zoll SSD1309 OLED Displays (128×64) mit Arduino Nano abgedeckt, einschließlich:
- Hardware-Verbindungen und I2C Verkabelung
- Text- und Zahlenanzeige mit mehreren Größen
- Formen zeichnen (Rechtecke, Kreise, Dreiecke)
- Bitmap-Bilder rendern
- Hardware-Scrolling in vier Richtungen
- Kontrast- und Helligkeitskontrolle
- Benutzerdefinierte externe Schriftarten
Die DIYables_OLED_SSD1309 Bibliothek vereinfacht die SSD1309 Programmierung, indem sie hochrangige Funktionen für Text, Grafiken und Display-Kontrolle bereitstellt, während sie Adafruit GFX für erweiterte Zeichenmöglichkeiten nutzt.
Für weitere Arduino Nano Projekte und Tutorials besuchen Sie arduinogetstarted.com