ESP32 - LED-Matrix

LED-Matrixanzeigen, auch bekannt als LED-Anzeigen oder Punktmatrixanzeigen, sind weit verbreitet. In diesem Tutorial werden wir lernen:

Danach können Sie den Code leicht an andere LED-Matrizen anpassen, z. B. an die 16x8-LED-Matrix und die 64x8-LED-Matrix.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
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-Matrixanzeige

Es gibt viele Arten von LED-Matrizen. Mit dem ESP32 wird die MAX7219-basierte LED-Matrix häufig eingesetzt. Die auf dem MAX7219 basierende LED-Matrix hat die folgenden Merkmale:

  • Eine Basiseinheit einer LED-Matrix ist ein Block.
  • Jeder Block verfügt über eine 8×8-LED-Matrix (64 LEDs) und einen MAX7219-Treiber.
  • Es gibt zwei beliebte Blockformen: das generische Modul und das FC-16-Modul.
  • Eine LED-Matrix kann aus einem einzelnen Block oder mehreren Blöcken in einer Daisy-Kette bestehen.
  • Sie können eine vorgefertigte LED-Matrix mit mehreren Blöcken kaufen (z. B. 4-in-1, 8-in-1).
  • Sie können auch mehrere Blöcke kaufen und sie verdrahten, um eine LED-Matrix in der gewünschten Größe zu bilden.
  • Sie geben die Größe der LED-Matrix an, die Sie im ESP32-Code verwenden.

Pinbelegung

LED-Matrix-Pinbelegung

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

  • Eingangs-Pin-Gruppe:
    • VCC: verbindet sich mit 5 V.
    • GND: verbindet sich mit GND.
    • DIN ist der Datenpin, Verbinde ihn mit einem beliebigen digitalen Pin des ESP32.
    • CS: Chip-Select, Verbinde ihn mit einem beliebigen digitalen Pin des ESP32.
    • CLK: Clock-Pin, Verbinde ihn mit einem beliebigen digitalen Pin des ESP32.
  • Ausgangs-Pin-Gruppe:
    • VCC: verbindet sich mit dem VCC der Eingangs-Pin-Gruppe des nächsten Moduls.
    • GND: verbindet sich mit dem GND der Eingangs-Pin-Gruppe des nächsten Moduls.
    • DOUT: Daten-Ausgang, Verbinde ihn mit dem DIN-Pin der Eingangs-Pin-Gruppe des nächsten Moduls.
    • CS: Verbinde ihn mit dem CS der Eingangs-Pin-Gruppe des nächsten Moduls.
    • CLK: Verbinde ihn mit dem CLK der Eingangs-Pin-Gruppe des nächsten Moduls.

Verdrahtungsdiagramm

Wenn die LED-Matrix aus einem einzigen Block besteht:

  • Verbinde die Gruppen der Eingangspins mit dem ESP32
  • Lass die Gruppe der Ausgangspins unverbunden
ESP32 8×8 LED-Matrix FC-16 Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

ESP32 8×8 LED-Matrix generisches Verdrahtungsdiagramm

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

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

  • Verbinde die Gruppen der Eingangspins mit dem ESP32
  • Lass die Gruppe der Ausgangspins unverbunden
ESP32 LED-Matrixanzeige Verdrahtungsdiagramm

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

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

  • Verbinde die Eingangs-Pin-Gruppen des ersten Blocks mit dem ESP32
  • Verbinde die Ausgangs-Pin-Gruppen jedes Blocks mit den Eingangs-Pin-Gruppen des nächsten Blocks
  • Lass die Ausgangs-Pin-Gruppe am letzten Block unverbunden
ESP32 32×8 LED-Matrix-Verdrahtung FC-16-Diagramm

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

ESP32 32×8 LED-Matrix-Verkabelung Generisches Diagramm

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

Da das Display viel Strom zieht (bis zu 1 A bei maximaler Helligkeit):

  • Verwenden Sie nicht die Versorgung über den 5V-Pin des ESP32.
  • Verwenden Sie stattdessen eine externe 5V-Stromversorgung. ESP32 und LED-Matrix können gemeinsam von einem 5V-Netzteil versorgt werden.

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

  • Pin GPIO18 (SCK) und GPIO23 (MOSI) am ESP32
  • Pin GPIO21 (CS) kann auf jeden beliebigen Pin geändert werden

Wie man eine LED-Matrix programmiert

Es ist nicht einfach, die LED-Matrix zu steuern. Zum Glück stehen Bibliotheken zur Verfügung, die es erleichtern. Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung, wie man ESP32-Code schreibt, um die LED-Matrix zu steuern.

  • Bibliotheken einbinden:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • Geben Sie an, welche Hardware verwendet wird: GENERIC_HW oder FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • Bestimmen Sie, wie viele LED-Blöcke verwendet werden. Zum Beispiel hat eine 4-in-1-LED-Matrix 4 Blöcke.
#define MAX_DEVICES 4
  • Definieren Sie den Pin, der mit dem CS-Pin der LED-Matrix verbunden ist. Zum Beispiel Pin GPIO21.
#define CS_PIN 21
  • Erstellen Sie eine neue Instanz der MD_Parola-Klasse für die LED-Matrixanzeige.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Code in der setup()-Funktion:
void setup() { ledMatrix.begin(); // Initialisiere das Objekt ledMatrix.setIntensity(0); // Setze die Helligkeit des LED-Matrix-Displays (von 0 bis 15) ledMatrix.displayClear(); // Lösche das LED-Matrix-Display }
  • Text anzeigen, Zahl anzeigen und animierte Effekte zeigen: Siehe den nächsten Teil

ESP32 - LED-Matrix-Code

Der untenstehende Code ist für die 32×8 FC-16 LED-Matrixanzeige (4 Blöcke). Sie können ihn jedoch einfach auf 8×8, 16×8, 64×8 anpassen.

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-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 21 // 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

  • Wenn dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie wie man die Umgebung für ESP32 in der Arduino IDE einrichtet.
  • Verbinden Sie die Verkabelung wie im obigen Bild.
  • Schließen Sie das ESP32-Board über ein Micro-USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Klicken Sie auf das Bibliotheken-Symbol in der linken Symbolleiste der Arduino IDE.
  • Suchen Sie “MD_Parola”, und finden Sie dann die MD_Parola-Bibliothek.
  • Klicken Sie auf die Installieren-Schaltfläche.
ESP32 MD_Parola-Bibliothek
  • Sie werden aufgefordert, die “MD_MAX72XX”-Bibliothek zu installieren
  • Klicken Sie auf die Schaltfläche Alle installieren, um die Abhängigkeit zu installieren.
ESP32 MD_MAX72XX-Bibliothek
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE.
  • Klicke in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf den ESP32 hochzuladen.
  • Sieh dir die LED-Matrixanzeige an.

ESP32 LED-Matrix Code – Scrollender Text

Wenn Sie eine lange Nachricht drucken möchten, die zu lang ist, um auf einem LED-Matrix-Display zu passen, können Sie die Technik des Scroll-Text-Effekts verwenden.

Der unten stehende ESP32-Code zeigt, wie man eine Nachricht auf dem LED-Matrix-Display scrollt.

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-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 21 // 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("ESP32", PA_CENTER, PA_SCROLL_LEFT, 100); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

Für weitere Texteffekte besuchen Sie bitte MD_Parola Library Reference.

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.

Verwandte Tutorials

※ 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!