Zeigen Sie das Bild auf dem OLED -Bildschirm mit ESPTOP 10 mit Arduino IDE an

Zeigen Sie das Bild auf dem OLED -Bildschirm mit ESPTOP 10 mit Arduino IDE an
ESP32 ist eine kleine kompakte Mikrocontroller -Karte mit minimalem Strombedarf. In den letzten Jahren hat ESP32 aufgrund seiner Vielseitigkeit und Benutzerfreundlichkeit einen enormen Erfolg gewonnen. In vielen Projekten, bei denen die Ausgabe auf einem seriellen Monitor angezeigt werden muss. Anstatt dies zu tun, können wir ein OLED -Display mit ESP32 interpretieren. Diese Lektion wird ein Leitfaden für die Schnittstelle von ESP32 mit I2C 0 sein.96 -Zoll -OLED -Display.

Diese Lektion enthält folgende Themen:

  • 1: Einführung in die OLED -Anzeige
  • 2: Verkabelung OLED -Anzeigemodul zu ESP32
  • 3: Installation der erforderlichen Bibliotheken
  • 4: Überprüfen Sie die I2C -Adresse der OLED -Anzeige
  • 5: Anzeigen Sie das Bild auf dem OLED -Bildschirm mit ESP32 mit Arduino IDE an
  • 5.1: Konvertieren des Bildes in den Hex -Code konvertieren
  • 5.2: Code
  • 5.3: Beispiel Arduino -Code für die Bildanzeige
  • 5.4: Ausgabe

1: Einführung in die OLED -Anzeige

Bevor wir uns zuerst weiter bewegen, müssen wir wissen, was für eine OLED (Organisches Licht emittierender Diode) Anzeige ist. OLED -Anzeigen werden als Alternative für LCD verwendet. OLED -LEDs werden verwendet, um leichte Displays auf OLED -Bildschirmen zu erzeugen. Der LCD -Bildschirm verwendet Hintergrundbeleuchtung, um seine Pixel zu beleuchten, während OLED -Displays ihre eigenen selbstemissionen LEDs haben. Es gibt Hunderte von selbstilluminierenden LEDs. Um Bilder und die Texthelligkeit dieser LEDs anzuzeigen, können Pixel von Pixel gesteuert werden.

Nun, wie wir einige Grundlagen im Zusammenhang mit OLED -Displays kennen. Der nächste Schritt besteht darin, ESP32 mit einem OLED -Anzeigemodul zu verdrahten.

2: Verkabelung OLED -Anzeigemodul zu ESP32

Das OLED -Display wird hauptsächlich mit zwei verschiedenen Kommunikationsprotokollen ausgestattet. Die beiden Protokolle sind I2C und SPI. Die serielle periphere Grenzfläche (SPI) ist im Allgemeinen schneller als I2C, aber wir haben I2C gegenüber dem SPI -Protokoll vorgezogen, da es weniger Anzahl von Stiften erforderte.

Das folgende Bild zeigt das ESP32 -Verbindungsdiagramm mit 128 × 64 Pixel (0.96 ") OLED -Anzeige.

Unten finden Sie die Verbindungstabelle:

Sobald ESP32 mit einer OLED -Anzeige miteinander verbunden ist, wird der nächste Schritt in der Liste alle erforderlichen Bibliotheken für die ESP32 -Programmierung mit Arduino IDE installiert.

3: Installation der erforderlichen Bibliotheken

In Arduino IDE sind mehrere Bibliotheken erhältlich, um ESP32 mit einer OLED -Anzeige zu programmieren. Hier verwenden wir zwei Bibliotheken von Adafruit: SSD1306 und GFX Library.

Jetzt im Arduino IDE Open Library Manager und suchen Sie nach der SSD1306 -Bibliothek. Installieren Sie die SSD1306 -Bibliothek mit Adafruit aus der Suchleiste.

Alternativ kann man auch gehen: Skizze> Bibliothek einschließen> Bibliotheken verwalten

Die nächste Bibliothek, die wir installieren müssen, ist die GFX Bibliothek von Adafruit.

Nachdem beide Bibliotheken erfolgreich installiert wurden, besteht der nächste Schritt darin, die I2C -Adresse zu überprüfen, an der ESP32 verbunden ist.

4: Überprüfen Sie die I2C -Adresse der OLED -Anzeige

I2C steht für die Kommunikation zwischen integriertem Schaltungskreislauf. Mit I2C können wir mehrere Geräte über 2 Drähte interfesten. Während das Verbinden jedes i2C -Geräts eine separate I2C -Adresse verwenden muss. Diese Adresse reicht von 0 bis 127. Wenn wir beispielsweise zwei verschiedene I2C -Geräte haben, die dieselbe i2C -Adresse verwenden, können sie nicht an derselben i2c -Linie verbunden werden.

Denken Sie vor dem Schnittstellen von ESP32 mit I2C -Geräten daran, zuerst die I2C -Adresse zu überprüfen. So laden Sie den Code in der Artikelprüfung i2C mit Arduino IDE die in der Artikelprüfung i2C -Adresse angegebene Code hoch, um die I2C -Adresse des angeschlossenen OLED -Displays zu überprüfen.

Nach dem Hochladen der Code i2c -Adresse finden Sie im Serienmonitor. Hier in unserem Fall ist das OLED -Display unter der I2C -Adresse (0x3c) angeschlossen.

Wir werden die genannte I2C -Adresse für die OLED -Anzeige in Arduino Code verwenden.

5: Anzeigen Sie das Bild auf dem OLED -Bildschirm mit ESP32 mit Arduino IDE an

Der erste Schritt, der benötigt wird, um ein Bild auf einem OLED -Bildschirm anzuzeigen, besteht darin, das Bild in einen Hex -Code umzuwandeln. Verwenden eines Online -Bildes zum Hex -Konverter können wir Hex -Code gegen ein Bild erhalten.

1: Konvertieren des Bildes in den Hex -Code konvertieren

Um ein Bild in den HEX -Code umzuwandeln, können wir jedes Online -Tool verwenden oder ein Bild mithilfe des Windows Paint -Tools auch in den Hex -Code konvertieren. Folgen Sie nun den Schritten, um den Hex -Code für Ihr Bild zu erhalten.

Schritt 1: Klicken Sie hier, um kostenlosen Image2CPP -Konverter zu besuchen.

Schritt 2: Wählen Sie das Bild aus, das wir auf OLED anzeigen möchten.

Schritt 3: Nach Auswahl des Bildes Klicken Sie auf Öffnen.

Schritt 4: In der Bildeinstellung setzen Sie die Abmessungen auf 128 x 64. Die Helligkeit kann gemäß der von der empfohlenen Zahl festgelegt werden.

Skalieren Sie das Bild gemäß der Größe und als Referenz finden Sie in der Ausgangsvorschau.

Schritt 5: Setzen Sie nun das Codeausgaberformat in Arduino -Code und Präfix als Bitmap fest. Danach klicken Sie auf Code generieren. Der Ausgangs -Hex -Code kann aus dem Ausgangsfenster kopiert werden.

Ersetzen Sie den kopierten Hex -Code in Arduino IDE -Beispielcode unten angegeben.

2: Code

Öffnen Sie nun die Arduino -IDE und fügen Sie den angegebenen Code ein. Denken Sie daran, den Hex -Code durch den für das Bild zu ersetzen, den Sie auf einem OLED -Bildschirm anzeigen müssen.

/****** LinuxHint.Com ********//
#enthalten
#enthalten
#enthalten
#define screen_width 128
#define screen_height 64
Adafruit_ssd1306 display (screen_width, screen_height & draht, -1);
static const uint8_t image_hex_array [1024] =
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, 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, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xfd, 0xb0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xfc, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xfe, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xfe, 0x4f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0x8f, 0x3e, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0x0f, 0x1e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x8f, 0xbe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0xff, 0xe6, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0x3f, 0x8e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x00, 0x0e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x80, 0x3e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe0, 0x7e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xFe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xfc, 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, 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, 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, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0x7f, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfc, 0xcf, 0xff, 0xff, 0xff, 0xf1, 0xfe, 0x3f, 0xf9, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfc, 0xcf, 0xff, 0xff, 0xff, 0xf1, 0xfe, 0x3f, 0xf8, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xf8, 0xff, 0x8e, 0xff, 0xff, 0xff, 0xff,
0xff, 0x0c, 0xcf, 0x8f, 0x3e, 0x47, 0x90, 0x1e, 0x3c, 0x38, 0x1f, 0x8e, 0x1f, 0xff, 0xff, 0xff,
0xf8, 0x0c, 0xce, 0x03, 0x3e, 0x47, 0x90, 0x06, 0x30, 0x18, 0x1f, 0x1e, 0x07, 0xff, 0xff, 0xff,
0xf0, 0x3c, 0xcc, 0x03, 0x3e, 0x47, 0x90, 0x06, 0x20, 0x08, 0x3f, 0x1f, 0x81, 0xff, 0xff, 0xff,
0xf0, 0xfc, 0xcc, 0xf1, 0x3e, 0x60, 0x10, 0xe2, 0x23, 0x88, 0xfe, 0x3f, 0xe1, 0xff, 0xff, 0xff,
0xf0, 0x3c, 0xcc, 0xf9, 0x3e, 0x60, 0x31, 0xe2, 0x23, 0xc8, 0xFe, 0x3f, 0x81, 0xff, 0xff, 0xff,
0xf8, 0x1c, 0xcc, 0xf9, 0x3e, 0x60, 0x11, 0xe2, 0x23, 0xc8, 0xfc, 0x7e, 0x07, 0xff, 0xff, 0xff,
0xff, 0x0c, 0xcc, 0xf9, 0x1c, 0x47, 0x91, 0xe2, 0x23, 0xc8, 0x7c, 0x7e, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xfc, 0xcc, 0xf9, 0x80, 0xc7, 0x91, 0xe2, 0x23, 0xcc, 0x18, 0xfe, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfc, 0xcc, 0xf9, 0xc1, 0xc7, 0x91, 0xe2, 0x23, 0xc6, 0x11, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf3, 0x37, 0xcf, 0xbf, 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, 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, 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 ()
Serie.Beginnen Sie (115200); // Baudrate für die serielle Kommunikation
Wenn(!Anzeige.Start (SSD1306_Switchcapvcc, 0x3c))
Serie.println (f ("SSD1306 -Allokation fehlgeschlagen");
für(;;);

Verzögerung (2000); // Verzögerung 2 Sekunden
Anzeige.ClearDisplay (); // Anzeigepuffer löschen
Anzeige.Draffitmap (0, 0, Image_hex_array, 128, 64, 1);
Anzeige.Anzeige();

void Loop ()

Der Code importierte mit dem Importieren der erforderlichen Bibliotheken, die wir zuvor installiert haben. Zwei Bibliotheken sind die Draht- und Adafruit -Bibliothek. Mit Drahtbibliotheken können wir i2c verwenden, während Adafruit den geschriebenen Text auf dem Bildschirm anzeigt.

Der nächste folgende Befehl wird geschrieben:

Adafruit_ssd1306 display (screen_width, screen_height & draht, -1);

Es enthält die BILDSCHIRMBREITE Und Screen_height Variablen. Mit diesen Variablen haben wir die Größe der OLED -Anzeige definiert. Hier haben wir ein 128 × 64 OLED -Display verwendet. Danach &Kabel Objekt wird für die Anzeige definiert.

Der letzte Parameter enthält (-1), Diese Anzeige, dass der von uns verwendete OLED -Bildschirm keine externe Reset -Taste enthält. Falls wir eine Reset -Taste auf der OLED -Anzeige haben. Wir werden diesen Parameter an einen GPIO -Pin übergeben. Nach dem Drücken der Reset -Taste zeigt der OLED -Bildschirm den Text an.

In der Mitte des Codes haben wir den Hex -Code für das Bild aufgenommen und danach die I2C -Kommunikation unter der I2C -Adresse initialisiert (0x3c) ist definiert, was wir früher mit i2c Scannercode gefunden haben.

In den letzten Codezeilen wird das Hex -Array mit der Bitmap -Funktion auf OLED gedruckt.

3: Beispiel Arduino -Code für die Bildanzeige

Hier ist ein Code für die OLED -Schnittstelle mit ESP32. Ersetzen Sie in der folgenden Codevorlage den Hex -Code des Bildes, den Sie auf dem OLED -Bildschirm anzeigen möchten.

/****** LinuxHint.Com ********//
#enthalten
#enthalten
#enthalten
#define screen_width 128
#define screen_height 64
Adafruit_ssd1306 display (screen_width, screen_height & draht, -1);
static const uint8_t image_hex_array [1024] =
/*******
*******
*******
[HEX -Code für das Bild hier einfügen]
*******
*******
*******/
;
void setup ()
Serie.Beginnen Sie (115200); // Baudrate für die serielle Kommunikation
Wenn(!Anzeige.Start (SSD1306_Switchcapvcc, 0x3c))
Serie.println (f ("SSD1306 -Allokation fehlgeschlagen");
für(;;);

Verzögerung (2000); // Verzögerung 2 Sekunden
Anzeige.ClearDisplay (); // Anzeigepuffer löschen
Anzeige.Draffitmap (0, 0, Image_hex_array, 128, 64, 1);
Anzeige.Anzeige();

void Loop ()

4: Ausgabe

Hier in Output sehen wir das offizielle Logo -Design -Bild von LinuxHint, das wir früher in den Hex -Code konvertiert haben.

Wir haben Bilder auf einem OLED -I2C -Display erfolgreich angezeigt. Verwenden der gleichen Schritte, jedes Bild mit korrektem Anteil kann auf einem OLED -Bildschirm angezeigt werden.

Abschluss

Ein OLED -Display ist eine großartige Möglichkeit, Ausgänge anzuzeigen, ohne dass ein serieller Monitor oder PC erforderlich ist. OLED -Displays sind mit zwei verschiedenen Protokollen I2C und SPI ausgestattet. I2C -OLED -Displays werden aufgrund einer geringeren Anzahl von Drähten bevorzugt. Diese Lektion enthält alle Schritte, die für die Anzeige eines Bildes auf einer OLED -I2C -Anzeige mit ESP32 mit der Arduino -IDE erforderlich sind.