Skip to content

Technik Blog

IoT, Smart Home & Mikrocontroller einfach erklärt

Menu
  • Smarthome
  • Gartenautomation
  • Mikrocontroller
    • Arduino
    • ESP32 & Co.
    • Calliope Mini
    • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
Menu

ESP32-S3-Matrix von Waveshare: Kompaktes Board mit 8×8 RGB-LED-Matrix im Test

Veröffentlicht am 14. April 202515. Juli 2026 von Stefan Draeger

Das kleine ESP32-S3-Matrix Board von Waveshare kombiniert moderne Mikrocontroller-Technik mit einer integrierten 8×8 RGB-LED-Matrix – ideal für kreative LED-Projekte, coole Animationen oder einfache Pixelspiele. In diesem Beitrag zeige ich dir, was mit diesem kompakten Board alles möglich ist.

ESP32-S3-Matrix von Waveshare: Kompaktes Board mit 8x8 RGB-LED-Matrix im Test
Dieses Video auf YouTube ansehen.

Du erfährst, wie du das Board schnell in Betrieb nimmst und programmierst – wahlweise über die Arduino IDE oder mit Visual Studio Code. Danach wird’s praktisch: Wir erstellen gemeinsam verschiedene Lichteffekte und Animationen auf der integrierten LED-Matrix. So bekommst du nicht nur einen Eindruck von der Vielseitigkeit des Boards, sondern auch direkt Inspiration für eigene Projekte.

ESP32-S3-Matrix
ESP32-S3-Matrix
ESP32-S3-Matrix - Ansicht von Oben
ESP32-S3-Matrix – Ansicht von Oben
ESP32-S3-Matrix - Ansicht von Unten
ESP32-S3-Matrix – Ansicht von Unten
ESP32-S3-Matrix - Ansicht von Oben (Pins)
ESP32-S3-Matrix – Ansicht von Oben (Pins)

Inhaltsverzeichnis

  • Technische Daten des ESP32-S3-Matrix von Waveshare
  • Bezug des Mikrocontrollers
    • Lieferumfang
  • Pinout & Aufbau des Mikrocontrollers
    • Aufbau der RGB LED Matrix
  • Programmierung des Boards ESP32-S3-Matrix
    • Achtung: Helligkeit nicht zu hoch einstellen
    • Programmieren in der Arduino IDE
      • Installieren des Boardtreibers für Espressif Chips
      • Programmieren der 8×8 RGB Matrix mit der Adafruit NeoPixel Bibliothek
        • Hilfsfunktion zum ansteuern einer LED via X & Y Koordinate
      • Programmieren einer kleinen Animation auf der RGB LED Matrix
  • Fazit

Technische Daten des ESP32-S3-Matrix von Waveshare

Hier zunächst die technischen Daten des Boards:

EigenschaftDetails
MikrocontrollerESP32-S3 mit Xtensa® 32-bit LX7 Dual-Core Prozessor
TaktfrequenzBis zu 240 MHz
Arbeitsspeicher (RAM)512 KB SRAM
ROM384 KB
RTC-SRAM16 KB
Flash-Speicher4 MB
Funkverbindungen2.4 GHz WiFi, Bluetooth Low Energy (BLE)
AnschlussUSB Type-C
GPIO-Pins20 digitale Ein-/Ausgänge (über Pinheader)
Anzeigeeinheit8×8 RGB-LED-Matrix (64 LEDs insgesamt)
BesonderheitenNiedriger Energieverbrauch, integrierte Antenne, hohe RF-Leistung
Hinweis zur LED-MatrixHelligkeit nicht zu hoch einstellen – Hitzeentwicklung kann das Board schädigen
ESP32-S3 Chip auf dem ESP32-S3-Matrix Board von Waveshare
ESP32-S3 Chip auf dem ESP32-S3-Matrix Board von Waveshare

Bezug des Mikrocontrollers

Du bekommst diesen Mikrocontroller auf eBay.de bereits ab ca. 8 € zzgl. Versandkosten*. Wenn du etwas sparen möchtest und etwas Geduld mitbringst, lohnt sich ein Blick auf AliExpress.com – dort ist das Board bereits ab rund 6 € zzgl. Versand erhältlich.

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Lieferumfang

Der Mikrocontroller wird in einer kleinen antistatischen Tüte geliefert ohne Pinleisten. Du musst dir somit noch zusätzlich eine 2,54mm Stiftleisten* besorgen. Diese Stiftleisten gibt es ebenso recht günstig auf Aliexpress oder ebay.de.

Pinout & Aufbau des Mikrocontrollers

Nachfolgend siehst du das Pinout des Mikrocontrollers. Besonders positiv fällt auf, dass es einen deutlich gekennzeichneten 5V-Pin gibt – das ist bei Mikrocontrollern der ESP32-Familie eher selten.

Pinout - ESP32-S3 Matrix
Pinout – ESP32-S3 Matrix

Abgesehen davon sind nahezu alle GPIOs vielseitig nutzbar: Sie unterstützen UART, PWM, I2S, ADC, I2C und SPI-Kommunikation.
Zusätzlich ermöglichen die beiden Pins unten rechts, TX und RX, die serielle Kommunikation mit anderen Geräten – etwa für Debugging-Zwecke oder die Anbindung externer Module.

Aufbau der RGB LED Matrix

Die RGB-LED-Matrix auf dem ESP32-S3-Matrix Board ist fest verlötet und folgt einem 8×8-Raster, also 64 einzeln adressierbaren LEDs.
Standardmäßig ist die Matrix intern mit GPIO 14 des Mikrocontrollers verbunden – diesen Pin müssen wir auch in unserem Sketch angeben, um die LEDs korrekt anzusteuern.

Die erste LED (Index 0) befindet sich dabei oben links, direkt neben dem USB-Anschluss, in der ersten Zeile.
Von dort aus verläuft die Adressierung zeilenweise nach rechts, also in sogenannter „serienmäßiger Reihenfolge“ (row-major order). Das ist wichtig zu wissen, wenn man später eigene Muster oder Animationen umsetzen möchte.

erste LED auf RGB LED Matrix der ESP32-S3 Matrix
erste LED auf RGB LED Matrix der ESP32-S3 Matrix

Programmierung des Boards ESP32-S3-Matrix

In der offiziellen englischen Dokumentation zum Board von Waveshare wird dir erläutert wie du dieses Board in der Arduino IDE, Visual Studio Code, Espressif IDF sowie MicroPython programmierst. Ich möchte dir nachfolgend meinen Weg aufzeigen wie ich diesen in der Arduino IDE zum laufen gebracht und programmiert habe.

Achtung: Helligkeit nicht zu hoch einstellen

Ein wichtiger, aber leicht zu übersehender Hinweis findet sich in einem der Beispielsketches von Waveshare: Die Helligkeit der RGB-LED-Matrix sollte nicht zu hoch eingestellt werden, da sich das Board sonst stark erwärmen kann.
Durch die kompakte Bauweise und die hohe Leistungsaufnahme der LEDs besteht die Gefahr, dass sich die Temperatur schnell erhöht – was auf Dauer zu einer Beschädigung der Platine führen kann.

Programmieren in der Arduino IDE

Die Entwicklungsumgebung Arduino IDE ist für die Mikrocontroller der Arduino-Familie (wie der Name es erahnen lässt) ausgelegt. Damit wir den Mikrocontroller mit dem ESP32-S3 Chip programmieren können, müssen wir zunächst den Boardtreiber installieren.

Installieren des Boardtreibers für Espressif Chips

Im ersten Schritt öffnen wir die Einstellungen – entweder über das Hauptmenü Datei > Einstellungen oder mit der Tastenkombination Strg + , (Komma).

öffnen der Einstellungen in der Arduino IDE
öffnen der Einstellungen in der Arduino IDE
Arduino IDE - Einstellungen - zusätzliche Boardverwalter URL hinzufügen
Arduino IDE – Einstellungen – zusätzliche Boardverwalter URL hinzufügen
Arduino IDE - Einstellungen - zusätzliche Boardverwalter URL hinzufügen - URL einfügen
Arduino IDE – Einstellungen – zusätzliche Boardverwalter URL hinzufügen – URL einfügen

In den Einstellungen klicken wir auf die in der zweiten Grafik markierte Schaltfläche (2), um den Dialog „Zusätzliche Boardverwalter-URLs“ zu öffnen.
Dort fügen wir die folgende URL ein und bestätigen mit OK:

https://espressif.github.io/arduino-esp32/package_esp32_index.json

Sobald dieser Schritt abgeschlossen ist, kannst du den Boardverwalter über das linke Menü (6) öffnen und dort nach „esp32“ suchen (7).

In der Ergebnisliste sollte der Eintrag „esp32 von Espressif Systems“ erscheinen. Wähle dort die Schaltfläche „INSTALLIEREN“ (8), um die Boarddefinitionen zu installieren.

Installieren dert Boardteiber für ESP32 Boards
Installieren dert Boardteiber für ESP32 Boards
Ausgabe während der Installation
Ausgabe während der Installation

Die Installation kann etwas Zeit in Anspruch nehmen, da es zahlreiche Varianten des ESP32 gibt und alle benötigten Treiber von einem eher langsamen Server heruntergeladen werden.
Bei mir hat der Vorgang rund 5 Minuten gedauert.
Den Fortschritt der Installation kannst du im Fenster „Ausgabe“ mitverfolgen.

Damit sind die benötigten Boardtreiber installiert. Du findest nun unter Werkzeuge > Board > esp32 eine große Auswahl an ESP32-Boards.
Für das hier verwendete Board wählen wir den Eintrag
„ESP32-S3 Dev Module“ aus.

Liste der Installierten Boardteiber für ESP32 Boards
Liste der Installierten Boardteiber für ESP32 Boards

Programmieren der 8×8 RGB Matrix mit der Adafruit NeoPixel Bibliothek

Wie man eine RGB-LED vom Typ WS2812B am Mikrocontroller ansteuert, habe ich bereits in mehreren Beiträgen gezeigt. Besonders einfach gelingt das mit der Adafruit NeoPixel Bibliothek, die ich auch in diesem Beispiel wiederverwende.

  • RGB Beleuchtung einfach steuern: NeoPixel Ring mit Arduino
  • Arduino Lektion 31: 12bit RGB NeoPixel Ring
  • LED-Würfel: Zufallszahlen auf der Pixelmatrix darstellen

Du kannst die Bibliothek ganz bequem über den Bibliotheksverwalter der Arduino IDE installieren – inklusive aller nötigen Abhängigkeiten (engl. dependencies). Suche dazu einfach nach „Adafruit NeoPixel“ und klicke auf Installieren.

Hilfsfunktion zum ansteuern einer LED via X & Y Koordinate

Um eine einzelne LED auf der Pixelmatrix anzusteuern, benötigen wir ihren Index im Array. Dieser beginnt oben links bei 0 und endet unten rechts bei 63.
Das direkte Arbeiten mit diesen eindimensionalen Indizes kann beim Zeichnen von Figuren jedoch schnell unübersichtlich und fehleranfällig werden.

Deshalb habe ich mir eine kleine Hilfsfunktion erstellt, mit der man stattdessen über X- und Y-Koordinaten arbeiten kann.
Dabei steht X für die Spalte und Y für die Zeile, was dem gewohnten Koordinatensystem entspricht.
So lässt sich die Positionierung einzelner Pixel deutlich klarer und intuitiver gestalten, besonders beim Aufbau grafischer Muster in einem zweidimensionalen Array.

// Gerade Verdrahtung: Zeile für Zeile von links nach rechts
uint16_t xy(uint8_t x, uint8_t y) {
  // Die LED-Matrix ist 8 Spalten (x) breit und 8 Zeilen (y) hoch.
  // Die LEDs sind zeilenweise verdrahtet – also:
  // erste Zeile von links nach rechts (x = 0 bis 7),
  // dann zweite Zeile direkt danach, usw.

  // Um die Position (x, y) auf den eindimensionalen LED-Array-Index (0–63) zu berechnen,
  // multiplizieren wir die Zeilennummer mit 8 (Anzahl Spalten), um den Zeilen-Offset zu bekommen:
  // y * 8 = Startposition dieser Zeile im Array

  // Dann addieren wir die Spaltennummer x hinzu:
  // So ergibt sich die konkrete LED-Nummer in der 1D-LED-Liste
  
  return y * 8 + x;

  // Beispiel:
  // x = 3, y = 2 → 2. Zeile = Offset 16 → Index = 16 + 3 = 19
  // Das bedeutet: Pixel an Spalte 3, Zeile 2 → LED Nr. 19 im Array
}

Programmieren einer kleinen Animation auf der RGB LED Matrix

Starten wir ganz praktisch und bringen als Erstes eine kleine Figur auf der RGB-Matrix zum Tanzen.
Dafür wird ein einfaches Pixelmännchen in Bewegung versetzt – die Animation besteht aus insgesamt sechs Einzelbildern (Frames), die nacheinander abgespielt werden und so eine kleine Tanzbewegung ergeben.

Hier die einzelnen Frames:

simple Pixel Men 1
simple Pixel Men 2
simple Pixel Men 3
simple Pixel Men 4
simple Pixel Men 5
simple Pixel Men 6

Die gesamte Animation läuft in der Funktion Setup ab und wird in einer Schleife 30 mal wiederholt.

Quellcode
// Bibliothek für WS2812B (NeoPixel) LEDs
#include <Adafruit_NeoPixel.h>

// Pin, an dem die LED-Matrix angeschlossen ist
#define PIN 14

// Anzahl der LEDs in der 8x8-Matrix (8 * 8 = 64)
#define NUMPIXELS 64

// Initialisierung des LED-Objekts: Anzahl der Pixel, Pin, Farbformat und Frequenz
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

// Farbvariablen (werden später in setup definiert)
uint32_t COLOR_BLAU;
uint32_t COLOR_BRAUN;
uint32_t COLOR_SCHWARZ;
uint32_t COLOR_WEISS;
uint32_t COLOR_HELLBRAUN;
uint32_t COLOR_ROT;

// Hilfsfunktion zur LED-Steuerung über x/y-Koordinaten
void setXY(uint8_t x, uint8_t y, uint32_t color) {
  if (x < 8 && y < 8) {
    uint16_t index = xy(x, y);         // Umrechnung von x/y in LED-Index
    Serial.println(index);             // Debug-Ausgabe im seriellen Monitor
    pixels.setPixelColor(index, color); // Farbe setzen
  }
}

// Wandelt 2D-Koordinaten in eindimensionalen Index um (Zeilenweise)
uint16_t xy(uint8_t x, uint8_t y) {
  return y * 8 + x;
}

// Zeichnet ein komplettes 8x8-Frame (2D-Feld von Farben)
void drawFrame(uint32_t frameData[8][8]) {
  for (int x = 0; x < 8; x++) {
    Serial.println(x); // Debug-Ausgabe
    for (int y = 0; y < 8; y++) {
      Serial.println(y); // Debug-Ausgabe
      uint32_t color = frameData[x][y];
      setXY(x, y, color); // LED setzen
    }
  }
  pixels.show(); // Änderungen anzeigen
}

// Setup-Funktion, wird einmal beim Start ausgeführt
void setup() {
  Serial.begin(9600);    // Serielle Schnittstelle zum Debuggen starten
  pixels.begin();        // LED-Streifen initialisieren

  // Farben definieren (RGB)
  COLOR_BLAU = pixels.Color(0, 0, 255);
  COLOR_BRAUN = pixels.Color(150, 75, 0);
  COLOR_SCHWARZ = pixels.Color(255, 255, 255);
  COLOR_WEISS = pixels.Color(0, 0, 0);
  COLOR_HELLBRAUN = pixels.Color(205, 133, 63);
  COLOR_ROT = pixels.Color(0, 255, 0); // Achtung: das ist eigentlich grün

  // Mehrere Bild-Frames definieren (8x8 Matrix aus Farben)
  // → Diese Frames zeigen kleine Variationen eines Musters/Bildes
  uint32_t frame1[8][8] = {
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_BLAU, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_HELLBRAUN, COLOR_BRAUN, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_HELLBRAUN, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_HELLBRAUN },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS }
  };

  uint32_t frame2[8][8] = {
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_BLAU, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_HELLBRAUN, COLOR_BRAUN, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_HELLBRAUN },
    { COLOR_WEISS, COLOR_HELLBRAUN, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS }
  };

  uint32_t frame3[8][8] = {
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_BLAU, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_HELLBRAUN, COLOR_BRAUN, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_WEISS },
    { COLOR_WEISS, COLOR_HELLBRAUN, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_HELLBRAUN, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS }
  };

  uint32_t frame4[8][8] = {
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_BLAU, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_BRAUN, COLOR_HELLBRAUN, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_HELLBRAUN, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_HELLBRAUN },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS }
  };

  uint32_t frame5[8][8] = {
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_BLAU, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_BRAUN, COLOR_HELLBRAUN, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_HELLBRAUN, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_HELLBRAUN, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS }
  };

  uint32_t frame6[8][8] = {
    { COLOR_WEISS, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_BLAU, COLOR_WEISS, COLOR_BLAU, COLOR_BLAU, COLOR_BLAU, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_SCHWARZ, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_HELLBRAUN, COLOR_BRAUN, COLOR_HELLBRAUN, COLOR_HELLBRAUN, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_BLAU, COLOR_ROT, COLOR_BLAU, COLOR_WEISS },
    { COLOR_WEISS, COLOR_HELLBRAUN, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_HELLBRAUN, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_ROT, COLOR_WEISS, COLOR_WEISS },
    { COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS, COLOR_BRAUN, COLOR_WEISS, COLOR_WEISS }
  };

  // Helligkeit der Matrix niedrig setzen (zum Schutz des Boards!)
  pixels.setBrightness(2);

  // Alle LEDs ausschalten
  pixels.clear();

  // Animationsschleife: 30-mal alle Frames nacheinander anzeigen
  int pause = 1000; // 1 Sekunde Pause zwischen Frames
  for (int count = 0; count < 30; count++) {
    drawFrame(frame1);
    delay(pause);
    drawFrame(frame2);
    delay(pause);
    drawFrame(frame3);
    delay(pause);
    drawFrame(frame4);
    delay(pause);
    drawFrame(frame5);
    delay(pause);
    drawFrame(frame6);
    delay(pause);
  }

  // Nach der Animation nochmals alles löschen
  delay(1000);
  pixels.clear();
}

// loop() bleibt leer, da alles bereits im setup() läuft
void loop() {
}
ESP32-S3 Matrix – dancing_tiny_menHerunterladen

Fazit

Das ESP32-S3-Matrix von Waveshare ist ein kompaktes, aber leistungsstarkes Entwicklungsboard, das sich ideal für kreative Projekte mit visuellen Effekten eignet. Die Kombination aus ESP32-S3 Mikrocontroller und der integrierten 8×8 RGB-LED-Matrix macht es besonders interessant für Einsteiger und Maker, die ohne viel zusätzlichen Aufbau direkt loslegen möchten. Dank WiFi, Bluetooth LE und USB-C ist das Board vielseitig einsetzbar – ob als Mini-Anzeige, für Animationen oder zur Darstellung von Sensordaten.

Besonders positiv ist der einfache Einstieg über die Arduino IDE mit der FastLED-Bibliothek, wodurch schnell erste Erfolge sichtbar werden. Lediglich bei der LED-Helligkeit sollte man etwas vorsichtig sein, um das Board nicht durch Überhitzung zu beschädigen.

Letzte Aktualisierung am: 15. Juli 2026

Foto von Stefan Draeger
Über den Autor

Stefan Draeger — Entwickler & Tech-Blogger

Ich zeige praxisnah, wie du Projekte mit Arduino, ESP32 und Smarthome-Komponenten umsetzt – Schritt für Schritt, mit Code und Schaltplänen.

Mehr Artikel von Stefan →

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

Kontakt & Hilfe

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden? Erstelle einfach ein Support-Ticket.

Support-Ticket erstellen
Keine Beiträge verpassen

Newsletter abonnieren

Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32, Smarthome und IoT direkt in dein Postfach.

Newsletter abonnieren
Freiwillige Unterstützung

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee. So hilfst du dabei, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

Auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kostenlose Online-Werkzeuge

Tools

Praktische Generatoren, Rechner und Hilfsmittel für deine Elektronik- und Entwicklungsprojekte.

Generatoren & Konverter

  • QR-Code Generator
  • Passwort Generator
  • PNG zu WebP konvertieren
  • Bilder online komprimieren
  • Code online formatieren

Rechner & Tabellen

  • Unix-Zeitstempel-Rechner
  • ASCII-Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner

LED-Matrix

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix Generator
Kontakt

Anschrift & Kontaktdaten

Stefan Draeger

Königsberger Str. 13
38364 Schöningen

Telefon 01556 5432686

E-Mail info@draeger-it.blog

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
Social Media

Folge mir auf

Weitere Projekte, Videos und Neuigkeiten findest du auch auf meinen Social-Media-Kanälen.

  • f Facebook
  • in LinkedIn
  • ▶ YouTube
  • ♪ TikTok
  • P Pinterest
  • ◎ Instagram
Rechtliche Informationen

Rechtliches

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2026 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
  • Optionen verwalten
  • Dienste verwalten
  • Verwalten von {vendor_count}-Lieferanten
  • Lese mehr über diese Zwecke
Einstellungen anzeigen
  • {title}
  • {title}
  • {title}