Mach es selbst
Lifehacks, Meisterkurse, nützliche Tipps, Rezepte.
heim » Elektronik » DIY-Elektronik » So schließen Sie ein OLED-I2C-Display an ARDUINO an
Einführung: Einführung in die OLED-I2C-Anzeige 128*64/128*32.
So verbinden Sie ein OLED-I2C-Display mit ARDUINO

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.
So verbinden Sie ein OLED-I2C-Display mit ARDUINO

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.

So verbinden Sie ein OLED-I2C-Display mit ARDUINO

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.
So verbinden Sie ein OLED-I2C-Display mit ARDUINO

Verwendete Pins:
OLED-Display – SCL/SCK (Uhr) und SDA (Daten), „Plus“-Leistung (VCC) und „Minus“-Leistung (GND).
So verbinden Sie ein OLED-I2C-Display mit ARDUINO

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

So verbinden Sie ein OLED-I2C-Display mit ARDUINO

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.
So verbinden Sie ein OLED-I2C-Display mit ARDUINO

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.
So verbinden Sie ein OLED-I2C-Display mit ARDUINO

Ö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.
So verbinden Sie ein OLED-I2C-Display mit ARDUINO

Hier ist der Starting_with_Arduino_OLED.ino CODE unseres Programms:
Postleitzahl [946 b] (Downloads: 4908)
Kommentar
  • KrawattelächelnLachenerrötenSmileyentspannt entspanntGrinsen
    Herz Augenkissing_heartkissing_closed_eyesgespülterleichtertbefriedigtGrinsen
    zwinkernstick_out_tongue_winking_eyestick_out_tongue_closed_eyesgrinsendküssenstick_out_tongueSchlafen
    besorgtrunzelt die Stirngequältoffener Mundverzog das Gesichtverwirrtverstummte
    ausdruckslosunbeeindrucktschweiß_smileSchweißenttäuscht_erleichtertmüdepassiv
    enttäuschtverwirrtängstlichkalter SchweißdurchhaltenweinenSchluchzen
    FreudeerstauntSchreimüdes GesichtwütendWutTriumph
    schläfrigleckerMaskeSonnenbrilledizzy_faceKoboldlächelnd_imp
    neutral_faceno_mouthunschuldig
4 minus eins =
Kommentare (10)
  1. Tatoschka
    #1 Tatoschka Gäste 14. November 2018 21:18
    9
    Danke Freund! Dies ist meine erste hochgeladene Skizze und Einführung in Arduino. Abgesehen vom Blinken Blink))
  2. Alisher
    #2 Alisher Gäste 28. Juli 2019 19:35
    8
    Wo kann ich diesen Finder_I2C_Hex_Address.ino-Code herunterladen?
    1. Al
      #3 Al Gäste 14. August 2019 12:51
      11
      Unter dem Bild befindet sich ein Link „Hier ist der Starting_with_Arduino_OLED.ino CODE unseres Programms:“
  3. Alex
    #4 Alex Gäste 13. November 2019 20:01
    9
    Nicht VOID SETUP oder VOID LOOP, sondern void setup(); und void loop(); Die C-Sprache ist eine Sprache, bei der die Groß-/Kleinschreibung beachtet wird.
  4. Gast Alex
    #5 Gast Alex Gäste 14. Januar 2020 03:00
    6
    >Schritt 4: ...in meinem Fall OLED mit Adresse 0x3F.
    und dann
    >Im VOID SETUP... die Adresse unseres Displays 0x3C, was wir in „Schritt #4“ gelernt haben.
    Wie ist das?
  5. Gast Alex
    #6 Gast Alex Gäste 14. Januar 2020 03:10
    9
    Danke! Ich habe alles nach Anleitung am Atmega328 Pro Mini gemacht und die gekauften 0,96" überprüft. Es stellte sich heraus, dass beide funktionierten. Arduino IDE 1.8.10
  6. Leser
    #7 Leser Gäste 3. März 2020 21:50
    4
    Danke, lehrreich, alles funktioniert!
  7. Ildar Xafizov
    #8 Ildar Xafizov Gäste 19. April 2020 19:15
    5
    Ich habe eine Frage. Auf dem Foto (zweites Foto) sind zwei OLED-Displays zu sehen, die mit Ihrem identisch sind. Ich weiß nicht, welche Jumper ich zum Ändern der Adresse verwenden soll?
  8. Gast Maxim
    #9 Gast Maxim Gäste 31. Oktober 2020 18:53
    11
    Vielen Dank für den Artikel.Aber ich habe ein Problem: Die Pixel in den Buchstaben leuchten abwechselnd und die Schrift ist größer als sie sein sollte. Anscheinend erkennt der Arduino die Bildschirmauflösung nicht. Wenn jemand das gleiche Problem hat, können Sie es wie folgt lösen:
    #define SCREEN_WIDTH 128 // Breite des OLED-Displays in Pixel
    #define SCREEN_HEIGHT 64 // Höhe des OLED-Displays in Pixel
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  9. Dmitriy
    #10 Dmitriy Gäste 9. Mai 2021 19:35
    7
    Danke! Nicht alles hat auf Anhieb geklappt. Tatsächlich war die Adresse auf dem Display 128*64, nicht 0x3D, sondern 0x3C. Und ich habe die Bibliotheken „von der Mitte“ der Versionen an neu angeordnet. Nicht das neueste, weil... Es gab eine Meldung über den kritischen Wert des Speichers (ich habe ein Arduino Uno).

Eingelegte rote Zwiebel (für Canapés, Salate, Burger und Pilaw)

Einen Sonnenuntergang am Meer zeichnen und eine alte Tür dekorieren | Mach es selbst

DIY-Wunschbuch für einen Jungen | Mach es selbst

So zerlegen und schmieren Sie ein Bohrfutter

«Machen Sie es selbst – mit Ihren eigenen Händen» - eine Seite mit interessanten hausgemachten Produkten, die aus Abfallmaterialien und Haushaltsgegenständen hergestellt werden. Schritt-für-Schritt-Meisterkurse mit Fotos und Beschreibungen, Technologien, Life-Hacks – alles, was ein echter Meister oder einfach nur ein Handwerker für Handarbeiten braucht. Kunsthandwerk jeder Komplexität, eine große Auswahl an Richtungen und Ideen für Kreativität.

Wir empfehlen die Lektüre

Fehlercodes für Waschmaschinen