OLED Display SSD1306 (0.96 Zoll)
AktuatorKleines selbstleuchtendes OLED-Display mit 128x64 Pixeln. Anders als ein LCD braucht es keine Hintergrundbeleuchtung — jeder Pixel leuchtet selbst. Daher hat es einen sehr guten Kontrast und ist auch im Dunkeln gut ablesbar. Kommuniziert ueber I2C.
Technische Daten
| Kategorie | Display/Anzeige |
|---|---|
| Schnittstelle | I2C |
| Pinbelegung | VCC, GND, SCL, SDA |
| Anzahl Pins | 4 |
| Messbereich | 128 x 64 Pixel, monochrom |
| Betriebsspannung | 3.3V – 5.0V |
| Stromverbrauch | 20.0 mA |
| Datenblatt | PDF oeffnen |
Anschluss
Arduino Uno R3
5V oder 3.3V=VCC, GND=GND, A5=SCL, A4=SDA
Hinweise: I2C-Adresse 0x3C (Standard). SDA und SCL sind beim Uno fest auf A4/A5. Mehrere I2C-Geraete koennen an denselben Pins haengen.
Codebeispiele
OLED Display: Text und Grafik anzeigen Mittel
Das OLED-Display wird ueber I2C angesteuert. Zuerst initialisieren wir es, dann zeichnen wir Text und einfache Grafiken in den Framebuffer. Erst display.display() macht alles sichtbar.
Benoetigte Bibliotheken: Adafruit_SSD1306.h, Adafruit_GFX.h, Wire.h (im Library Manager suchen: 'Adafruit SSD1306')
// ============================================
// OLED SSD1306: Text und Grafik anzeigen
// ============================================
// Anschluss (I2C): VCC=5V, GND=GND, SCL=A5, SDA=A4
#include <Wire.h> // I2C-Kommunikation
#include <Adafruit_GFX.h> // Grafik-Grundfunktionen
#include <Adafruit_SSD1306.h> // Display-Treiber
// Display-Einstellungen
#define BREITE 128 // Pixel horizontal
#define HOEHE 64 // Pixel vertikal
#define OLED_ADRESSE 0x3C // I2C-Adresse (0x3C oder 0x3D)
// Display-Objekt erstellen
// &Wire = I2C-Bus, -1 = kein Reset-Pin
Adafruit_SSD1306 display(BREITE, HOEHE, &Wire, -1);
void setup() {
Serial.begin(9600);
Wire.begin(); // I2C starten
// Display initialisieren
if (!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADRESSE)) {
Serial.println("FEHLER: OLED nicht gefunden!");
Serial.println("Pruefen: Verkabelung, I2C-Adresse (0x3C oder 0x3D?)");
while (true); // Stopp bei Fehler
}
Serial.println("OLED gefunden!");
// === Bildschirm loeschen ===
display.clearDisplay();
// === Rahmen zeichnen (Test ob Display geht) ===
display.drawRect(0, 0, 128, 64, SSD1306_WHITE);
// === Text anzeigen ===
display.setTextColor(SSD1306_WHITE); // Weisser Text
// Grosse Schrift
display.setTextSize(2); // 2x Groesse
display.setCursor(10, 10); // Position (x, y)
display.print("Arduino");
// Kleine Schrift
display.setTextSize(1); // Normale Groesse
display.setCursor(10, 40);
display.print("Sensor-Datenbank");
// === Alles auf den Bildschirm uebertragen ===
display.display();
delay(3000); // 3 Sekunden anzeigen
}
void loop() {
// Laufende Anzeige: Sekunden zaehlen
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Laufzeit:");
display.setTextSize(3);
display.setCursor(10, 25);
unsigned long sek = millis() / 1000;
display.print(sek);
display.setTextSize(1);
display.print(" sek");
display.display();
delay(1000);
}
Haeufige Probleme
OLED bleibt komplett schwarz
Symptom: Keine Anzeige, auch kein Flackern beim Einschalten
Ursache: Falsche I2C-Adresse, SDA/SCL vertauscht, oder Display nicht initialisiert
Loesung:
Vermeidung: Immer zuerst den I2C-Scanner laufen lassen.
OLED zeigt nur Pixelmuell/Rauschen
Symptom: Zufaellige Pixel leuchten, kein erkennbarer Text
Ursache: Display nicht richtig initialisiert oder falscher Display-Typ im Code
Loesung:
Vermeidung: Aufloesung des Displays pruefen (steht meist auf der Rueckseite).
Probleme mit OLED Display SSD1306 (0.96 Zoll)?
KI-Lernhelfer fragen