So verbinden Sie ein OLED-I2C-Display mit ARDUINO
Einführung: Einführung in die OLED-I2C-Anzeige 128*64/128*32.
Hallo! Als Amateur-Elektronik-Enthusiast bin ich sicher, dass alles, was wir tun – elektronisches Spielzeug, selbstgemachte Produkte oder große Projekte – alles aus Neugier und Faulheit geschieht. Neugier strebt danach, das Große, Unbekannte zu verstehen und zu begreifen, herauszufinden, wie es dort funktioniert, was es tut, wie es sich bewegt. Und Faulheit lässt sich etwas einfallen, um nicht aufzustehen, sich nicht zu nähern, nicht hochzuheben, sich nicht schmutzig zu machen oder sonst etwas Wichtiges.
Da es besser ist, Informationen zu sehen, als herauszufinden, was in unserem Gerät passieren wird, was bereits passiert ist oder gerade passiert, möchten wir auf jeden Fall diese äußerst nützlichen Informationen von unseren Mikrocontrollern, Sensoren oder anderen Geräten erhalten. Und auf jeden Fall möchte ich beliebige Nachrichten, wie Fragen, Warnungen, Erinnerungen, Emoticons, Sterne, Herzen und dergleichen erhalten.
Für alle, die ebenfalls einen ähnlichen Wunsch haben, gibt es hier eine kurze Anleitung zum Anschluss und Test kleiner und günstiger OLED-Displays.
Als nächstes werden wir über eines der für Funkamateure weit verbreiteten OLED-Display-Modelle sprechen, das vom SSD1306-Chip gesteuert wird, mit einer Bildschirmgröße von 0,96 Zoll und einer Auflösung von 128 * 64 oder 128 * 32 Pixel. Diese Displays sind ideal für kleine Amateurfunk-Designs und selbstgemachte Projekte.
Wir werden es mit Arduino UNO / NANO verbinden und es auch über Arduino programmieren.
Befolgen Sie die Anweisungen, um zu verstehen, wie Sie das OLED-Display richtig an den Arduino anschließen und konfigurieren und wie Sie eine benutzerdefinierte Nachricht auf dem Display anzeigen.
Wir machen alles Schritt für Schritt.
Wir brauchen nur vier Dinge:
Generell ist der Kauf von Teilen für verschiedene Projekte bei Aliexpress und Ebay eine sehr coole Sache, denn während man an einem Projekt arbeitet, sind Teile für ein anderes bereits unterwegs. Die Hauptsache ist, die Bestellung nicht zu vergessen.
Das Display wird von einem SSD1306-Chip gesteuert, der fünf Kommunikationsprotokolle unterstützt, darunter I2C. Daten, die dieses Protokoll verwenden, werden nur über zwei Drähte übertragen. Je weniger Drähte im Gehäuse vorhanden sind, desto besser, daher passt es für uns ganz gut.Aber! Es gibt Module mit SPI-Protokoll und sogar mit Protokollumschaltung, seien Sie also beim Kauf dieses Moduls vorsichtig.
Verwendete Pins:
OLED-Display – SCL/SCK (Uhr) und SDA (Daten), „Plus“-Leistung (VCC) und „Minus“-Leistung (GND).
Verwendete Pins:
Arduino UNO – SCL/SCK auf A5 und SSD auf A4, „Plus“-Stromversorgung (+5 V) und „Minus“-Stromversorgung (GND).
Anschließen des Displays an Arduino:
Jedes Gerät am I2C-Bus hat eine hexadezimale Adresse, sie kann nicht geändert werden, sie ist fest verdrahtet, jeder verantwortliche Hersteller muss dies irgendwo auf dem Gehäuse oder in der Anleitung angeben. Es gibt Module mit Schaltern und Jumpern, mit denen sich die Adresse ändern lässt, aber ... wenn die Geräte lächerlich günstig sind, kümmert sich der Hersteller möglicherweise nicht um ein solches Detail, sodass Sie es selbst ermitteln müssen.
Insgesamt können bis zu 127 Adressen am Bus genutzt werden – 119 für Geräte und 8 Serviceadressen. Über diese Adressen wird kommuniziert. Es gibt einen Hauptmann, auch bekannt als Meister, und es gibt einen Sklaven, auch bekannt als Sklave – die Meister fragen, die Sklaven antworten, alles ist einfach.
Da unser OLED-Display das I2C-Kommunikationsprotokoll verwendet und die Adresse möglicherweise nicht angegeben wird, werden wir versuchen, genau diese Adresse selbst herauszufinden.
Sie können dies tun, indem Sie eine kurze Skizze auf Ihr Arduino-Board hochladen, während das OLED angeschlossen ist. ABER!
Beeilen Sie sich nicht, die Skizze sofort auf Arduino hochzuladen! Laden wir zunächst die „Treiber“ herunter, d.h. Lassen Sie uns die Bibliotheken verbinden. Dazu gehen wir sofort zu „Schritt Nr. 5“ und kehren dann zurück und fahren fort.
Laden Sie CODE Finder_I2C_Hex_Address.ino herunter und laden Sie es auf Arduino hoch.
Öffnen Sie „Port Monitor“, stellen Sie die Geschwindigkeit auf 9600 ein und wenn alles richtig angeschlossen ist, zeigt das Programm die Geräteadresse an, in meinem Fall OLED mit der Adresse 0x3F.
Damit alles richtig funktioniert und Sie das Rad nicht neu erfinden müssen, müssen Sie einige Bibliotheken mit der ArduinoIDE-Umgebung verbinden, nämlich: ADAFRUIT GFX und ADAFRUIT SSD1306. Sie sind notwendig, damit Arduino unabhängig kommunizieren kann mit dem OLED-Display.
Sie können diese Bibliotheken einbinden, indem Sie die folgenden Schritte ausführen.
Bei den neuesten Versionen der Bibliotheken funktionierte mein Display schief, das kann natürlich an der Krümmung meiner Hände liegen, aber nachdem ich die allerersten Versionen dieser Bibliotheken installiert hatte, begann alles glatt und schön zu erscheinen. Aus irgendeinem Grund fallen mir Puschkins Zeilen ein:
...und Erfahrung, der Sohn schwerer Fehler,
und Genie, Freund der Paradoxien.
Eine andere Möglichkeit, Bibliotheken zu installieren, besteht darin, diese Bibliotheken selbst zu finden, herunterzuladen und zu installieren.
Für Github-Beispiel:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Dies sind die gleichen Adafruit-Bibliotheken, aber ähnliche Bibliotheken können auf Anfrage von OLED I2C problemlos in Suchmaschinen durchsucht werden. Viele Enthusiasten schreiben Bibliotheken „für sich selbst“ und veröffentlichen sie dann im Internet. Welche Bibliothek Sie nutzen möchten, bleibt Ihnen überlassen.
Damit die Anzeige russische Buchstaben anzeigt, sind auch spezielle Bibliotheken erforderlich, dies ist jedoch ein separates Thema für einen separaten Artikel.
Nachdem die Bibliotheken installiert sind, können Sie zu Schritt 4 zurückkehren und schließlich die Hexadezimaladresse Ihres Displays herausfinden.
Um zu überprüfen, ob alles wie erwartet funktioniert, führen Sie das Testbeispiel von ArduinoIDE aus.
Dafür:
Gehen Sie zu DATEI > BEISPIELE > SSD 1306 > Wählen Sie 128x64 i2c
Wenn Sie „Fehler“ erhalten, versuchen Sie, SSD 1306 > 128x32 i2c auszuwählen.
Wenn „Fehler“ erneut auftritt, ändern Sie die I2C-Adresse in Zeile 61 des Democodes und ersetzen Sie sie durch die Adresse Ihres Displays, die Sie in Schritt 4 ermittelt haben.
Wenn der Fehler erneut auftritt, können Sie versuchen, die Datei Adafruit_SSD1306.h zu bearbeiten. Sie befindet sich im Arduino-Bibliotheksordner.
Öffnen Sie die Datei Adafruit_SSD1306.h in einem Texteditor und suchen Sie nach den Zeilen:
Kommentieren Sie die Zeile aus:
Es sollte so aussehen:
Tritt der Fehler erneut auf, müssen Sie die korrekten Verbindungen überprüfen.
Sobald der Download abgeschlossen ist, sehen Sie eine Testanimation auf dem Bildschirm, was bedeutet, dass Sie Ihr OLED-Display erfolgreich eingerichtet haben.
Wenn Ihnen diese Animation in vollen Zügen gefallen hat, können Sie mit dem nächsten Schritt fortfahren.
Um Ihre eigene Nachricht zu schreiben, erstellen Sie zunächst eine neue Skizze in der ArduinoIDE-Programmierumgebung.
Im Header fügen wir 4 Bibliotheken ein:
Dann schreiben wir das Reset-Protokoll:
Im VOID SETUP geben wir die hexadezimale Adresse unseres Displays 0x3C an, die wir in „Schritt Nr. 4“ gelernt haben.
Dann initialisieren wir die Anzeige und löschen sie:
Als nächstes schreiben wir in VOID LOOP den Hauptcode, also unsere Nachricht, die wir auf dem Display anzeigen möchten.
Dazu beschreiben wir die Textgröße, die Textfarbe, die Cursorposition und zeigen schließlich die Nachricht mit dem Befehl println an:
Vergessen Sie am Ende nicht zu schreiben Anzeige.Anzeigedamit das Bild auf dem Bildschirm angezeigt wird, andernfalls erhalten Sie eine Lücke.
Wenn Sie alles richtig gemacht haben, erscheint eine Meldung auf den Displays.
Hier ist der Starting_with_Arduino_OLED.ino CODE unseres Programms:
Hallo! Als Amateur-Elektronik-Enthusiast bin ich sicher, dass alles, was wir tun – elektronisches Spielzeug, selbstgemachte Produkte oder große Projekte – alles aus Neugier und Faulheit geschieht. Neugier strebt danach, das Große, Unbekannte zu verstehen und zu begreifen, herauszufinden, wie es dort funktioniert, was es tut, wie es sich bewegt. Und Faulheit lässt sich etwas einfallen, um nicht aufzustehen, sich nicht zu nähern, nicht hochzuheben, sich nicht schmutzig zu machen oder sonst etwas Wichtiges.
Da es besser ist, Informationen zu sehen, als herauszufinden, was in unserem Gerät passieren wird, was bereits passiert ist oder gerade passiert, möchten wir auf jeden Fall diese äußerst nützlichen Informationen von unseren Mikrocontrollern, Sensoren oder anderen Geräten erhalten. Und auf jeden Fall möchte ich beliebige Nachrichten, wie Fragen, Warnungen, Erinnerungen, Emoticons, Sterne, Herzen und dergleichen erhalten.
Für alle, die ebenfalls einen ähnlichen Wunsch haben, gibt es hier eine kurze Anleitung zum Anschluss und Test kleiner und günstiger OLED-Displays.
Als nächstes werden wir über eines der für Funkamateure weit verbreiteten OLED-Display-Modelle sprechen, das vom SSD1306-Chip gesteuert wird, mit einer Bildschirmgröße von 0,96 Zoll und einer Auflösung von 128 * 64 oder 128 * 32 Pixel. Diese Displays sind ideal für kleine Amateurfunk-Designs und selbstgemachte Projekte.
Schritt 1: Grundkonzepte
Wir werden es mit Arduino UNO / NANO verbinden und es auch über Arduino programmieren.
- OLED ist eine organische Leuchtdiode, also ein Halbleiterbauelement aus organischen Verbindungen, das beginnt, Licht zu emittieren, wenn ein elektrischer Strom durch es fließt.
- ARDUINO ist eine Plattform für Schulungen und den Aufbau von Automatisierungs- und Robotiksystemen.
- ArduinoIDE – Entwicklungsumgebung. Dies ist ein kostenloses Arduino-Programmierprogramm.
- I2C – Inter-Integrated Circuits, Kommunikationsleitung zwischen Chips.
- Skizze, auch bekannt als Code, auch bekannt als Programm – Arduino-Terminologie.
Befolgen Sie die Anweisungen, um zu verstehen, wie Sie das OLED-Display richtig an den Arduino anschließen und konfigurieren und wie Sie eine benutzerdefinierte Nachricht auf dem Display anzeigen.
Wir machen alles Schritt für Schritt.
Schritt 2: Zubehör
Wir brauchen nur vier Dinge:
- 1. Das OLED-Display selbst ist 0,96 Zoll groß (Sie können es bei Aliexpress oder Ebay kaufen, es ist lang, aber günstig!).
- 2. Arduino UNO / Nano (gleiche Stelle wie das Display).
- 3. Verbindungsdrähte (ebd.).
- 4. Computer oder Laptop mit installierter ArduinoIDE.
Generell ist der Kauf von Teilen für verschiedene Projekte bei Aliexpress und Ebay eine sehr coole Sache, denn während man an einem Projekt arbeitet, sind Teile für ein anderes bereits unterwegs. Die Hauptsache ist, die Bestellung nicht zu vergessen.
Schritt 3: Anschließen des Displays
Das Display wird von einem SSD1306-Chip gesteuert, der fünf Kommunikationsprotokolle unterstützt, darunter I2C. Daten, die dieses Protokoll verwenden, werden nur über zwei Drähte übertragen. Je weniger Drähte im Gehäuse vorhanden sind, desto besser, daher passt es für uns ganz gut.Aber! Es gibt Module mit SPI-Protokoll und sogar mit Protokollumschaltung, seien Sie also beim Kauf dieses Moduls vorsichtig.
Verwendete Pins:
OLED-Display – SCL/SCK (Uhr) und SDA (Daten), „Plus“-Leistung (VCC) und „Minus“-Leistung (GND).
Verwendete Pins:
Arduino UNO – SCL/SCK auf A5 und SSD auf A4, „Plus“-Stromversorgung (+5 V) und „Minus“-Stromversorgung (GND).
Anschließen des Displays an Arduino:
- Vcc - 5V
- GND - GND
- SDA-A4
- SCL-A5
Schritt 4: I2C-Scanner
Jedes Gerät am I2C-Bus hat eine hexadezimale Adresse, sie kann nicht geändert werden, sie ist fest verdrahtet, jeder verantwortliche Hersteller muss dies irgendwo auf dem Gehäuse oder in der Anleitung angeben. Es gibt Module mit Schaltern und Jumpern, mit denen sich die Adresse ändern lässt, aber ... wenn die Geräte lächerlich günstig sind, kümmert sich der Hersteller möglicherweise nicht um ein solches Detail, sodass Sie es selbst ermitteln müssen.
Insgesamt können bis zu 127 Adressen am Bus genutzt werden – 119 für Geräte und 8 Serviceadressen. Über diese Adressen wird kommuniziert. Es gibt einen Hauptmann, auch bekannt als Meister, und es gibt einen Sklaven, auch bekannt als Sklave – die Meister fragen, die Sklaven antworten, alles ist einfach.
Da unser OLED-Display das I2C-Kommunikationsprotokoll verwendet und die Adresse möglicherweise nicht angegeben wird, werden wir versuchen, genau diese Adresse selbst herauszufinden.
Sie können dies tun, indem Sie eine kurze Skizze auf Ihr Arduino-Board hochladen, während das OLED angeschlossen ist. ABER!
Beeilen Sie sich nicht, die Skizze sofort auf Arduino hochzuladen! Laden wir zunächst die „Treiber“ herunter, d.h. Lassen Sie uns die Bibliotheken verbinden. Dazu gehen wir sofort zu „Schritt Nr. 5“ und kehren dann zurück und fahren fort.
Schritt 4: Fortsetzung:
Laden Sie CODE Finder_I2C_Hex_Address.ino herunter und laden Sie es auf Arduino hoch.
Öffnen Sie „Port Monitor“, stellen Sie die Geschwindigkeit auf 9600 ein und wenn alles richtig angeschlossen ist, zeigt das Programm die Geräteadresse an, in meinem Fall OLED mit der Adresse 0x3F.
Schritt 5: Bibliotheken herunterladen und verbinden
Damit alles richtig funktioniert und Sie das Rad nicht neu erfinden müssen, müssen Sie einige Bibliotheken mit der ArduinoIDE-Umgebung verbinden, nämlich: ADAFRUIT GFX und ADAFRUIT SSD1306. Sie sind notwendig, damit Arduino unabhängig kommunizieren kann mit dem OLED-Display.
Sie können diese Bibliotheken einbinden, indem Sie die folgenden Schritte ausführen.
- 1. Gehen Sie in ArduinoIDE zum Skizzenmenü.
- 2. Wählen Sie „Bibliotheken einbeziehen“.
- 3.Wählen Sie „Bibliotheken verwalten“.
- 4. Suchen Sie ADAFRUIT GFX und installieren Sie sie.
- 5. Suchen Sie ADAFRUIT SSD1306 und installieren Sie sie.
Bei den neuesten Versionen der Bibliotheken funktionierte mein Display schief, das kann natürlich an der Krümmung meiner Hände liegen, aber nachdem ich die allerersten Versionen dieser Bibliotheken installiert hatte, begann alles glatt und schön zu erscheinen. Aus irgendeinem Grund fallen mir Puschkins Zeilen ein:
...und Erfahrung, der Sohn schwerer Fehler,
und Genie, Freund der Paradoxien.
Eine andere Möglichkeit, Bibliotheken zu installieren, besteht darin, diese Bibliotheken selbst zu finden, herunterzuladen und zu installieren.
Für Github-Beispiel:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Dies sind die gleichen Adafruit-Bibliotheken, aber ähnliche Bibliotheken können auf Anfrage von OLED I2C problemlos in Suchmaschinen durchsucht werden. Viele Enthusiasten schreiben Bibliotheken „für sich selbst“ und veröffentlichen sie dann im Internet. Welche Bibliothek Sie nutzen möchten, bleibt Ihnen überlassen.
Damit die Anzeige russische Buchstaben anzeigt, sind auch spezielle Bibliotheken erforderlich, dies ist jedoch ein separates Thema für einen separaten Artikel.
Nachdem die Bibliotheken installiert sind, können Sie zu Schritt 4 zurückkehren und schließlich die Hexadezimaladresse Ihres Displays herausfinden.
Schritt 6: Anzeigentest
Um zu überprüfen, ob alles wie erwartet funktioniert, führen Sie das Testbeispiel von ArduinoIDE aus.
Dafür:
Gehen Sie zu DATEI > BEISPIELE > SSD 1306 > Wählen Sie 128x64 i2c
Wenn Sie „Fehler“ erhalten, versuchen Sie, SSD 1306 > 128x32 i2c auszuwählen.
Wenn „Fehler“ erneut auftritt, ändern Sie die I2C-Adresse in Zeile 61 des Democodes und ersetzen Sie sie durch die Adresse Ihres Displays, die Sie in Schritt 4 ermittelt haben.
Wenn der Fehler erneut auftritt, können Sie versuchen, die Datei Adafruit_SSD1306.h zu bearbeiten. Sie befindet sich im Arduino-Bibliotheksordner.
Öffnen Sie die Datei Adafruit_SSD1306.h in einem Texteditor und suchen Sie nach den Zeilen:
//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
Kommentieren Sie die Zeile aus:
#define SSD1306_128_64.
Es sollte so aussehen:
#define SSD1306_128_64
//#define SSD1306_128_32
// #define SSD1306_96_16
Tritt der Fehler erneut auf, müssen Sie die korrekten Verbindungen überprüfen.
Sobald der Download abgeschlossen ist, sehen Sie eine Testanimation auf dem Bildschirm, was bedeutet, dass Sie Ihr OLED-Display erfolgreich eingerichtet haben.
Wenn Ihnen diese Animation in vollen Zügen gefallen hat, können Sie mit dem nächsten Schritt fortfahren.
Schritt 7: Schreiben Sie Ihre eigene Nachricht
Um Ihre eigene Nachricht zu schreiben, erstellen Sie zunächst eine neue Skizze in der ArduinoIDE-Programmierumgebung.
Im Header fügen wir 4 Bibliotheken ein:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Dann schreiben wir das Reset-Protokoll:
#define OLED_RESET 4
Adafruit_SSD1306-Anzeige (OLED_RESET);
Im VOID SETUP geben wir die hexadezimale Adresse unseres Displays 0x3C an, die wir in „Schritt Nr. 4“ gelernt haben.
Dann initialisieren wir die Anzeige und löschen sie:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
Als nächstes schreiben wir in VOID LOOP den Hauptcode, also unsere Nachricht, die wir auf dem Display anzeigen möchten.
Dazu beschreiben wir die Textgröße, die Textfarbe, die Cursorposition und zeigen schließlich die Nachricht mit dem Befehl println an:
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Gut gemacht!");
display.display();
Vergessen Sie am Ende nicht zu schreiben Anzeige.Anzeigedamit das Bild auf dem Bildschirm angezeigt wird, andernfalls erhalten Sie eine Lücke.
Wenn Sie alles richtig gemacht haben, erscheint eine Meldung auf den Displays.
Hier ist der Starting_with_Arduino_OLED.ino CODE unseres Programms:
Postleitzahl
[946 b] (Downloads: 4908)
Ähnliche Meisterkurse
Besonders interessant

Kabelantenne für digitales Fernsehen in 5 Minuten

Eine Auswahl einfacher und effektiver Schemata.

Dreiphasenspannung von Einphasenspannung in 5 Minuten

Starten eines Drehstrommotors aus einem Einphasennetz ohne Kondensator

Ewige Taschenlampe ohne Batterien

Wie man eine preiswerte, aber sehr leistungsstarke LED-Lampe herstellt
Kommentare (10)