ESP32 C3 Super Mini - OLED-128x64-Display

Einführung

Möchten Sie in Ihren ESP32 C3 Super Mini-Projekten Sensorwerte, Systemstatus oder eigene Grafiken anzeigen? Dieses Tutorial zeigt Ihnen, wie Sie ein OLED-128x64-Display mit Ihrem ESP32 C3 Super Mini verbinden und programmieren – perfekt für Einsteiger!

In diesem Tutorial lernen Sie:

ESP32 C3 Super Mini OLED-128x64-Display

Erforderliche Hardware

1×ESP32 C3 Super Mini
1×Micro-USB-Kabel
1×SSD1306 I2C OLED-Display 128x64
1×Verbindungskabel

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über OLED-Displays

Ein OLED-Display (Organic Light-Emitting Diode) ist ein Bildschirm, bei dem jedes Pixel sein eigenes Licht erzeugt.

Hauptmerkmale von OLED-Displays:

  • Perfektes Schwarz – Pixel schalten sich vollständig aus, wenn sie nicht benötigt werden
  • Hoher Kontrast – scharfe, klare Darstellung
  • Große Betrachtungswinkel – aus jeder Richtung lesbar
  • Keine Hintergrundbeleuchtung erforderlich – geringerer Stromverbrauch
  • Dünn und leicht – kompaktes Design

Beliebte OLED-Typen für den ESP32 C3 Super Mini:

  • SSD1306 I2C OLED 128x64 – Häufigste Größe, ideal für Text und einfache Grafiken
  • SSD1306 I2C OLED 128x32 – Kleinere Version für kompakte Projekte
  • I2C-Schnittstelle – Benötigt nur zwei Drähte für die Kommunikation mit dem ESP32 C3 Super Mini
OLED-Display

Pinbelegung des I2C-OLED-Displays

Das SSD1306-OLED-Display hat typischerweise vier Pins für den einfachen Anschluss an Ihren ESP32 C3 Super Mini:

  • GND-Pin: Mit Masse (GND) am ESP32 C3 Super Mini verbinden
  • VCC-Pin: Stromversorgung – mit 3,3V am ESP32 C3 Super Mini verbinden (manche Module akzeptieren 5V)
  • SCL-Pin: Taktleitung (Serial Clock Line) für die I2C-Kommunikation mit dem ESP32 C3 Super Mini
  • SDA-Pin: Datenleitung (Serial Data Line) für die I2C-Kommunikation mit dem ESP32 C3 Super Mini
OLED-Pinbelegung

※ Notiz:

  • Die Pin-Beschriftungen können je nach Hersteller variieren – prüfen Sie immer die Markierungen auf Ihrem OLED-Modul
  • Dieses Tutorial verwendet ein SSD1306-I2C-OLED-Display – getestet mit dem DIYables-OLED-Modul

Schaltplan

So schließen Sie Ihr OLED-128x64-Display über die I2C-Schnittstelle an den ESP32 C3 Super Mini an:

  • Schaltplan zwischen ESP32 C3 Super Mini und OLED-Display mit Steckbrett
ESP32 C3 Super Mini OLED Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Schaltplan zwischen ESP32 C3 Super Mini und OLED-Display bei direkter Verbindung
ESP32 C3 Super Mini OLED Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Verbindungstabelle für ESP32 C3 Super Mini und OLED-Display:

OLED-Modul ESP32 C3 Super Mini
Vin 3,3V
GND GND
SDA SDA (Pin 11)
SCL SCL (Pin 12)

Wie man ein OLED mit dem ESP32 C3 Super Mini verwendet

SSD1306-OLED-Bibliothek installieren

Installieren Sie die erforderlichen Bibliotheken, bevor Sie Ihr OLED-Display mit dem ESP32 C3 Super Mini programmieren:

  • Bibliotheksverwalter öffnen: Klicken Sie auf das Libraries-Symbol in der linken Seitenleiste der Arduino IDE
  • Nach SSD1306 suchen: Geben Sie "SSD1306" in das Suchfeld ein
  • Adafruit SSD1306 installieren: Klicken Sie neben der Bibliothek Adafruit SSD1306 auf Install
  • Abhängigkeiten installieren: Klicken Sie bei der Aufforderung auf "Install All", um die Adafruit-GFX-Bibliothek hinzuzufügen
ESP32 C3 Super Mini OLED-Bibliothek
ESP32 C3 Super Mini Adafruit-GFX-Sensorbibliothek

Was diese Bibliotheken tun:

  • Adafruit_SSD1306 – Steuert die OLED-Display-Hardware am ESP32 C3 Super Mini
  • Adafruit_GFX – Stellt Grafikfunktionen zum Zeichnen auf dem OLED bereit

Ihr ESP32 C3 Super Mini OLED-Display programmieren

Hier ist die grundlegende Codestruktur für die Verwendung eines OLED-Displays mit dem ESP32 C3 Super Mini:

Bibliotheken einbinden:

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

OLED-Abmessungen definieren:

#define OLED_WIDTH 128 // OLED display width in pixels #define OLED_HEIGHT 64 // OLED display height in pixels

OLED-Objekt erstellen:

// Create SSD1306 display object for I2C communication Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1);

OLED in setup() initialisieren:

// Initialize OLED display at I2C address 0x3C if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); }

Was dies bewirkt:

  • SSD1306_SWITCHCAPVCC – Verwendet die interne Spannungserzeugung
  • 0x3C – Standard-I2C-Adresse der meisten OLED-Displays (manche verwenden 0x3D)
  • Die Fehlerbehandlung stoppt das Programm, wenn die OLED-Initialisierung fehlschlägt

ESP32 C3 Super Mini Code - Text auf dem OLED anzeigen

Dieses Beispiel zeigt, wie Sie mit dem ESP32 C3 Super Mini Text auf Ihrem OLED-Bildschirm anzeigen:

/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-c3/esp32-c3-super-mini-oled-128x64-display */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_WIDTH 128 // OLED width, in pixels #define OLED_HEIGHT 64 // OLED height, in pixels // create an OLED display object connected to I2C Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); void setup() { Serial.begin(115200); // initialize OLED display with I2C address 0x3C if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("failed to start SSD1306 OLED")); while (1); } delay(2000); // wait two seconds for initializing oled.clearDisplay(); // clear display oled.setTextSize(1); // set text size oled.setTextColor(WHITE); // set text color oled.setCursor(0, 10); // set position to display oled.println("esp32io.com"); // set text oled.display(); // display on OLED } void loop() { }

Wichtige OLED-Textfunktionen

Zentrale Funktionen zur Textanzeige auf dem OLED mit dem ESP32 C3 Super Mini:

  • oled.clearDisplay() – Löscht alle Pixel auf dem OLED-Bildschirm
  • oled.drawPixel(x, y, color) – Zeichnet ein einzelnes Pixel an den Koordinaten x, y
  • oled.setTextSize(n) – Legt die Textgröße fest (1-8, wobei 1 die kleinste ist)
  • oled.setCursor(x, y) – Legt die Startposition für den Text fest
  • oled.setTextColor(WHITE) – Setzt die Textfarbe auf Weiß
  • oled.setTextColor(BLACK, WHITE) – Setzt die Textfarbe auf Schwarz mit weißem Hintergrund
  • oled.println("message") – Gibt eine Textnachricht auf dem OLED aus
  • oled.println(number) – Gibt eine Zahl auf dem OLED aus
  • oled.println(number, HEX) – Gibt eine Zahl im Hexadezimalformat aus
  • oled.display() – Aktualisiert den OLED-Bildschirm mit den Änderungen
  • oled.startscrollright(start, stop) – Scrollt Text von links nach rechts
  • oled.startscrollleft(start, stop) – Scrollt Text von rechts nach links
  • oled.startscrolldiagright(start, stop) – Scrollt diagonal von unten links nach oben rechts
  • oled.startscrolldiagleft(start, stop) – Scrollt diagonal von unten rechts nach oben links
  • oled.stopscroll() – Stoppt die Scroll-Animation

Text auf Ihrem OLED-Display zentrieren

Möchten Sie Text auf Ihrem OLED-128x64-Display zentrieren? Dazu müssen die Textabmessungen berechnet werden.

Ausführliche Anleitung zum Zentrieren von Text (horizontal und vertikal):

Schnelle Zentrierungsmethode:

  • Verwenden Sie getTextBounds(), um Textbreite und -höhe zu berechnen
  • Horizontal zentrieren: x = (OLED_WIDTH - textWidth) / 2
  • Vertikal zentrieren: y = (OLED_HEIGHT - textHeight) / 2

ESP32 C3 Super Mini Code - Formen auf dem OLED zeichnen

Erstellen Sie mit dem ESP32 C3 Super Mini Linien, Kreise, Rechtecke und andere Formen auf Ihrem OLED-Display:

/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-c3/esp32-c3-super-mini-oled-128x64-display */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_WIDTH 128 // OLED width, in pixels #define OLED_HEIGHT 64 // OLED height, in pixels // create an OLED display object connected to I2C Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); void setup() { Serial.begin(115200); // initialize OLED display with I2C address 0x3C if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("failed to start SSD1306 OLED")); while (1); } delay(2000); // wait two seconds for initializing oled.setCursor(0, 0); } void loop() { // draw a circle oled.clearDisplay(); oled.drawCircle(20, 35, 20, WHITE); oled.display(); delay(1000); // fill a circle oled.clearDisplay(); oled.fillCircle(20, 35, 20, WHITE); oled.display(); delay(1000); // draw a triangle oled.clearDisplay(); oled.drawTriangle(30, 15, 0, 60, 60, 60, WHITE); oled.display(); delay(1000); // fill a triangle oled.clearDisplay(); oled.fillTriangle(30, 15, 0, 60, 60, 60, WHITE); oled.display(); delay(1000); // draw a rectangle oled.clearDisplay(); oled.drawRect(0, 15, 60, 40, WHITE); oled.display(); delay(1000); // fill a rectangle oled.clearDisplay(); oled.fillRect(0, 15, 60, 40, WHITE); oled.display(); delay(1000); // draw a round rectangle oled.clearDisplay(); oled.drawRoundRect(0, 15, 60, 40, 8, WHITE); oled.display(); delay(1000); // fill a round rectangle oled.clearDisplay(); oled.fillRoundRect(0, 15, 60, 40, 8, WHITE); oled.display(); delay(1000); }

Häufige Zeichenfunktionen für das ESP32 C3 Super Mini OLED:

  • drawLine(x1, y1, x2, y2, color) – Zeichnet eine Linie zwischen zwei Punkten
  • drawRect(x, y, width, height, color) – Zeichnet den Umriss eines Rechtecks
  • fillRect(x, y, width, height, color) – Zeichnet ein gefülltes Rechteck
  • drawCircle(x, y, radius, color) – Zeichnet den Umriss eines Kreises
  • fillCircle(x, y, radius, color) – Zeichnet einen gefüllten Kreis
  • drawTriangle(x1, y1, x2, y2, x3, y3, color) – Zeichnet den Umriss eines Dreiecks
  • fillTriangle(x1, y1, x2, y2, x3, y3, color) – Zeichnet ein gefülltes Dreieck
  • drawRoundRect(x, y, width, height, radius, color) – Zeichnet ein abgerundetes Rechteck

ESP32 C3 Super Mini Code - Bilder auf dem OLED anzeigen

Zeigen Sie eigene Bilder, Logos oder Symbole auf Ihrem OLED an, indem Sie sie in Bitmap-Arrays umwandeln.

Bilder in Bitmap-Arrays umwandeln

Schritte zur Bildkonvertierung für das ESP32 C3 Super Mini OLED:

  • Wählen Sie Ihre Bilddatei (JPG, PNG, GIF usw.)
  • Öffnen Sie den Online-Konverter: image2cpp
  • Stellen Sie die Canvas-Größe auf 128x64 ein (passend zur Auflösung Ihres OLED)
  • Wählen Sie "Arduino code" als Ausgabeformat
  • Wählen Sie "Vertical - 1 bit per pixel" als Zeichenmodus
  • Klicken Sie auf Generate und kopieren Sie das Bitmap-Array

Beispiel für den Konvertierungsvorgang:

Bild in Bitmap-Array umwandeln

Bitmap im ESP32 C3 Super Mini Code verwenden

Ersetzen Sie das Array ArduinoIcon in diesem Code durch Ihr erzeugtes Bitmap:

/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-c3/esp32-c3-super-mini-oled-128x64-display */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_WIDTH 128 // OLED width, in pixels #define OLED_HEIGHT 64 // OLED height, in pixels // create an OLED display object connected to I2C Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); // bitmap of arduino-icon image const unsigned char arduino_icon [] PROGMEM = { // 'arduino-icon', 128x64px 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0x00, 0x1f, 0xe0, 0x00, 0x0f, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xe0, 0x00, 0x0f, 0xc0, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0x80, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x03, 0x80, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x03, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x1f, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x07, 0xff, 0xf0, 0x7f, 0xff, 0x00, 0x0f, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x7f, 0xff, 0x80, 0x0f, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x7f, 0xff, 0x80, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xff, 0xf0, 0x7f, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xfe, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xfe, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xc0, 0x07, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xff, 0xf0, 0x7f, 0xff, 0x80, 0x07, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x7f, 0xff, 0x80, 0x07, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0f, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xe0, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x03, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x1f, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0x80, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xe0, 0x00, 0x7f, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xc0, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0x80, 0x00, 0x3f, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x7f, 0xfc, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; void setup() { Serial.begin(115200); // initialize OLED display with I2C address 0x3C if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("failed to start SSD1306 OLED")); while (1); } delay(2000); // wait two seconds for initializing oled.setCursor(0, 0); } void loop() { oled.clearDisplay(); // display bitmap oled.drawBitmap(0, 0, arduino_icon, 128, 64, WHITE); oled.display(); delay(1000); // invert display oled.invertDisplay(1); delay(1000); }

Tipps für beste Bildergebnisse auf dem OLED:

  • Verwenden Sie kontrastreiche Schwarz-Weiß-Bilder
  • Verkleinern Sie Bilder vor der Konvertierung auf 128x64
  • Einfache Grafiken funktionieren besser als komplexe Fotos
  • Kleinere Bilder verbrauchen weniger Speicher des ESP32 C3 Super Mini
  • Testen Sie verschiedene Dithering-Einstellungen für die Fotoqualität

Anleitung zur OLED-Fehlerbehebung

Wenn Ihr OLED-Display mit dem ESP32 C3 Super Mini nicht funktioniert, probieren Sie diese Lösungen:

Display schaltet sich nicht ein

Überprüfen Sie Ihre Verdrahtung:

  • VCC ist mit 3,3V am ESP32 C3 Super Mini verbunden
  • GND ist mit GND verbunden
  • SDA ist mit SDA (Pin 11) am ESP32 C3 Super Mini verbunden
  • SCL ist mit SCL (Pin 12) am ESP32 C3 Super Mini verbunden
  • Achten Sie auf lose Verbindungen oder beschädigte Drähte

Treiberchip überprüfen:

  • Die meisten OLED-Displays verwenden den SSD1306-Treiber
  • Prüfen Sie die Spezifikationen Ihres Moduls
  • Manche verwenden SH1106 oder andere Treiber (benötigen andere Bibliotheken)

Die I2C-Adresse Ihres OLED ermitteln

Die meisten OLED-Displays verwenden die I2C-Adresse 0x3C, manche jedoch 0x3D. Führen Sie diesen Scanner-Code auf Ihrem ESP32 C3 Super Mini aus:

// I2C address scanner program #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("I2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for (address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println(" !"); nDevices++; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("No I2C devices found"); else Serial.println("done"); delay(5000); // wait 5 seconds for next scan }

Hochladen und den Seriellen Monitor prüfen – Sie sollten Folgendes sehen:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Scanning for I2C devices... I2C device found at address 0x3C Scan complete. 1 device(s) found. Scanning for I2C devices... I2C device found at address 0x3C Scan complete. 1 device(s) found. Scanning for I2C devices... I2C device found at address 0x3C Scan complete. 1 device(s) found.
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Wenn Ihre Adresse abweicht, aktualisieren Sie Ihren Code:

// Change 0x3C to your detected address (e.g., 0x3D) if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {

Häufige Probleme und Lösungen

Fehler "SSD1306 allocation failed":

  • Falsche I2C-Adresse – führen Sie den obigen Scanner-Code aus
  • Falsche Verdrahtung zum ESP32 C3 Super Mini
  • Defektes OLED-Modul – versuchen Sie ein anderes Display

Zufällige Pixel auf dem Bildschirm:

  • Fügen Sie oled.clearDisplay() am Anfang der Schleife hinzu
  • Rufen Sie immer oled.display() auf, um den Bildschirm zu aktualisieren

Text zu klein oder zu groß:

  • Verwenden Sie oled.setTextSize(2) oder höher für größeren Text
  • Größenbereich: 1 (kleinste) bis 8 (größte)

Display steht auf dem Kopf:

  • Drehen Sie das OLED physisch, oder
  • Fügen Sie nach der Initialisierung oled.setRotation(2) hinzu

Bildschirm wird nicht aktualisiert:

  • Stellen Sie sicher, dass Sie nach dem Zeichnen oled.display() aufrufen
  • Prüfen Sie die I2C-Verbindungen zum ESP32 C3 Super Mini

Schnelle Schritte

  • Neu beim ESP32 C3 Super Mini? Absolvieren Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini, um Ihre Entwicklungsumgebung einzurichten.
  • OLED verdrahten: Verbinden Sie das OLED mit dem ESP32 C3 Super Mini (VCC→3,3V, GND→GND, SDA→Pin 11, SCL→Pin 12)
  • Bibliotheken installieren: Öffnen Sie den Bibliotheksverwalter und installieren Sie Adafruit SSD1306 und Adafruit GFX
  • ESP32 C3 Super Mini anschließen: Verbinden Sie Ihr Board per USB-Kabel mit dem Computer
  • Board auswählen: Wählen Sie in der Arduino IDE "ESP32 C3 Super Mini" und den richtigen COM-Port
  • Code hochladen: Kopieren Sie ein Beispiel von oben, fügen Sie es in die Arduino IDE ein und klicken Sie auf Upload
  • Display prüfen: Das OLED sollte aufleuchten und Ihre programmierten Inhalte anzeigen
  • Profi-Tipp: Rufen Sie nach dem Zeichnen immer oled.display() auf, um den OLED-Bildschirm zu aktualisieren

Anwendungsideen

Setzen Sie Ihre neuen OLED-Kenntnisse mit diesen ESP32 C3 Super Mini-Projektideen ein:

  • Temperaturmonitor – DHT22-Sensorwerte mit dem ESP32 C3 Super Mini auf dem OLED anzeigen
  • WLAN-Statusanzeige – Verbindungsstatus und IP-Adresse auf dem OLED anzeigen
  • Intelligente Türklingel – Besucherbenachrichtigungen auf dem OLED-128x64-Bildschirm anzeigen
  • Wetterstation – Temperatur, Luftfeuchtigkeit und Vorhersage auf dem OLED anzeigen
  • Systemmonitor – CPU-Auslastung und Betriebszeit des ESP32 C3 Super Mini anzeigen
  • Countdown-Timer – Einen visuellen Timer auf dem OLED-Display erstellen
  • Musikplayer-Oberfläche – Liedinformationen und Wiedergabesteuerung anzeigen
  • Spieleanzeige – Einfache Spiele wie Snake oder Pong auf dem OLED bauen

Video

Sehen Sie sich das folgende Video an, um eine visuelle Schritt-für-Schritt-Anleitung zu diesem Projekt zu erhalten.

Herausforderungen

Möchten Sie Ihre OLED-Kenntnisse mit dem ESP32 C3 Super Mini vertiefen? Probieren Sie diese Herausforderungen aus:

  • Einfach: Zeigen Sie Live-Temperaturwerte eines DHT11-Sensors auf Ihrem OLED an
  • Einfach: Erstellen Sie eine Laufschrift, die eine lange Nachricht über den OLED-Bildschirm laufen lässt
  • Mittel: Bauen Sie einen animierten springenden Ball, der sich über das OLED-Display bewegt
  • Mittel: Entwerfen Sie ein einfaches Menüsystem mit mehreren Seiten auf Ihrem OLED
  • Fortgeschritten: Erstellen Sie ein Echtzeit-Diagramm, das Sensordaten auf dem OLED-128x64-Bildschirm darstellt
  • Fortgeschritten: Zeigen Sie von Ihrem ESP32 C3 Super Mini erzeugte QR-Codes auf dem OLED an
  • Experte: Bauen Sie eine komplette Wetterstation mit Symbolen und Vorhersagen auf dem OLED-Display

Sprachreferenzen

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!