So schließen Sie das OLED I2C-Display an ARDUINO an

Pin
Send
Share
Send

Einführung: Einführung in das 128 * 64/128 * 32 OLED I2C-Display.

Hallo! Als Amateur - ein Elektronik-Enthusiast, bin ich sicher, dass alles, was wir tun, elektronisches Spielzeug ist - hausgemachte Produkte oder große Projekte, alles aus Neugier und Faulheit. Neugier versucht, das Unermessliche, Unbekannte zu verstehen und zu verstehen, wie es dort funktioniert, was es tut, wie es sich bewegt. Und Faulheit erfindet, um darauf zu kommen, um nicht aufzustehen, nicht fit zu sein, nicht zu heben, nicht schmutzig zu werden oder etwas anderes Wichtiges.
Da es besser ist, Informationen zu sehen, als zu verstehen, was auf unserem Gerät geschehen wird oder bereits geschehen ist oder geschieht, möchten wir diese sehr nützlichen Informationen auf jeden Fall von unseren Mikrocontrollern, Sensoren oder anderen Geräten erhalten. Und ich möchte auf jeden Fall Nachrichten erhalten, wie z. B. Fragen, Warnungen, Erinnerungen, Emoticons, Sternchen, Herzen und dergleichen.
Für diejenigen, die auch einen ähnlichen Wunsch haben, finden Sie hier eine Kurzanleitung zum Anschließen und Überprüfen kleiner und kostengünstiger OLED-Displays.
Als nächstes werden wir über eines der weit verbreiteten Amateurfunkmodelle von OLED-Displays sprechen, die vom SSD1306-Chip gesteuert werden, 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 hausgemachte Produkte.

Schritt 1: Schlüsselkonzepte


Wir werden es mit Arduino UNO / NANO verbinden, und zum Programmieren werden wir es auch mit Arduino verbinden.
  • OLED ist eine organische Leuchtdiode, d. H. Eine aus organischen Verbindungen hergestellte Halbleitervorrichtung, die beginnt, Licht zu emittieren, wenn ein elektrischer Strom durch sie fließt.
  • ARDUINO ist eine Plattform für Trainings- und Gebäudeautomations- und Robotersysteme.
  • ArduinoIDE ist eine Entwicklungsumgebung. Dies ist ein kostenloses Arduino-Programmiertool.
  • I2C - Inter-Integrated Circuits, Kommunikationsleitung zwischen Mikroschaltkreisen.
  • Eine Skizze, es ist ein Code, es ist ein Programm - Arduino-Terminologie.

Befolgen Sie die Anweisungen, um zu verstehen, wie Sie ein OLED-Display ordnungsgemäß an das Arduino anschließen und konfigurieren und wie Sie Ihre eigene Nachricht auf dem Display anzeigen.
Wir machen alles in Schritten.

Schritt 2: Zubehör


Wir werden nur vier Dinge brauchen:
  • 1. Das OLED-Display selbst ist 0,96 "(kann bei Aliexpress oder Ebay gekauft werden, - lang, aber billig!).
  • 2. Arduino UNO / Nano (am selben Ort wie das Display).
  • 3. Anschließen der Drähte (ebenda).
  • 4. Ein Computer oder Laptop mit installiertem ArduinoIDE.

Im Allgemeinen ist der Kauf von Teilen für verschiedene Projekte bei Aliexpress und Ebay eine sehr coole Sache, während Sie ein Projekt ausführen, sind Teile für ein anderes bereits unterwegs. Die Hauptsache ist, nicht zu vergessen, eine Bestellung aufzugeben.

Schritt 3: Schließen Sie das Display an


Das Display wird vom SSD1306-Chip gesteuert, der fünf Kommunikationsprotokolle unterstützt, von denen eines I2C ist. Daten zu diesem Protokoll werden in nur zwei Drähten übertragen. Je weniger Drähte im Fall sind, desto besser. Aber! Es gibt Module mit SPI-Protokoll und sogar Protokollumschaltung. Seien Sie also beim Kauf dieses Moduls vorsichtig.

Verwendete Schlussfolgerungen:
OLED-Anzeige - SCL / SCK (Uhr) und SDA (Daten), "Plus" -Leistung (VCC) und "Minus" -Leistung (GND).

Verwendete Schlussfolgerungen:
Arduino UNO - SCL / SCK auf A5 und SSD auf A4, "Plus" -Leistung (+ 5V) und "Minus" -Leistung (GND).
Verbinden Sie das Display mit dem Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL-A5

Schritt 4: I2C-Scanner


Jedes Gerät am I2C-Bus hat eine hexadezimale Adresse, die Sie nicht ändern können, es ist fest vernäht, jeder verantwortliche Hersteller muss sie irgendwo auf dem Gehäuse oder in der Anleitung vermerken. Es gibt Module mit Schaltern und Steckbrücken, mit denen Sie die Adresse ändern können, aber ... wenn die Geräte billig sind, um die Hässlichkeit, dann muss der Hersteller möglicherweise nicht mit einer solchen Kleinigkeit umgehen, so dass Sie es selbst bestimmen müssen.
Insgesamt können bis zu 127 Adressen auf dem Bus verwendet werden - 119 für Geräte und 8 Dienstadressen. Die Kommunikation erfolgt an diesen Adressen. Es gibt einen Meister, er ist ein Meister, aber es gibt einen Sklaven, er ist auch ein Sklave - Meister fragen, die Anhänger 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 herauszufinden.
Dies kann durch Herunterladen einer kurzen Skizze auf Ihr Arduino-Board mit angeschlossener OLED erfolgen. ABER!
Nehmen Sie sich Zeit, um die Skizze sofort auf Arduino hochzuladen! Laden wir zuerst den "Treiber" herunter, d.h. Wir verbinden die Bibliotheken und gehen dazu direkt zu "Schritt 5". Dann kehren wir 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 den "Port Monitor", stellen Sie die Geschwindigkeit auf 9600 ein und wenn alles korrekt angeschlossen ist, zeigt das Programm die Geräteadresse an, in meinem Fall OLED mit der Adresse 0x3F.

Schritt 5: Laden Sie die Bibliotheken herunter und verbinden Sie sie


Damit alles richtig funktioniert und Sie das Rad nicht neu erfinden müssen, müssen Sie einige Bibliotheken mit der ArduinoIDE-Umgebung verbinden, und zwar: ADAFRUIT GFX und ADAFRUIT SSD1306, damit Arduino unabhängig mit dem OLED-Display kommunizieren kann.
Sie können diese Bibliotheken mithilfe der folgenden Schritte verbinden.
  • 1. Wechseln Sie in ArduinoIDE zum Menü Skizze.
  • 2. Wählen Sie "Include Libraries" / Include Libraries.
  • 3. Wählen Sie "Bibliotheken verwalten" / Verwaltete Bibliotheken.
  • 4. Suchen Sie ADAFRUIT GFX und installieren Sie sie.
  • 5. Suchen Sie ADAFRUIT SSD1306 und installieren Sie sie.

Bei den neuesten Bibliotheksversionen funktionierte die Anzeige bei mir schief, vielleicht liegt dies an der Krümmung der Hände, aber nachdem ich die ersten Versionen dieser Bibliotheken installiert hatte, begann alles glatt und schön zu erscheinen. Aus irgendeinem Grund tauchen Puschkins Zeilen in seinem Gedächtnis auf:
... und Erfahrung, der Sohn schwieriger Fehler,
und Genie, Freund Paradoxe.

Eine andere Möglichkeit, Bibliotheken zu installieren, besteht darin, diese Bibliotheken selbst zu suchen, herunterzuladen und zu installieren.
Ein Beispiel für Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Dies sind die gleichen Adafruit-Bibliotheken, ähnliche Bibliotheken können jedoch auf Anfrage von OLED I2C problemlos in Suchmaschinen gesucht werden. Viele Enthusiasten schreiben Bibliotheken "für sich" und stellen sie dann ins Internet. Welche Bibliothek Sie verwenden, liegt ganz bei Ihnen.
Damit die Anzeige russische Buchstaben anzeigen kann, sind auch spezielle Bibliotheken erforderlich, dies ist jedoch ein separates Thema für einen separaten Artikel.
Nach der Installation der Bibliotheken können Sie zu Schritt 4 zurückkehren und schließlich die hexadezimale Adresse Ihrer Anzeige ermitteln.

Schritt 6: Testen der Anzeige


Führen Sie das Testbeispiel von ArduinoIDE aus, um zu überprüfen, ob alles wie erwartet funktioniert.
Dafür:
Gehen Sie zu DATEI> BEISPIELE> SSD 1306> Wählen Sie 128x64 i2c
Wenn Sie eine Fehlermeldung erhalten, wählen Sie die SSD 1306> 128x32 i2c.
Wenn der Fehler erneut auftritt, versuchen Sie, die I2C-Adresse in Zeile 61 des Demo-Codes zu ändern, 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 Ordner mit den Arduino-Bibliotheken.

Öffnen Sie die Datei Adafruit_SSD1306.h in einem Texteditor und suchen Sie die Zeilen:
// # define SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Kommentiere die Zeile aus:
#define SSD1306_128_64.

Es sollte so sein:
#define SSD1306_128_64 // # define SSD1306_128_32 // #define SSD1306_96_16

Wenn der Fehler erneut auftritt, müssen Sie die Richtigkeit der Verbindungen überprüfen.
Nachdem der Download abgeschlossen ist, wird eine Testanimation auf dem Bildschirm angezeigt. Dies bedeutet, dass Sie Ihr OLED-Display erfolgreich konfiguriert haben.

Wenn Sie diese Animation genießen, 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.
In der Kopfzeile verbinden wir 4 Bibliotheken:
#include #include #include #include 

Dann schreiben wir das Reset-Protokoll:
#define OLED_RESET 4 Adafruit_SSD1306-Anzeige (OLED_RESET);

Geben Sie im VOID SETUP die hexadezimale Adresse unserer 0x3C-Anzeige an, die wir in "Schritt Nr. 4" ermittelt haben.
Initialisieren Sie dann die Anzeige und löschen Sie sie:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Als nächstes schreiben wir in VOID LOOP den Hauptcode, das heißt unsere Nachricht, die wir auf dem Display anzeigen möchten.
Dazu beschreiben wir die Textgröße, die Textfarbe und die Cursorposition und zeigen schließlich eine Meldung mit dem Befehl println an:
display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (0,0); display.println ("Gut gemacht!"); display.display ();

Vergessen Sie nicht, am Ende zu schreiben display.displayDamit das Bild auf dem Bildschirm angezeigt wird, erhalten Sie andernfalls eine Leerstelle.
Wenn Sie alles richtig gemacht haben, erscheint eine Meldung auf den Displays.

Hier ist der CODE Starting_with_Arduino_OLED.ino unseres Programms:
code.zip 946 b (downloads: 1366)

Pin
Send
Share
Send