Arduino UNO Q - OLED 128x32
Dieses Tutorial zeigt Ihnen, wie Sie ein SSD1306 OLED 128x32 Display mit Arduino UNO Q verwenden — von grundlegendem Text bis hin zu Formen, Bildern und Telegram-Fernsteuerung.
- Verbindung eines SSD1306 OLED 128x32 zu Arduino UNO Q
- Anzeige von "Hello World" Text in mehreren Größen auf dem OLED
- Anzeige von Text, Ganzzahlen, Dezimalzahlen und Hexadezimalzahlen
- Zeichnung von Formen: Pixel, Linien, Rechtecke, Kreise und Dreiecke
- Verwendung von Hardware-Scrolling (rechts, links, diagonal)
- Anzeige von Bitmap-Bildern auf dem OLED
- Steuerung der Display-Helligkeit und des Kontrasts
- Verwendung von benutzerdefinierten externen Schriftarten
- Fernsteuerung des OLED von Linux aus über Bridge-Programmierung
- Fernsteuerung des OLED von Telegram aus über Bridge-Programmierung

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das OLED 128x32 Display
Das OLED 128x32 ist eine dünnere Version des 128x64 — es hat halb so viele vertikale Pixel, was es ideal für kompakte Gehäuse, Badge-Displays und minimalistische UI-Panels macht. Es verwendet den gleichen SSD1306-Controller und die gleiche Adafruit-Bibliothek.
OLED-Pinbelegung
- GND — mit GND verbinden
- VCC — mit 3,3V oder 5V verbinden
- SCL — I2C-Taktsignal
- SDA — I2C-Datensignal

※ Notiz:
Beziehen Sie sich immer auf die Beschriftungen auf Ihrem OLED-Modul — die Steckereihenfolge kann je nach Hersteller unterschiedlich sein.
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| OLED Pin | Arduino UNO Q Pin |
|---|---|
| GND | GND |
| VCC | 3.3V |
| SCL | SCL |
| SDA | SDA |
※ Notiz:
Der einzige Unterschied zwischen dem 128x64 und 128x32 im Code ist SCREEN_HEIGHT 32 statt 64. Die Bibliothek und Verdrahtung sind identisch.
Arduino UNO Q Code — Hello World auf SSD1306 OLED 128x32
Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (verwaltet echtzeitnahe Hardwaresteuerung) und den Qualcomm MPU (läuft Debian Linux). In diesem Abschnitt wird nur der STM32 MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.
Die Skizze unten zeigt Text in zwei verschiedenen Größen auf dem OLED an.
Schnelle Schritte
- Erstes Mal mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
- Verdrahten Sie das OLED: Verbinden Sie GND→GND, VCC→3.3V, SCL→SCL, SDA→SDA.
- Verbinden: Stecken Sie Arduino UNO Q mit einem USB-C-Kabel in Ihren Computer ein.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihre Arduino UNO Q erkennt.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche App erstellen.

- Geben Sie der App einen Namen, z. B.: DIYables_OLED_128x32
- Klicken Sie auf Erstellen, um zu bestätigen.
- Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App generiert werden.

- Finden Sie die Datei sketch/sketch.ino — hier fügen Sie die MCU-Skizze ein.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Search for Adafruit SSD1306 created by Adafruit and click the Install button.
- Upload: Klicken Sie auf die Schaltfläche "Ausführen" im Arduino App Lab, um zu kompilieren und auf den STM32 hochzuladen.

Schauen Sie sich das OLED an — es zeigt "Hello, World!" in der ersten Zeile und "DIYables" in größerem Text in der zweiten Zeile!
Arduino UNO Q Code — Text auf SSD1306 OLED 128x32 anzeigen
Dieses Beispiel demonstriert verschiedene Textgrößen und wie man Ganzzahlen, Dezimalzahlen und Hexadezimalzahlen auf dem OLED anzeigt.
Schnelle Schritte
- Kopieren Sie den Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Klicken Sie auf die Schaltfläche "Ausführen" im Arduino App Lab.

Das OLED durchläuft Textgrößen-Demos, zeigt dann eine Ganzzahl, eine Dezimalzahl und eine Hexadezimalzahl an.
Nützliche Display-Funktionen
Schnellreferenz für häufig verwendete SSD1306 OLED-Funktionen:
- oled.clearDisplay() — Frame-Puffer löschen (alle Pixel aus)
- oled.display() — Puffer auf den Bildschirm übertragen — erforderlich nach jedem Zeichnungsbefehl
- oled.drawPixel(x, y, color) — einzelnes Pixel setzen oder löschen
- oled.setTextSize(n) — Schriftart um Faktor *n* skalieren (1 = 6×8 px, 2 = 12×16 px, …)
- oled.setCursor(x, y) — Text-Cursor zu Pixelkoordinaten *(x, y)* verschieben
- oled.setTextColor(WHITE) — nur Textvordergrund (transparenter Hintergrund)
- oled.setTextColor(BLACK, WHITE) — Text mit explizitem Hintergrund
- oled.println("message") — String drucken und zur nächsten Zeile wechseln
- oled.println(number) — Ganzzahl in Dezimal drucken
- oled.println(number, HEX) — Ganzzahl in Hexadezimal drucken
- oled.startscrollright(start, stop) — Hardware-Scroll rechts zwischen Seiten
- oled.startscrollleft(start, stop) — Hardware-Scroll links
- oled.startscrolldiagright(start, stop) — diagonales Scroll rechts
- oled.startscrolldiagleft(start, stop) — diagonales Scroll links
- oled.stopscroll() — jedes aktive Hardware-Scroll beenden
- oled.setContrast(value) — Helligkeit anpassen (0–255)
- oled.dim(true/false) — schneller Dim-Umschalter
- oled.invertDisplay(true/false) — Hardware-seitige Farbinversion
Arduino UNO Q Code — Formen auf SSD1306 OLED 128x32 zeichnen
Die Adafruit SSD1306-Bibliothek erbt von Adafruit_GFX und bietet Pixel, Linien, Rechtecke, Kreise, Dreiecke und abgerundete Rechtecke. Die Skizze unten durchläuft alle — mit Koordinaten angepasst an die 32-Pixel-Höhe.
Schnelle Schritte
- Kopieren Sie den Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Klicken Sie auf die Schaltfläche "Ausführen" im Arduino App Lab.

Beobachten Sie das OLED beim Durchlaufen aller Formen — Pixel, Linien, Rechtecke, Kreise, abgerundete Rechtecke und Dreiecke!
Arduino UNO Q Code — Hardware-Scrolling auf SSD1306 OLED 128x32
Der SSD1306 hat ein eingebautes Hardware-Scrolling-Modul, das Inhalte ohne CPU-Arbeit bewegt. Die Bibliothek bietet vier Scroll-Richtungen: rechts, links, diagonal-rechts und diagonal-links.
※ Notiz:
Rufen Sie immer oled.display() auf, um Ihren Inhalt zum OLED zu übertragen, bevor Sie das Scrollen starten. Rufen Sie stopscroll() auf, bevor Sie neue Inhalte zeichnen. Für das 128x32 Display verwenden Sie den Seitenbereich 0x00, 0x03 statt 0x00, 0x07.
Schnelle Schritte
- Kopieren Sie den Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Klicken Sie auf die Schaltfläche "Ausführen" im Arduino App Lab.

Das OLED scrollt "DIYables" rechts, links, diagonal-rechts und diagonal-links und wiederholt sich endlos.
Arduino UNO Q Code — Bitmap-Bild auf SSD1306 OLED 128x32 anzeigen
Um ein Bitmap auf dem OLED anzuzeigen, müssen Sie Ihr Bild zuerst in ein C-Byte-Array konvertieren. Verwenden Sie das kostenlose Image to Bitmap Converter Tool:
- Laden Sie Ihre Bilddatei hoch (PNG, JPG, BMP, etc.).
- Stellen Sie die Canvas-Größe auf 128×32 (oder kleiner) ein.
- Wählen Sie Arduino code als Ausgabeformat.
- Kopieren Sie das generierte Array in Ihre Skizze.

Die Skizze unten zeigt zuerst ein 16×16 Herzherz-Symbol, dann ein 72×32 DIYables-Symbol — beide als Byte-Arrays im Code gespeichert:
Schnelle Schritte
- Kopieren Sie den Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Klicken Sie auf die Schaltfläche "Ausführen" im Arduino App Lab.

Das OLED zeigt das Herzherz-Symbol für 3 Sekunden, dann wechselt es zum DIYables-Symbol.
※ Notiz:
Bitmap-Abmessungen dürfen die Bildschirmauflösung (128×32) nicht überschreiten. Breite ≤ 128 und Höhe ≤ 32 halten.
Arduino UNO Q Code — Kontrast und Dim auf SSD1306 OLED 128x32
Der SSD1306 unterstützt 256 Kontraststufen (0–255). Verwenden Sie setContrast() für feine Kontrolle und dim() für einen schnellen Helligkeits-Umschalter.
Schnelle Schritte
- Kopieren Sie den Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Klicken Sie auf die Schaltfläche "Ausführen" im Arduino App Lab.

Beobachten Sie, wie die OLED-Helligkeit rampenförmig rauf und runter geht, gefolgt von einem Dim-an/Dim-aus-Zyklus.
Arduino UNO Q Code — Benutzerdefinierte externe Schriftarten auf SSD1306 OLED 128x32
Die Adafruit GFX-Bibliothek enthält viele FreeFont-Schriftarten. Mit nur 32 Pixel Höhe ermöglichen kleinere Schriftarten (9pt) zwei Zeilen, während größere Schriftarten (12pt) eine einzelne Zeile ausfüllen.
※ Notiz:
Wenn eine externe Schriftart aktiv ist, bezieht sich die Cursor Y-Koordinate auf die Text-Basislinie, nicht auf die obere linke Ecke. Dies unterscheidet sich von der eingebauten 5×7 Schriftart.
Schnelle Schritte
- Kopieren Sie den Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Klicken Sie auf die Schaltfläche "Ausführen" im Arduino App Lab.

Das OLED durchläuft die eingebaute Schriftart, FreeSerif 9pt (zwei Zeilen) und FreeSansBold 12pt (einzelne Zeile).
Linux + MCU Bridge-Programmierung
Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, läuft Debian Linux) und die MCU (STM32, läuft Zephyr OS mit Ihrer Arduino-Skizze). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek — niemals über rohe serielle Ports.
- Das OLED ist an den MCU (STM32) angeschlossen — über I2C (SCL/SDA). Nur der MCU kann es direkt ansteuern.
- Die MPU kann das OLED nicht direkt steuern — sie ruft Bridge.call("display_text", "text") auf, was das OLED aktualisiert und das Ergebnis im Monitor ausgibt.
- Die MPU hat Wi-Fi — da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann es Telegram-Befehle empfangen und jede Nachricht auf dem OLED ferngesteuert anzeigen.
- Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe() Funktionen auf der MCU-Seite auf (da OLED-Schreibvorgänge Hardware-API-Aufrufe sind).
- ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet — öffnen Sie sie niemals direkt.
MCU-Skizze — OLED 128x32 mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) — Text auf OLED 128x32 von Linux anzeigen:
Schnelle Schritte
- Erstellen Sie eine neue App: Öffnen Sie Arduino App Lab, klicken Sie auf App erstellen, nennen Sie sie DIYables_OLED_128x32_Bridge, und klicken Sie auf Erstellen.
- Fügen Sie die MCU-Skizze ein: Kopieren Sie den Bridge MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Fügen Sie das Python-Skript ein: Kopieren Sie den Python-Code oben und fügen Sie ihn in die Python-Datei in der App ein.
- Starten Sie die App: Klicken Sie auf die Schaltfläche "Ausführen" — die Python-Seite durchläuft Nachrichten auf dem OLED.
App Lab Console-Ausgabe
Telegram-Integration
Zeigen Sie jeden Text auf Ihrem OLED 128x32 ferngesteuert von überall über Telegram an.
Wenn Sie noch keinen Telegram-Bot haben, siehe How to Create a Telegram Bot, um Ihr Bot-Token zu erhalten, bevor Sie fortfahren.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt — keine Änderungen erforderlich. Stellen Sie sicher, dass er bereits auf den STM32 hochgeladen und ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot für OLED 128x32:
- Anmerkung: Ersetzen Sie YOUR_BOT_TOKEN durch das Token von @BotFather auf Telegram.
- Senden Sie /display Hello — wird auf dem OLED angezeigt.
- Senden Sie /clear — löscht das OLED.
- Senden Sie /status — Bot antwortet mit dem aktuellen OLED-Text.
App Lab Console-Ausgabe
ArduinoBot
OpenClaw-Integration
Sie können die OpenClaw auf dieses Tutorial anpassen, indem Sie sich auf die Anweisung im Arduino Uno Q - OpenClaw Tutorial beziehen
Anwendungs-/Projektideen
- Tragbares Status-Display: Passen Sie das dünne 128x32 in ein Badge oder Armband, um Live-Sensormesswerte anzuzeigen
- Einzeiliges Warn-Display: Zeige die letzte Telegram-Warnmeldung auf dem OLED ständig an
- Wi-Fi-Netzwerk-Info: Zeige verbundene SSID und IP-Adresse von der Linux-Seite auf dem engen OLED an
- Minimales Dashboard: Verwende die zwei Textzeilen für Temperatur und Luftfeuchtigkeit nebeneinander
- Benachrichtigungsscroller: Scrolle eingehende Telegram-Nachrichten über den 128x32-Bildschirm
Fordere dich selbst heraus
- Einfach: Senden Sie /display ohne Leerzeichen — fügen Sie Fehlerbehandlung hinzu, die "Usage: /display
" antwortet - Mittel: Teilen Sie eine Nachricht in zwei Zeilen mit je 21 Zeichen auf und zeigen Sie beide auf dem 128x32 mit setCursor(0, 0) und setCursor(0, 16) an
- Fortgeschritten: Fügen Sie einen /blink Befehl hinzu, der das OLED 3 Mal blinkt, indem Sie clearDisplay()/display() in einer Schleife auf der MCU-Seite verwenden