Zum Inhalt springen
Arduino Tutorials Anfänger · 1 Std. · Aktualisiert am 15. Juli 2026

Ein OLED-Display (Adafruit SSD1306) am Arduino, ESP8266 und ESP32 anschließen

OLED-Display am Arduino anschliessen

Willst du deinem Projekt einen Hauch von Eleganz verleihen? Wie wäre es mit einem coolen OLED-Display? Sie sind flach, leicht, energieeffizient und bieten ein gestochen scharfes Bild. In diesem Blog-Artikel erfährst du, wie du ein OLED-Display (Adafruit SSD1306) an deinen Arduino anschließt und verwendest.

Diese Bauteile brauchst du

Affiliate-Links: Kaufst du über diese Links, erhält Pollux Labs eine kleine Provision – für dich ohne Mehrkosten.

Schritt 1: Verkabelung

Bevor wir mit der Programmierung beginnen, müssen wir das Display mit dem Arduino verbinden. Hier ist, wie Du es verkabelst:

  1. Schließe GND (Ground) des OLED-Displays an den GND-Pin des Arduino an.
  2. Verbinde VCC (Power) des Displays mit dem 5V-Pin des Arduino.
  3. Schließe SDA (Daten) des Displays an den A4-Pin (SDA) des Arduino Uno oder Mega, bzw. an den A4-Pin (SDA) des Arduino Nano an.
  4. Verbinde SCL (Clock) des Displays mit dem A5-Pin (SCL) des Arduino Uno oder Mega, bzw. an den A5-Pin (SCL) des Arduino Nano.
OLED-Disply angeschlossen am Arduino UNO R4

Wenn Du ein Breadboard verwendest, stecke das -Display auf das Breadboard und verbinde es mit dem Arduino über Jumper-Kabel.

Schritt 2: Bibliotheken installieren

Um das OLED-Display mit dem Arduino zu verwenden, benötigst du zwei Bibliotheken: die Adafruit-GFX-Bibliothek und die Adafruit-SSD1306-Bibliothek. Du kannst sie direkt aus der Arduino-IDE heraus installieren:

  1. Öffne die Arduino-IDE und den Bibliotheksverwalter: In der IDE 2.x über das Bücher-Symbol in der linken Seitenleiste, in der IDE 1.x über „Sketch“ > „Bibliothek einbinden“ > „Bibliotheken verwalten…“.
  2. Suche nach „Adafruit GFX Library“ und installiere die neueste Version.
  3. Suche anschließend nach „Adafruit SSD1306“ und installiere auch hier die neueste Version.

Schritt 3: Beispielcode laden und anpassen

Jetzt, wo die Verkabelung und die Bibliotheken bereit sind, können wir den Beispielcode laden und anpassen:

  1. Öffne die Arduino-IDE und gehe zu „Datei“ > „Beispiele“ > „Adafruit SSD1306“ > „ssd1306_128x64_i2c“.
  2. Suche im Code nach der Zeile #define OLED_RESET 4 und ändere sie in #define OLED_RESET -1, um den Reset-Pin zu deaktivieren (wir benötigen ihn nicht).
  3. Die Auflösung ist im Beispiel bereits über #define SCREEN_WIDTH 128 und #define SCREEN_HEIGHT 64 auf 128×64 Pixel gesetzt – hier musst Du also nichts ändern. Sollte Dein Display eine andere Auflösung haben (z.B. 128×32), passe diese beiden Werte an.
  4. Falls auf dem Display nichts erscheint, liegt es meist an der I2C-Adresse: Die meisten günstigen Module nutzen 0x3C (so auch im Beispiel), manche jedoch 0x3D. Prüfe im Code die Zeile mit display.begin(SSD1306_SWITCHCAPVCC, 0x3C) und passe die Adresse bei Bedarf an.

Schritt 4: Code hochladen und Display testen

Es ist Zeit, den angepassten Beispielcode auf Deinen Arduino zu laden und das OLED-Display zu testen:

  1. Stelle sicher, dass Dein Arduino über USB mit Deinem Computer verbunden ist.
  2. Wähle in der Arduino-IDE unter „Werkzeuge“ > „Board“ das richtige Arduino-Board aus (z.B. Arduino Uno, Mega oder Nano).
  3. Wähle unter „Werkzeuge“ > „Port“ den richtigen USB-Anschluss für Deinen Arduino aus.
  4. Klicke auf den „Hochladen“-Button (Pfeilsymbol) in der Arduino-IDE, um den Code auf Deinen Arduino zu übertragen.

Sobald der Code erfolgreich hochgeladen wurde, sollte das Display verschiedene Muster und Text anzeigen. Herzlichen Glückwunsch, Du hast erfolgreich ein OLED-Display an Deinen Arduino angeschlossen und verwendet!

Schritt 5: Dein eigenes Display-Design erstellen

Nun, da Du weißt, wie Du ein OLED-Display anschließt und den Beispielcode verwendest, kannst Du Deine eigenen Designs und Texte erstellen! Hier sind einige grundlegende Funktionen, die Du nutzen kannst:

  • display.clearDisplay(); – Löscht den Display-Inhalt.
  • display.setTextSize(1); – Setzt die Textgröße (1, 2, 3…).
  • display.setTextColor(SSD1306_WHITE); – Setzt die Textfarbe (OLED-Displays sind normalerweise monochrom, daher ist Weiß die Standardfarbe). Hinweis: Ältere Tutorials verwenden hier noch WHITE – in aktuellen Versionen der Bibliothek solltest Du SSD1306_WHITE nutzen.
  • display.setCursor(0, 0); – Setzt den Cursor an die angegebene Position (x, y).
  • display.println("Hallo, Maker!"); – Gibt Text auf dem Display aus.
  • display.display(); – Aktualisiert das Display, um die vorgenommenen Änderungen anzuzeigen.

Fühle Dich frei, mit diesen Funktionen zu experimentieren und dein eigenes Display-Design zu erstellen. Denke daran, den Befehl display.display(); nach deinen Anweisungen zu verwenden, um die Änderungen auf dem Display sichtbar zu machen.

Damit Du nicht auf den umfangreichen Beispiel-Sketch angewiesen bist, findest Du hier einen minimalen, vollständigen Sketch, der lediglich „Hallo, Maker!“ auf dem Display ausgibt. Er ist ein idealer Ausgangspunkt für Deine eigenen Projekte:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH   128
#define SCREEN_HEIGHT  64
#define OLED_RESET     -1     // Reset-Pin nicht genutzt
#define SCREEN_ADDRESS 0x3C   // ggf. 0x3D

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    for (;;); // Display nicht gefunden - hier anhalten
  }

  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Hallo, Maker!");
  display.display();
}

void loop() {
  // Hier kannst Du Dein Display fortlaufend aktualisieren
}

Übrigens, in diesem Tutorial lernst du, wie du Bilder auf dem OLED-Display anzeigst.

Bilder auf OLED-Display anzeigen

Der Anschluss am ESP8266

Der Anschluss eines OLED-Displays an einen ESP8266 ist ebenso einfach wie beim Arduino. Hier ist, wie Du es verkabelst:

Verkabelung und Code

Um das OLED-Display mit dem ESP8266 zu verbinden, führe die folgenden Schritte aus:

  1. Schließe GND (Ground) des OLED-Displays an den GND-Pin des ESP8266 an.
  2. Verbinde VCC (Power) des Displays mit dem 3.3V-Pin des ESP8266.
  3. Schließe SDA (Daten) des Displays an den D2-Pin (GPIO4, SDA) des ESP8266 an.
  4. Verbinde SCL (Clock) des Displays mit dem D1-Pin (GPIO5, SCL) des ESP8266.
OLED-Displaz am ESP8266 angeschlossen

Wenn Du ein Breadboard verwendest, stecke das OLED-Display auf das Breadboard und verbinde es mit dem ESP8266 über Jumper-Kabel.

Die restlichen Schritte zur Installation der Bibliotheken und zum Anpassen des Beispielcodes bleiben dieselben. Du musst lediglich eine kleine Änderung am Beispielcode vornehmen, um die Pin-Belegung für den ESP8266 festzulegen:

  1. Füge im Code die Zeile #include <Wire.h> hinzu, um die Wire-Bibliothek einzubinden.
  2. Füge direkt nach der Zeile Wire.begin(); die folgenden Zeilen hinzu, um die I2C-Pins für den ESP8266 festzulegen:
#if defined(ESP8266)
  Wire.begin(4, 5); // SDA, SCL
#endif

Das war’s! Jetzt kannst Du den angepassten Code auf Deinen ESP8266 hochladen und das Display wie zuvor beschrieben verwenden.

Der Anschluss am ESP32

Auch am ESP32 lässt sich das OLED-Display problemlos betreiben – er ist inzwischen mindestens so verbreitet wie der ESP8266. Der ESP32 besitzt einen fest vorgesehenen I2C-Bus, sodass Du in der Regel gar keine Pins im Code angeben musst.

Verkabelung

  1. Schließe GND (Ground) des OLED-Displays an den GND-Pin des ESP32 an.
  2. Verbinde VCC (Power) des Displays mit dem 3.3V-Pin des ESP32.
  3. Schließe SDA (Daten) des Displays an GPIO21 (Standard-SDA) des ESP32 an.
  4. Verbinde SCL (Clock) des Displays mit GPIO22 (Standard-SCL) des ESP32.

Da GPIO21 und GPIO22 die Standard-I2C-Pins des ESP32 sind, funktioniert der Adafruit-Beispielcode meist ohne Änderung. Wähle in der Arduino-IDE unter „Werkzeuge“ > „Board“ einfach Dein ESP32-Board aus und lade den Sketch hoch. Möchtest Du andere Pins verwenden, kannst Du sie mit Wire.begin(SDA_PIN, SCL_PIN); vor display.begin(...) festlegen.

Mehr Projekte für Arduino, ESP32, Raspi & Co
Werde Mitglied bei Pollux Labs und finde dein nächstes Projekt. Zum Beispiel:
Über 100 Maker sind bereits Mitglied bei Pollux Labs
  • ESP32 Internetradio
  • Arduino Wetterstation
  • ESP8266 & Raspi Webserver
  • Automatische Bewässerung
  • ... und viele mehr!