Das OLED-Display ist zu einer beliebten Wahl für die Integration in Arduino-Projekte geworden, vor allem weil es kompakt ist, einen geringen Stromverbrauch hat und selbst in hellen Umgebungen eine außergewöhnliche Sichtbarkeit ermöglicht. Darüber hinaus ist die Verwendung dank der einfachen Verbindung für jeden Elektronik-Enthusiasten, unabhängig von seiner Erfahrung, möglich. In diesem Artikel werfen wir einen detaillierten Blick auf die Verbindung und Programmierung eines 0.96-Zoll-OLED-Displays mit Arduino, gehen sowohl auf die technischen Aspekte ein als auch auf praktische Codebeispiele.
Wenn Sie noch nie mit einem OLED-Display gearbeitet haben, sollten Sie einige wichtige Punkte kennen, bevor Sie mit Ihrem Projekt beginnen. OLEDs (Organic Light Emitting Diode) weisen grundlegende Unterschiede zu anderen Bildschirmtypen wie LCDs auf. Beispielsweise benötigt OLED keine Hintergrundbeleuchtung, was den Stromverbrauch deutlich reduziert. Bei Bildschirmen mit einer Größe von nur 0.96 Zoll kann dies wichtig sein, wenn das Projekt batteriebetrieben ist. Schauen wir uns nun seine Funktionen genauer an.
Was ist ein OLED-Bildschirm?
Ein OLED-Bildschirm ist eine Art Display, das eine organische Verbindung verwendet, die Licht emittiert, wenn elektrischer Strom angelegt wird. Dies macht sie ideal für viele Elektronikprojekte, da ihre Technologie es ermöglicht, dass jedes Pixel einzeln aufleuchtet, was auch die Sichtbarkeit im Freien verbessert. Die meisten für Arduino vermarkteten OLED-Bildschirme verfügen über einen SSD1306-Controller, der das Senden von Signalen an den Bildschirm verwaltet. Tatsächlich ist die SSD1306 eine der häufigsten in Arduino-Projekten, und wir werden sie später in den Beispielen sehen.
Einer der Hauptvorteile von OLED-Bildschirmen ist ihr geringer Verbrauch. Im Durchschnitt kann ein kleiner 0.96-Zoll-Bildschirm etwa 20 mA verbrauchen. Warum ist das wichtig? Wenn Sie Ihr Arduino-Projekt mit einer Batterie betreiben, ist die Reduzierung des Stromverbrauchs immer ein erheblicher Vorteil. Zudem kann es mit seiner Auflösung von 128 x 64 Pixeln Bilder mit einer für die Größe recht guten Schärfe darstellen.
Andererseits besteht eines der Probleme, die bei diesem Bildschirmtyp auftreten können, darin, dass er sehr klein ist. Obwohl sie eine gute Sichtbarkeit bieten, kann diese Größe in einigen Projekten, in denen viele Informationen angezeigt werden müssen, nicht ausreichen.
Anschließen des OLED-Displays an Arduino
Das OLED-Display lässt sich je nach Modell einfach über einen I2C- oder SPI-Bus mit dem Arduino-Board verbinden. In diesem Tutorial konzentrieren wir uns auf die Verbindung über I2C, da dies eine der gebräuchlichsten und einfachsten ist.
Sie müssen die Pins des OLED-Displays wie folgt mit den entsprechenden Pins Ihres Arduino verbinden:
- GND (Masse) mit dem Arduino GND-Pin
- VCC mit dem 5V- oder 3.3V-Pin von Arduino
- SDA zum Arduino-Pin A4
- SCL an Pin A5 des Arduino
Wie Sie sehen, ist der Anschluss recht einfach: Sie benötigen lediglich vier Kabel. Unabhängig davon, ob Sie den SPI- oder I2C-Bus verwenden, ist der Verbindungsprozess ähnlich, obwohl die Pins je nach gewählter Kommunikationsart variieren.
Codebeispiel für OLED-Display
Damit der OLED-Bildschirm mit Arduino funktioniert, ist die Verwendung der von Adafruit entwickelten Bibliotheken eine der besten Möglichkeiten. Der SSD1306-Controller ist, wie bereits erwähnt, mit der Bibliothek kompatibel Adafruit SSD1306, was uns das Leben beim Erstellen von Grafiken und Texten auf dem Bildschirm erleichtert.
Nachfolgend hinterlasse ich Ihnen einen grundlegenden Code, der es Ihnen ermöglicht, Text auf einem OLED-Bildschirm mit einer I2C-Verbindung anzuzeigen:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println(F("Hola, Mundo!"));
display.display();
}
void loop() {}
Dieser Code initialisiert den Bildschirm, löscht die Anzeige und schreibt dann „Hello, World!“ auf dem OLED-Bildschirm. Sie können verschiedene Funktionen der Adafruit GFX-Bibliothek verwenden, um Diagramme zu erstellen, Linien und Kreise zu zeichnen oder sogar Bilder auf dem Bildschirm anzuzeigen.
Weitere nützliche Beispiele für den OLED-Bildschirm
Das obige Beispiel ist nur eine grundlegende Einführung, aber Sie können mit OLED-Displays noch viel mehr machen. Sie können beispielsweise verschiedene geometrische Formen zeichnen, Animationen erstellen oder sogar kleine Grafiken erstellen.
Eine der interessantesten Funktionen der Adafruit-Bibliotheken ist die Möglichkeit, mehrere Pixel zu zeichnen, was bedeutet, dass Sie Scroll-Animationen erstellen können. Ein weiteres Beispiel wäre der Lauftext, der sehr nützlich ist, wenn Sie Nachrichten anzeigen möchten, die sich dynamisch ändern.
Eine weitere Verwendungsmöglichkeit dieser Bildschirme ist die Anzeige von Echtzeitdaten in interaktiven Projekten, beispielsweise einem Temperatur- oder Feuchtigkeitssensor. Der Bildschirm kann aktualisiert werden, sobald neue Sensorwerte vorliegen, wodurch jedes Projekt viel visueller wird.
Häufige Probleme bei der Verwendung von OLED-Bildschirmen
Eines der häufigsten Probleme bei der Verwendung von OLED-Displays mit Arduino ist Speichermangel. Obwohl die Adafruit-Bibliotheken sehr vollständig sind, können sie eine beträchtliche Menge an Speicher auf dem Arduino-Prozessor beanspruchen, insbesondere in Versionen wie der Arduino Uno. Wenn Sie Platzprobleme haben, können Sie versuchen, Ihren Code zu optimieren, nicht benötigte Funktionen zu entfernen oder sogar eine Platine mit mehr Kapazität zu verwenden, beispielsweise ein Arduino Mega.
Ein weiteres häufiges Problem ist der erstmalige Aufbau der I2C-Verbindung. Wenn Sie nicht die richtigen SDA- und SCL-Pins verwenden, funktioniert das Display möglicherweise nicht oder zeigt Verbindungsfehler an. Stellen Sie sicher, dass Sie die richtigen Pins basierend auf Ihrem Arduino-Modell verwenden.
Schließlich berichten einige Benutzer auch über einen leeren Bildschirm oder einen, der auf keine Befehle reagiert. Dies kann behoben werden, indem sichergestellt wird, dass die Versorgungsspannung korrekt ist (3.3 V oder 5 V, je nach Display-Modell) und dass die Kabel richtig angeschlossen sind.