Arduino Mega - SSD1309 OLED Display 128x64 | 2.42 Zoll I2C OLED Tutorial
Diese Anleitung zeigt Ihnen, wie Sie einen Arduino Mega mit einem 2.42 Zoll (2.4") SSD1309 I2C OLED Display (128×64 Auflösung) verwenden. Hier lernen wir im Detail:
- Wie Sie ein 2.42 Zoll SSD1309 OLED Display mit Arduino Mega verbinden.
- Wie Sie den Arduino Mega programmieren, um Text auf dem SSD1309 OLED anzuzeigen.
- Wie Sie Formen auf dem SSD1309 OLED mit Arduino Mega zeichnen.
- Wie Sie Hardware-Scrolling auf dem SSD1309 OLED aktivieren.
- Wie Sie Bitmap-Bilder auf dem SSD1309 OLED mit Arduino Mega anzeigen.
- Wie Sie die Helligkeit/den Kontrast des SSD1309 OLED anpassen.
- Wie Sie externe Schriftarten mit dem SSD1309 OLED Display verwenden.

Erforderliche 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 OLED Display
Der SSD1309 ist ein monochrom OLED Display-Treiber-Chip. Die 2.42 Zoll Version bietet eine 128×64 Pixel Auflösung. Es kommuniziert über das I2C-Protokoll und benötigt nur zwei Pins (SDA und SCL) plus Stromversorgungsanschlüsse. Das macht es ideal für Projekte mit begrenzter Pin-Verfügbarkeit.
Hauptmerkmale des SSD1309 OLED:
- Display-Größe: 2.42 Zoll (diagonal)
- Auflösung: 128×64 Pixel
- Kommunikation: I2C (2-Draht-Schnittstelle)
- Standard I2C-Adresse: 0x3C
- Betriebsspannung: 3.3V oder 5V kompatibel
- Integrierte Hardware-Scrolling-Unterstützung
- Einstellbarer Kontrast/Helligkeit
- Niedriger Stromverbrauch
SSD1309 OLED Display Pinout
Das 2.42 Zoll SSD1309 I2C OLED Modul hat normalerweise 4 Pins:
- GND: Masse-Pin - mit Arduino Mega GND verbinden
- VCC: Stromversorgungs-Pin - mit Arduino Mega 5V verbinden
- SDA: I2C Datenleitung - mit Arduino Mega Pin 20 (SDA) verbinden
- SCL: I2C Taktleitung - mit Arduino Mega Pin 21 (SCL) verbinden

※ Notiz:
Die Pin-Anordnung an einem OLED Modul kann je nach Hersteller und Modell unterschiedlich sein. Überprüfen Sie immer die auf Ihrem spezifischen OLED Modul aufgedruckten Beschriftungen und folgen Sie diesen. Aufgepasst!
Diese Anleitung ist für ein OLED Display, das den SSD1309 I2C Treiber verwendet. Wir haben es mit einem SSD1309 OLED Display von DIYables getestet. Es funktioniert gut, ohne Probleme.
Schaltplan
Verbinden Sie das 2.42 Zoll SSD1309 OLED Display mit Arduino Mega gemäß dieser Verdrahtung:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| SSD1309 OLED | Arduino Mega |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | 20 (SDA) |
| SCL | 21 (SCL) |
Wie man SSD1309 OLED mit Arduino Mega verwendet
Installation der DIYables_OLED_SSD1309 Bibliothek
- Gehen Sie zum Bibliotheken-Symbol auf der linken Seite der Arduino IDE.
- Geben Sie DIYables_OLED_SSD1309 in das Suchfeld ein und suchen Sie nach der Bibliothek von DIYables.
- Klicken Sie auf den Installieren-Button, um die Bibliothek hinzuzufügen.

Die DIYables_OLED_SSD1309 Bibliothek hängt von der Adafruit_GFX Bibliothek ab. Falls Adafruit_GFX noch nicht installiert ist, wird die Arduino IDE Sie automatisch zur Installation auffordern, wenn Sie DIYables_OLED_SSD1309 installieren.
Arduino Mega Code - "Hello World" auf SSD1309 OLED anzeigen
Der folgende Code zeigt, wie Sie Text auf dem 2.42 Zoll SSD1309 OLED Display anzeigen:
Erklärung
- Notwendige Bibliotheken einbinden und Konstanten definieren
- Display-Objekt mit I2C-Adresse 0x3C erstellen
- Display in setup() initialisieren
- Textgröße, Farbe und Cursor-Position einstellen
- Text zum Display-Puffer mit print() und println() hinzufügen
- Display.display() aufrufen, um Pufferinhalt auf den Bildschirm zu übertragen
※ Notiz:
Das F() Makro speichert Strings im Flash-Speicher anstatt im RAM. Dies spart wertvollen RAM auf dem Arduino Mega.
Arduino Mega Code - Text mit verschiedenen Formaten anzeigen
Dieser Code demonstriert Textanzeige mit verschiedenen Größen und Zahlenformatierung:
Arduino Mega Code - Formen auf SSD1309 OLED zeichnen
Der folgende Code zeigt, wie Sie Pixel, Linien, Rechtecke, Kreise und Dreiecke zeichnen:
Verfügbare Zeichenfunktionen:
- drawPixel(x, y, color) - Einen einzelnen Pixel zeichnen
- drawLine(x0, y0, x1, y1, color) - Eine Linie zeichnen
- drawRect(x, y, w, h, color) - Rechteck-Umriss zeichnen
- fillRect(x, y, w, h, color) - Gefülltes Rechteck zeichnen
- drawRoundRect(x, y, w, h, radius, color) - Abgerundetes Rechteck zeichnen
- drawCircle(x, y, radius, color) - Kreis-Umriss zeichnen
- fillCircle(x, y, radius, color) - Gefüllten Kreis zeichnen
- drawTriangle(x0, y0, x1, y1, x2, y2, color) - Dreieck-Umriss zeichnen
- fillTriangle(x0, y0, x1, y1, x2, y2, color) - Gefülltes Dreieck zeichnen
Arduino Mega Code - Hardware-Scrolling auf SSD1309 OLED
Der SSD1309 unterstützt hardwarebasiertes Scrolling. Dieser Code demonstriert alle vier Scroll-Richtungen:
Scrolling-Funktionen:
- startscrollright(start, stop) - Nach rechts scrollen
- startscrollleft(start, stop) - Nach links scrollen
- startscrolldiagright(start, stop) - Diagonal nach rechts scrollen
- startscrolldiagleft(start, stop) - Diagonal nach links scrollen
- stopscroll() - Scrolling stoppen
Die start- und stop-Parameter definieren den Seitenbereich (0x00 bis 0x07 für den gesamten Bildschirm).
Arduino Mega Code - Bitmap-Bild auf SSD1309 OLED anzeigen
Dieser Code zeigt, wie Sie Bitmap-Bilder anzeigen, die im Programmspeicher gespeichert sind:
Um Bilder anzuzeigen:
- Konvertieren Sie Ihr Bild zu einem monochromen Bitmap-Array (verwenden Sie Online-Tools oder image2cpp)
- Speichern Sie das Array in PROGMEM, um RAM zu sparen
- Verwenden Sie drawBitmap(x, y, bitmap, width, height, color) zur Anzeige
Arduino Mega Code - Helligkeit/Kontrast anpassen
Steuern Sie die Helligkeit und den Kontrast des SSD1309 OLED Displays:
Helligkeitssteuerungs-Funktionen:
- setContrast(value) - Kontrastlevel einstellen (0-255, höher = heller)
- dim(true/false) - Schneller Wechsel zwischen gedimmt und normaler Helligkeit
- invertDisplay(true/false) - Alle Pixel invertieren (schwarz↔weiß)
Arduino Mega Code - Externe Schriftarten verwenden
Die Adafruit_GFX Bibliothek beinhaltet FreeFont-Schriftarten. Dieser Code demonstriert drei verschiedene Schriftarten:
※ Notiz:
FreeFont-Dateien sind groß. Arduino Mega hat 256KB Flash-Speicher, was für mehrere Schriftarten ausreicht. Wenn Sie jedoch Platz sparen müssen, verwenden Sie nur die Schriftarten, die Sie benötigen.
Schriftarten-Verwendung:
- Schriftarten-Header einbinden: #include <Fonts/FreeSans9pt7b.h>
- Schriftart einstellen: display.setFont(&FreeSans9pt7b)
- Auf Standard zurücksetzen: display.setFont(NULL)
- Bei externen Schriftarten repräsentiert die Y-Koordinate die Grundlinie, nicht die Oberseite
Fehlerbehebung
Wenn das OLED Display nicht funktioniert, versuchen Sie diese Schritte:
I2C-Adresse überprüfen
Die Standard-I2C-Adresse ist 0x3C, aber einige Module verwenden 0x3D. Führen Sie diesen I2C-Scanner aus, um die korrekte Adresse zu finden:
Wenn Ihr Display 0x3D verwendet, ändern Sie SCREEN_ADDRESS zu 0x3D im Code.
Verdrahtung überprüfen
Verbindungen verifizieren:
- VCC → 5V
- GND → GND
- SDA → Pin 20 (SDA)
- SCL → Pin 21 (SCL)
Stromversorgung überprüfen
Stellen Sie sicher, dass der Arduino Mega ausreichend Strom über das USB-Kabel oder externes Netzteil erhält.
Video Tutorial
...VIDEO LINK_VIDEO_ARDUINO_MEGA_SSD1309_OLED_DISPLAY