ESP32 C3 Super Mini - LED-Matrix

Eine LED-Matrix-Anzeige, auch Punktmatrix-Anzeige genannt, ist eine günstige und einfache Möglichkeit, Text und Zahlen anzuzeigen. Dieses Tutorial zeigt Ihnen, wie Sie eine MAX7219-LED-Matrix mit dem ESP32 C3 Super Mini über nur drei Signalleitungen ansteuern.

In diesem Tutorial lernen Sie:

Danach können Sie den Code leicht für andere Größen wie eine 16x8- oder 64x8-LED-Matrix anpassen.

ESP32 C3 Super Mini - LED-Matrix

Erforderliche Hardware

1×ESP32 C3 Super Mini
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

Oder Sie können die folgenden Kits kaufen:

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.

Überblick über LED Matrix

LED-Matrix-Anzeige

Eine LED-Matrix ist ein Raster aus LEDs, das von einem kleinen Chip angesteuert wird, sodass Sie jeden Punkt einzeln steuern können. Mit dem ESP32 C3 Super Mini ist die LED-Matrix auf MAX7219-Basis die beliebteste Wahl.

Wichtige Merkmale:

  • Block: Die Grundeinheit einer LED-Matrix ist ein Block.
  • Innerhalb eines Blocks: Jeder Block besteht aus einer 8x8-LED-Matrix (64 LEDs) und einem MAX7219-Treiber.
  • Zwei Bauformen: Es gibt zwei gängige Blockformen, das Generic-Modul und das FC-16-Modul.
  • Einer oder viele: Eine LED-Matrix kann aus einem Block oder aus vielen in Reihe geschalteten (Daisy-Chain) Blöcken bestehen.
  • Fertig aufgebaut: Sie können eine fertig aufgebaute Mehrblock-LED-Matrix kaufen (zum Beispiel 4-in-1 oder 8-in-1).
  • Selbst bauen: Sie können auch einzelne Blöcke kaufen und sie zu jeder gewünschten Größe verdrahten.
  • Im Code: Die Größe der LED-Matrix legen Sie im ESP32 C3 Super Mini Code fest.

Technische Daten:

  • Treiberchip: MAX7219
  • Versorgungsspannung: 5V
  • Logikpegel: funktioniert mit den 3,3-V-Signalen des ESP32 C3 Super Mini
  • Schnittstelle: SPI (drei Signalleitungen: DIN, CS, CLK)
  • Helligkeitsstufen: 16 Stufen, von 0 bis 15
  • Stromaufnahme: bis zu etwa 1A pro Anzeige bei voller Helligkeit

Pinbelegung

LED-Matrix-Pinbelegung

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

Gruppe der Eingangspins:

  • VCC: wird mit 5V verbunden.
  • GND: wird mit GND verbunden.
  • DIN: Datenpin. Verbinden Sie ihn mit einem GPIO-Pin des ESP32 C3 Super Mini.
  • CS: Chip Select. Verbinden Sie ihn mit einem GPIO-Pin des ESP32 C3 Super Mini.
  • CLK: Taktpin. Verbinden Sie ihn mit einem GPIO-Pin des ESP32 C3 Super Mini.

Gruppe der Ausgangspins:

  • VCC: wird mit VCC der Eingangspin-Gruppe des nächsten Moduls verbunden.
  • GND: wird mit GND der Eingangspin-Gruppe des nächsten Moduls verbunden.
  • DOUT: Datenausgang, wird mit dem DIN-Pin der Eingangspin-Gruppe des nächsten Moduls verbunden.
  • CS: wird mit CS der Eingangspin-Gruppe des nächsten Moduls verbunden.
  • CLK: wird mit CLK der Eingangspin-Gruppe des nächsten Moduls verbunden.

Verdrahtungsdiagramm

Der ESP32 C3 Super Mini kommuniziert über SPI mit der LED-Matrix, daher werden nur drei Signalleitungen benötigt.

LED-Matrix-Pin ESP32 C3 Super Mini Pin
VCC 5V (externe Versorgung)
GND GND
DIN GPIO6 (MOSI)
CS GPIO7
CLK GPIO4 (SCK)
  • Hinweis: GPIO4 (SCK) und GPIO6 (MOSI) sind die Hardware-SPI-Pins. Lassen Sie sie unverändert.
  • Hinweis: GPIO7 ist der CS-Pin. Sie können ihn auf einen anderen freien GPIO-Pin ändern, wenn Sie ihn auch im Code ändern.
  • Hinweis: Die GND des ESP32 C3 Super Mini und die GND des Netzteils müssen miteinander verbunden sein.
  • Hinweis: Prüfen Sie VCC und GND immer zweimal, bevor Sie die Anzeige einschalten.

Wenn die LED-Matrix aus einem einzelnen Block besteht:

  • Verbinden Sie die Eingangspin-Gruppe mit dem ESP32 C3 Super Mini
  • Lassen Sie die Ausgangspin-Gruppe unbeschaltet
ESP32 C3 Super Mini 8x8 LED-Matrix FC-16 Schaltplan

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

ESP32 C3 Super Mini 8x8 LED-Matrix Generic Schaltplan

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

Wenn die LED-Matrix ein fertig aufgebautes Mehrblock-Modul ist:

  • Verbinden Sie die Eingangspin-Gruppe mit dem ESP32 C3 Super Mini
  • Lassen Sie die Ausgangspin-Gruppe unbeschaltet
ESP32 C3 Super Mini LED-Matrix-Anzeige Schaltplan

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

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

  • Verbinden Sie die Eingangspin-Gruppe des ersten Blocks mit dem ESP32 C3 Super Mini
  • Verbinden Sie die Ausgangspin-Gruppe jedes Blocks mit der Eingangspin-Gruppe des nächsten Blocks
  • Lassen Sie die Ausgangspin-Gruppe des letzten Blocks unbeschaltet
ESP32 C3 Super Mini 32x8 LED-Matrix FC-16 Schaltplan

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

WARNING

Die Anzeige zieht viel Strom, bei maximaler Helligkeit bis zu 1A.

  • Versorgen Sie die LED-Matrix nicht über den 5V-Pin des ESP32 C3 Super Mini.
  • Verwenden Sie stattdessen ein externes 5V-Netzteil.
  • Der ESP32 C3 Super Mini und die LED-Matrix können sich dasselbe 5V-Netzteil teilen.

Wie man die LED-Matrix programmiert

Einen MAX7219 von Hand anzusteuern ist schwierig, aber mit einer Bibliothek wird es einfach. Nachfolgend die Schritte, um ESP32 C3 Super Mini Code für die LED-Matrix zu schreiben.

  • Binden Sie die Bibliotheken ein:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • Teilen Sie der Bibliothek mit, welche Hardware Sie haben: GENERIC_HW oder FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • Legen Sie fest, wie viele LED-Blöcke verwendet werden. Eine 4-in-1-LED-Matrix hat zum Beispiel 4 Blöcke.
#define MAX_DEVICES 4
  • Legen Sie den Pin des ESP32 C3 Super Mini fest, der mit dem CS-Pin der LED-Matrix verbunden ist, zum Beispiel GPIO7.
#define CS_PIN 7
  • Erstellen Sie eine neue Instanz der Klasse MD_Parola für die LED-Matrix-Anzeige.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Schreiben Sie die Funktion setup():
void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(0); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display }
  • Text, Zahlen und animierte Effekte anzeigen: siehe nächster Abschnitt.

※ Notiz:

Die Pins DIN und CLK werden vom Hardware-SPI des ESP32 C3 Super Mini verwaltet, daher werden sie im Code nie angegeben. Nur der CS-Pin wird im Sketch festgelegt.

ESP32 C3 Super Mini - LED-Matrix-Code

Der folgende Code ist für eine 32x8-FC-16-LED-Matrix-Anzeige (4 Blöcke), Sie können ihn aber leicht für 8x8, 16x8, 64x8 und andere Größen anpassen.

/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-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 7 // The ESP32 C3 SuperMini pin connected to the CS pin of the LED matrix // 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); }

Was dieser Code macht:

  • Legt den CS-Pin am ESP32 C3 Super Mini auf GPIO7 fest
  • Teilt der Bibliothek mit, dass die Anzeige aus 4 FC-16-Blöcken besteht
  • Startet die Anzeige und setzt die Helligkeit auf das Maximum, 15
  • Zeigt denselben Text links-, mittig- und rechtsbündig an
  • Zeigt invertierten Text und anschließend die Zahl 1234 an

Schnelle Schritte

  • Neu beim ESP32 C3 Super Mini? Absolvieren Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini, um Ihre Entwicklungsumgebung einzurichten.
  • Teile verdrahten: Verbinden Sie die LED-Matrix wie im obigen Schaltplan gezeigt mit dem ESP32 C3 Super Mini.
  • Anzeige versorgen: Verwenden Sie ein externes 5V-Netzteil und verbinden Sie die Massen miteinander.
  • Platine anschließen: Verbinden Sie den ESP32 C3 Super Mini über das USB-Typ-C-Kabel mit Ihrem Computer.
  • IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
  • Board auswählen: Stellen Sie sicher, dass ESP32 C3 Super Mini unter Tools > Board ausgewählt ist.
  • Port auswählen: Wählen Sie den COM-Port Ihres ESP32 C3 Super Mini.
  • Library Manager öffnen: Klicken Sie auf das Symbol Library Manager in der linken Navigationsleiste der Arduino IDE.
  • Bibliothek suchen: Geben Sie “MD_Parola” ein und suchen Sie die MD_Parola-Bibliothek.
  • Installieren: Klicken Sie auf die Schaltfläche Install.
  • Search for MD_Parola created by majicDesigns and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Library Manager
Type:
All
Topic:
All
MD_Parola by majicDesigns
Implemented using the MD_MAX72xx library for hardware control. Provides functions to simplify the implementation of text special effects on the LED matrix. More info
3.7.2
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32C3 Dev Module on COM15
1
  • Abhängigkeit installieren: Sie werden aufgefordert, die Bibliothek “MD_MAX72XX” zu installieren. Klicken Sie auf die Schaltfläche Install All.
  • Code kopieren: Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Hochladen: Klicken Sie auf die Schaltfläche Upload, um den Code auf den ESP32 C3 Super Mini zu übertragen.
  • Beobachten: Sehen Sie, wie Text und Zahlen auf der LED-Matrix-Anzeige erscheinen.
  • Serieller Monitor: Wenn Sie später eine serielle Ausgabe hinzufügen, stellen Sie die Baudrate des seriellen Monitors auf 115200 ein.
  • Profi-Tipp: Wenn die Zeichen gespiegelt oder halbiert aussehen, ändern Sie HARDWARE_TYPE von FC16_HW auf GENERIC_HW.

ESP32 C3 Super Mini LED-Matrix-Code – Lauftext

Eine lange Nachricht passt nicht auf eine kleine LED-Matrix, daher können Sie sie stattdessen als Lauftext anzeigen.

Der folgende ESP32 C3 Super Mini Code lässt eine Nachricht über die LED-Matrix-Anzeige laufen.

/* * Dieser ESP32 C3 Super Mini Code wurde von newbiely.de entwickelt * Dieser ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-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 7 // The ESP32 C3 SuperMini pin connected to the CS pin of the LED matrix // 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(); } }

Was dieser Code macht:

  • Verwendet denselben CS-Pin GPIO7 und denselben Aufbau mit 4 Blöcken
  • Ruft displayScroll() einmal in setup() mit dem Text und der Geschwindigkeit auf
  • Lässt die Nachricht von rechts nach links über die gesamte Anzeige laufen
  • Ruft displayAnimate() in loop() auf, um den Text Schritt für Schritt zu bewegen
  • Setzt die Animation zurück, sodass sich die Nachricht endlos wiederholt
  • Hinweis: Die letzte Zahl in displayScroll() ist die Geschwindigkeit in Millisekunden. Eine kleinere Zahl bedeutet einen schnelleren Lauftext.

Weitere Texteffekte finden Sie in der MD_Parola Library Reference.

Anwendungen und Projektideen

Hier sind einige einfache Projekte, die Sie mit einem ESP32 C3 Super Mini und einer LED-Matrix bauen können.

  • Namensschild mit Lauftext: Zeigen Sie Ihren Namen oder einen Gruß auf einer tragbaren Anzeige an.
  • Tischuhr: Zeigen Sie die Uhrzeit auf der LED-Matrix an, wobei der ESP32 C3 Super Mini die Zeit über WLAN bezieht.
  • Wetter-Ticker: Holen Sie die Temperatur aus dem Internet und lassen Sie sie über die Anzeige laufen.
  • Raumthermometer: Zeigen Sie einen DHT11- oder DHT22-Messwert in großen Ziffern an.
  • Countdown-Timer: Zeigen Sie einen Küchen- oder Trainings-Countdown an, den jeder auch aus der Ferne lesen kann.
  • Benachrichtigungstafel: Lassen Sie neue Nachrichten, die Sie per WLAN von Ihrem Handy senden, als Lauftext anzeigen.

Fordern Sie sich selbst heraus

Probieren Sie diese kleinen Aufgaben aus, um mit dem ESP32 C3 Super Mini und der LED-Matrix zu üben.

  • Einfach: Ändern Sie den angezeigten Text in Ihren eigenen Namen.
  • Einfach: Ändern Sie setIntensity() von 15 auf 3 und sehen Sie, wie die Anzeige dunkler wird.
  • Mittel: Erstellen Sie einen Zähler, der Zahlen von 0 bis 99 anzeigt, eine pro Sekunde.
  • Mittel: Ändern Sie die Laufrichtung auf PA_SCROLL_RIGHT und ändern Sie die Geschwindigkeit.
  • Fortgeschritten: Fügen Sie an GPIO3 einen Taster hinzu, der zwischen zwei verschiedenen Nachrichten umschaltet.
  • Fortgeschritten: Verbinden Sie den ESP32 C3 Super Mini mit dem WLAN und lassen Sie eine Nachricht laufen, die Sie auf einer Webseite eingeben.

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!