ESP32 - LED Matrix

LED matrix display, ook bekend als LED display of dot matrix display, wordt veel gebruikt. In deze handleiding leert u:

  • Wat een LED matrix is
  • Hoe u een ESP32 aansluit op een 8x8 LED matrix
  • Hoe u een ESP32 aansluit op een 32x8 LED matrix
  • Hoe u tekst, cijfers en geanimeerde effecten kunt weergeven op de LED matrix met de ESP32.

Daarna kunt u de code eenvoudig aanpassen voor andere LED matrices zoals 16x8 LED matrix, 64x8 LED matrix, enzovoort.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×FC-16 LED Matrix 32x8
1×FC-16 LED Matrix 8x8
1×Generic LED Matrix 8x8
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Optioneel) DC voedingsconnector
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de LED Matrix

LED Matrix display

Er zijn veel verschillende soorten LED Matrix. Met de ESP32 wordt de LED matrix op basis van de MAX7219 veel gebruikt. Een LED matrix gebaseerd op de MAX7219 heeft de volgende kenmerken:

  • Een basisunit van een LED matrix is een blok
  • Elk blok bevat een 8x8 LED matrix (64 LEDs) en een MAX7219 driver
  • Er zijn twee populaire blokvormen: de generic module en de FC-16 module
  • Een LED matrix kan bestaan uit één enkel blok of uit meerdere blokken in een cascadeschakeling (daisy-chain)
  • U kunt een vooraf gebouwde LED matrix kopen met meerdere blokken (bijvoorbeeld 4-in-1, 8-in-1)
  • U kunt ook meerdere blokken kopen en deze bedraden om een LED matrix te vormen van de gewenste grootte
  • U moet het formaat van de gebruikte LED matrix aangeven in de ESP32 code

Pinout

LED Matrix Pinout

Een LED Matrix wordt gevormd door één of meerdere blokken. Elk blok heeft twee groepen pinnen:

  • Input pin groep:
    • VCC: sluit aan op 5V
    • GND: sluit aan op GND (massa)
    • DIN: Data pin, verbind met een willekeurige digitale pin van de ESP32
    • CS: Chip Select, verbind met een willekeurige digitale pin van de ESP32
    • CLK: Klokpin, verbind met een willekeurige digitale pin van de ESP32
  • Output pin groep:
    • VCC: sluit aan op VCC van de input pin groep van de volgende module
    • GND: sluit aan op GND van de input pin groep van de volgende module
    • DOUT: Data Out, sluit aan op de DIN pin van de input pin groep van de volgende module
    • CS: sluit aan op CS van de input pin groep van de volgende module
    • CLK: sluit aan op CLK van de input pin groep van de volgende module

Bedradingsschema

Als de LED matrix uit één enkel blok bestaat:

  • Verbind de input pin groep met de ESP32
  • Laat de output pin groep niet aangesloten
ESP32 8x8 LED matrix FC-16 bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 8x8 LED matrix generic bedradingsschema

This image is created using Fritzing. Click to enlarge image

Als de LED matrix een vooraf gebouwde meerdere-blok module is:

  • Verbind de input pin groepen met de ESP32
  • Laat de output pin groep niet aangesloten
ESP32 LED matrix display bedradingsschema

This image is created using Fritzing. Click to enlarge image

Als u zelf een LED matrix samenstelt uit meerdere blokken:

  • Verbind de input pin groep van het eerste blok met de ESP32
  • Verbind de output pin groepen van ieder blok met de input pin groep van het volgende blok
  • Laat de output pin groep van het laatste blok niet aangesloten
ESP32 32x8 LED matrix FC-16 bedrading

This image is created using Fritzing. Click to enlarge image

ESP32 32x8 LED matrix generic bedrading

This image is created using Fritzing. Click to enlarge image

Omdat het display veel stroom trekt (tot 1A bij maximale helderheid):

  • Gebruik niet de 5V pin van de ESP32 om het display van stroom te voorzien
  • Gebruik in plaats daarvan een externe 5V voeding. ESP32 en LED matrix kunnen samen gevoed worden door een 5V-adapter

Omdat de ESP32 verbinding maakt met de LED matrix via SPI-pinnen:

  • GPIO18 (SCK) en GPIO23 (MOSI) van de ESP32
  • GPIO21 (CS) kan op een andere pin worden ingesteld

Hoe programmeert u voor de LED Matrix

Het is niet eenvoudig om de LED matrix zelf te besturen. Gelukkig zijn er libraries beschikbaar die dit vergemakkelijken. Hieronder volgt stap voor stap hoe u ESP32-code schrijft om de LED matrix te besturen:

  • Libraries includen:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • Specificeer welke hardware wordt gebruikt: GENERIC_HW of FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • Definieer hoeveel LED blokken er worden gebruikt. Bijvoorbeeld een 4-in-1 LED matrix bestaat uit 4 blokken.
#define MAX_DEVICES 4
  • Definieer de pin die verbonden is met de CS-pin van de LED matrix, bijvoorbeeld GPIO21.
#define CS_PIN 21
  • Maak een nieuwe instantie van de MD_Parola klasse voor het LED matrix display.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Code in de setup()-functie:
void setup() { ledMatrix.begin(); // initialiseer het object ledMatrix.setIntensity(0); // stel de helderheid in van het LED matrix display (van 0 tot 15) ledMatrix.displayClear(); // maak het LED matrix display leeg }
  • Tekst, cijfers en geanimeerde effecten tonen: zie het volgende deel

ESP32 - LED Matrix Code

De onderstaande code is bedoeld voor een 32x8 FC-16 LED matrix display (4 blokken). U kunt deze eenvoudig aanpassen voor 8x8, 16x8, 64x8, enzovoort.

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Snelle Stappen

  • Als u voor het eerst ESP32 gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Voer de bekabeling uit zoals op de bovenstaande afbeelding.
  • Verbind het ESP32-bord met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijvoorbeeld ESP32 Dev Module) en de juiste COM-poort.
  • Klik op het Libraries icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek op “MD_Parola” en vind de MD_Parola library
  • Klik op de Installeren knop.
ESP32 MD_Parola library
  • U wordt gevraagd om de “MD_MAX72XX” library te installeren
  • Klik op de Install All knop om deze afhankelijkheid te installeren.
ESP32 MD_MAX72XX library
  • Kopieer de bovenstaande code en open deze in Arduino IDE
  • Klik op de Uploaden knop in Arduino IDE om de code naar de ESP32 te uploaden
  • Bekijk het LED matrix display

ESP32 LED Matrix Code – Scrollende Tekst

Wanneer u een lange boodschap wilt weergeven die niet volledig op het LED matrix display past, kunt u de scrolltekst-effect techniek gebruiken.

De onderstaande ESP32-code toont hoe u een bericht kunt laten scrollen op het LED matrix display.

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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(); } }

Voor meer teksteffecten verwijzen wij u naar de MD_Parola Library Reference.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze videotutorial voor visuele begeleiding bij dit project! De video biedt extra inzichten en maakt het nog makkelijker om het project succesvol uit te voeren.

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!