ESP8266 - LED-Matrix

Dieses Tutorial erklärt Ihnen, wie Sie den ESP8266 mit einer LED-Matrixanzeige verwenden. Im Detail werden wir lernen:

Sobald das erledigt ist, wird es einfach sein, den Code für andere LED-Matrizen anzupassen, zum Beispiel für eine 16×8-LED-Matrix oder eine 64×8-LED-Matrix ...

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×FC-16 LED Matrix 32x8
1×FC-16 LED Matrix 8x8
1×Generic LED Matrix 8x8
1×Verbindungskabel
1×DC-Stromanschluss
1×5V Power Adapter for ESP8266
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über LED-Matrix

LED-Matrixanzeigen werden allgemein als LED-Displays oder Dot-Matrix-Displays bezeichnet.

LED-Matrixanzeige

LED-Matrizen gibt es in vielen Varianten. Die MAX7219-basierte LED-Matrix wird häufig mit dem ESP8266 verwendet. Sie hat die folgenden Eigenschaften:

  • Ein einzelner Block besteht aus einer 8x8-LED-Matrix (64 LEDs) und einem MAX7219-Treiber.
  • Es gibt zwei gängige Blocktypen: ein generisches Modul und ein FC-16-Modul.
  • Sie können entweder eine vorgefertigte Mehrblock-LED-Matrix erwerben (z. B. 4-in-1, 8-in-1) oder mehrere Blöcke zu einer LED-Matrix Ihrer gewünschten Größe zusammenschließen.
  • Die Größe der verwendeten LED-Matrix muss im ESP8266-Code festgelegt werden.

Die LED-Matrix-Pinbelegung

LED-Matrix-Pinbelegung

Eine LED-Matrix besteht aus einem oder mehreren Blöcken. Jeder Block hat zwei Gruppen von Pins:

  • Gruppe der Eingangspins:
    • VCC: mit 5-V-Stromversorgung verbunden.
    • GND: mit Masse verbunden.
    • DIN: Datenpin, verbunden mit jedem digitalen Pin des ESP8266.
    • CS: Chip-Select, verbunden mit jedem digitalen Pin des ESP8266.
    • CLK: Clock-Pin, verbunden mit jedem digitalen Pin des ESP8266.
  • Gruppe der Ausgangspins:
    • VCC: verbindet sich mit dem VCC des nächsten Blocks.
    • GND: verbindet sich mit GND des nächsten Blocks.
    • DOUT: Datenausgang, verbindet sich mit dem DIN-Pin des nächsten Blocks.
    • CS: verbindet sich mit dem CS des nächsten Blocks.
    • CLK: verbindet sich mit dem CLK des nächsten Blocks.

Verdrahtungsdiagramm

Wenn die LED-Matrix aus einem einzigen Block besteht:

  • Verbinde die Eingangspins mit dem ESP8266
  • Lass die Ausgangspins unverbunden
ESP8266 NodeMCU 8×8 LED-Matrix FC-16 Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266 NodeMCU 8x8 LED-Matrix generisches Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn die LED-Matrix aus mehreren Blöcken besteht:

  • Verbinde die Gruppe der Eingangspins mit dem ESP8266
  • Lasse die Gruppe der Ausgangspins unverbunden
Verdrahtungsdiagramm für ESP8266 NodeMCU LED-Matrixanzeige

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie die LED-Matrix aus mehreren Blöcken herstellen:

  • Verbinde die Gruppen der Eingangspins des ersten Blocks mit dem ESP8266.
  • Verbinde die Gruppen der Ausgangspins jedes Blocks mit den Gruppen der Eingangspins des nachfolgenden Blocks.
  • Lass die Gruppe der Ausgangspins des letzten Blocks unverbunden.
ESP8266 NodeMCU 32×8 LED-Matrix-Verkabelung FC-16-Diagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Aufgrund der hohen Stromaufnahme des Displays (bis zu 1 A bei maximaler Helligkeit):

  • Vermeiden Sie es, es über den 5V-Pin des ESP8266 mit Strom zu versorgen.
  • Verwenden Sie stattdessen eine externe 5V-Stromversorgung. ESP8266 und LED-Matrix können beide von einem einzigen 5V-Netzteil betrieben werden.

Da der ESP8266 über SPI-Pins mit der LED-Matrix verbunden ist:

  • Pin D5 (SCK) und D7 (MOSI) am ESP8266 müssen verwendet werden. Falls ein anderes ESP8266-Board verwendet wird, konsultieren Sie die offizielle Dokumentation, um die entsprechenden SPI-Pins zu finden.
  • Pin D8 (CS) kann auf jeden Pin des ESP8266-Boards eingestellt werden.

Wie man eine LED-Matrix programmiert

Es ist keine einfache Aufgabe, die LED-Matrix zu steuern. Glücklicherweise gibt es Bibliotheken, die es viel einfacher machen. Hier ist eine Schritt-für-Schritt-Anleitung, wie man ESP8266-Code schreibt, um die LED-Matrix zu steuern:

  • Bibliotheken einbinden:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • Geben Sie den Typ der zu verwendenden Hardware an: GENERIC_HW oder FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • Geben Sie die Anzahl der verwendeten LED-Blöcke an. Zum Beispiel enthält eine 4-in-1-LED-Matrix 4 Blöcke.
#define MAX_DEVICES 4
  • Geben Sie den Pin an, der mit dem CS-Pin der LED-Matrix verbunden ist. Zum Beispiel Pin D3.
#define CS_PIN D8
  • Generiere ein MD_Parola-Objekt, das mit dem LED-Matrix-Display verwendet wird.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Code befindet sich in der setup()-Funktion:
void setup() { ledMatrix.begin(); // Objekt initialisieren ledMatrix.setIntensity(0); // Helligkeit der LED-Matrixanzeige einstellen (von 0 bis 15) ledMatrix.displayClear(); // LED-Matrixanzeige löschen }
  • Text, numerische Werte und animierte Effekte anzeigen: siehe den folgenden Abschnitt.

ESP8266 - LED-Matrix-Code

Dieser Code eignet sich für ein 32×8 FC-16 LED-Matrix-Display, das aus vier Blöcken besteht. Er lässt sich leicht an andere Größen anpassen, wie z. B. 8×8, 16×8 und 64×8.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN D8 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the LED Matrix ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear LED matrix display } void loop() { ledMatrix.setTextAlignment(PA_LEFT); ledMatrix.print("Left"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.print("Center"); // display text delay(2000); ledMatrix.setTextAlignment(PA_RIGHT); ledMatrix.print("Right"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.setInvert(true); ledMatrix.print("Invert"); // display text inverted delay(2000); ledMatrix.setInvert(false); ledMatrix.print(1234); // display number delay(2000); }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino-IDE an, falls du ESP8266 zum ersten Mal verwendest.
  • Verbinde die Bauteile gemäß dem Diagramm.
  • Verbinde das ESP8266-Board mit deinem Computer über ein USB-Kabel.
  • Öffne die Arduino-IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und den jeweiligen COM-Port.
  • Schließe den ESP8266 an die LED-Matrix an, wie im Verdrahtungsdiagramm gezeigt.
  • Verbinde den ESP8266 mit einem PC über ein USB-Kabel.
  • Klicke auf das Libraries-Symbol in der linken Leiste der Arduino-IDE.
  • Suche nach “MD_Parola”, finde dann die MD_Parola-Bibliothek.
  • Drücke den Install-Knopf.
ESP8266 NodeMCU MD_Parola-Bibliothek
  • Sie werden gebeten, die “MD_MAX72XX” Bibliothek zu installieren
  • Klicken Sie auf die Schaltfläche Alle installieren, um die Abhängigkeit zu installieren.
ESP8266 NodeMCU MD_MAX72XX Bibliothek
  • Die Nachricht
  • Kopiere den Code und öffne ihn mit der Arduino IDE.
  • Klicke auf die Schaltfläche Hochladen in der Arduino IDE, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
  • Schau dir die LED-Matrix an, die die Nachricht anzeigt.

ESP8266 LED-Matrix-Code – Scrollender Text

Wenn eine Nachricht zu lang ist, um auf einer LED-Matrix angezeigt zu werden, kann der Scrolltext-Effekt verwendet werden. Dadurch kann die gesamte Nachricht gesehen werden.

Dieser ESP8266-Code veranschaulicht, wie man eine Nachricht über ein LED-Matrix-Display scrollt.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN D8 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display ledMatrix.displayScroll("ESP8266", PA_CENTER, PA_SCROLL_LEFT, 100); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

Wenn Sie nach weiteren Texteffekten suchen, schauen Sie sich die MD_Parola-Bibliotheksreferenz an.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!