Tento návod je súčasťou: ESP32-S3 RGB LED matica
Skvelý projekt na tvorbu zábavných a praktických aplikácií s použitím modulu ESP32-S3 RGB Matrix. Odkazy na ďalšie videá nájdete pod týmto článkom.
Projekt ESP32-S3 RGB LED matice 1 – Základná bodka
Projekt 1 – Animácia pohybujúcej sa bodky a srdca na ESP32-S3 RGB LED matici
V tomto projekte začneme s najjednoduchšou možnou animáciou na ESP32-S3 RGB LED matici: jedinou bodkou pohybujúcou sa cez 8×8 RGB displej. Navyše pridáme malú animáciu srdca, aby ste mohli zariadenie premeniť na malý dekoratívny displej, keď je zapnuté. Toto je skvelý prvý krok na oboznámenie sa s ovládaním jednotlivých pixelov, farieb a rýchlosti animácie na matici.
Všetkých šesť projektov v tejto sérii je predvedených a vysvetlených v jednom videu. Rovnaké video je vložené na tejto stránke, takže si môžete pozrieť celé podrobné vysvetlenie a živú ukážku animácií pohybujúcej sa bodky a srdca. Kompletný kód pre tento projekt sa automaticky načíta nižšie pod článkom a modul ESP32-S3 RGB LED Matrix si môžete zakúpiť z partnerských obchodov uvedených v sekcii kódu.
Ak s touto doskou práve začínate, tento projekt je perfektný spôsob, ako:
- Overiť, že vaša doska ESP32-S3 a USB pripojenie fungujú.
- Potvrdiť, že 8×8 RGB matica je zapojená na správny pin.
- Experimentovať so základným načasovaním animácie, farbou a jasom.

Prehľad modulu ESP32-S3 RGB LED Matrix
Doska použitá v tomto projekte je založená na mikrokontroléri ESP32-S3, kombinovanom s 8×8 RGB LED maticou (64 jednotlivo adresovateľných RGB LED), snímačom pohybu QMI8658C na zadnej strane a USB portom pre napájanie a programovanie.:contentReference[oaicite:0]{index=0}
Kľúčové vlastnosti tohto modulu:

- ESP32-S3 dvojjadrový mikrokontrolér s podporou Wi-Fi a Bluetooth.
- 8×8 RGB LED matica (64 RGB LED) na prednej strane dosky, ideálna pre ikony, text a malé hry.
- QMI8658C akcelerometer / snímač pohybu na zadnej strane, takže môžete detekovať náklon, pohyb a orientáciu pre interaktívne projekty.
- USB port pre programovanie aj napájanie.
- Prístupné piny po okrajoch, takže dosku možno stále používať ako bežný ESP32 pre iné IO projekty.
- Tlačidlá Boot a Reset pre vstup do programovacieho režimu a reštartovanie vášho sketchu.
V tomto prvom projekte používame iba časť LED matice dosky, ale rovnaký hardvér je dostatočne výkonný na zobrazovanie textu, webovo ovládaných správ, hier ovládaných pohybom a ďalších vecí — ktoré sú pokryté v ďalších projektoch tejto série.
Projekty zahrnuté vo videu (Časové značky)
Všetkých šesť projektov zdieľa rovnaké YouTube video. Približné časové značky sú:
- 00:00 – Úvod
- 02:01 – Inštalácia ESP32 dosiek
- 03:32 – Inštalácia knižníc
- 05:32 – Projekt 1: Pohybujúca sa bodka (a základné nastavenia farieb / rýchlosti)
- 11:11 – Projekt 2: Posúvanie textu
- 12:59 – Projekt 3: HTTP text
- 16:41 – Projekt 4: Náklon bodky
- 18:55 – Projekt 5: Šípka hore
- 20:02 – Projekt 6: Cieľová hra
Pre čo najlepšie pochopenie vám dôrazne odporúčame pozrieť si video pri čítaní tohto článku. Video ukazuje živé správanie bodky a srdca na matici, plus všetky kroky v Arduino IDE.
Inštalácia ESP32 dosiek v Arduino IDE
Pred nahratím akéhokoľvek kódu do ESP32-S3 musíte v Arduino IDE nainštalovať balík podpory pre ESP32 dosky. Vo videu je to demonštrované v sekcii „inštalácia dosiek“.
Všeobecné kroky:
- Otvorte Arduino IDE a prejdite na
Súbor > Predvoľby. - Do poľa „Additional Boards Manager URLs“ pridajte oficiálnu URL adresu pre ESP32 dosky.
- Otvorte
Nástroje > Doska > Správca dosiek…, vyhľadajteESP32a nainštalujte balík pre ESP32 dosky. - Po inštalácii prejdite na
Nástroje > Doskaa vyberte správny záznam dosky pre váš ESP32-S3 RGB Matrix modul. - Pripojte dosku cez USB a vyberte jej sériový port pod
Nástroje > Port.
Ak nie je vybratá správna doska a port, váš sketch sa nenahrá, aj keď je váš kód správny.
Inštalácia NeoMatrix a požadovaných knižníc
LED matica interne používa ovládač Adafruit NeoPixel a pre jednoduchšie 2D kreslenie používame knižnicu Adafruit NeoMatrix. Inštalácia NeoMatrix automaticky stiahne závislosti.
NeoMatrix a závislosti
Nainštalujte nasledujúce zo Správcu knižníc:
Adafruit NeoMatrixAdafruit NeoPixelAdafruit GFX Library
V Správcovi knižníc:
- Otvorte
Sketch > Zahrnúť knižnicu > Spravovať knižnice…. - Vyhľadajte
Adafruit NeoMatrixa kliknite na Inštalovať. - Povoľte IDE nainštalovať všetky odporúčané závislosti (Adafruit GFX a Adafruit NeoPixel).
Knižnica snímača pohybu QMI8658C (Pre neskoršie projekty)
Projekt 1 nepoužíva akcelerometer priamo, ale je dobrý nápad nainštalovať knižnicu snímača pohybu už teraz, pretože bude potrebná pre Projekty 4, 5 a 6.
Zo Správcu knižníc:
- Vyhľadajte knižnicu QMI8658 podľa mena autora.
- Nainštalujte knižnicu, aby sa zobrazila pod
Súbor > Príkladypre rýchle testovanie.
Projekt 1 – Nastavenia kódu (Pohybujúca sa bodka a srdce)
Plný náčrt, ktorý spúšťa Projekt 1, sa na webovej stránke automaticky načíta pod tento článok. Tu sa zameriame len na kľúčové nastavenia, ktoré pravdepodobne zmeníte: pin, počet pixelov, jas, farbu a rýchlosť animácie. Pri animácii srdca tiež ukážeme, ako ovládať farbu a či je srdce plné alebo len obrysové.
LED pin a počet pixelov
Na tomto module je 8×8 RGB matica pripojená na GPIO 14 čipu ESP32-S3. Celkový počet pixelov je 64 (8 × 8). Vo vašom kóde by ste mali vidieť niečo podobné:
// Pin pripojený k 8×8 RGB matici
const int MATRIX_PIN = 14;
// na tomto module musí byť 14
// Celkový počet LED (8 × 8 matica)
const int NUMPIXELS = 64; // zmeňte len ak používate inú veľkosť matice
Ak omylom necháte NUMPIXELS na hodnote 16 (z pôvodného NeoPixel príkladu), využije sa len štvrtina matice a animácia nevyplní celú 8×8 obrazovku.
Poradie farieb a typ LED
Rôzne LED pásy a matice môžu používať rôzne poradie farieb (napríklad GRB namiesto RGB). Matica na tejto doske očakáva poradie RGB. V konštruktore NeoPixel alebo NeoMatrix sa uistite, že je typ farby nastavený správne:
// Príklad pre objekt typu NeoPixel:
Adafruit_NeoPixel pixels( NUMPIXELS, MATRIX_PIN, NEO_RGB + NEO_KHZ800 // uistite sa, že to zodpovedá poradiu farieb matice );
Ak si všimnete, že červená a zelená sú na displeji vymenené, skontrolujte najprv tento riadok a opravte poradie farieb.
Rýchlosť animácie (oneskorenie medzi krokmi)
Rýchlosť pohybujúcej sa bodky sa zvyčajne riadi jednoduchou hodnotou oneskorenia v milisekundách. Menšie oneskorenie znamená rýchlejší pohyb; väčšie oneskorenie znamená pomalší pohyb. Hľadajte premennú podobnú:
// Oneskorenie medzi pohybmi bodky (v milisekundách)
int dotDelayMs = 50; // 50 ms je pomerne rýchle
Typické úpravy:
- Nastavte
dotDelayMs = 20;pre veľmi rýchlo sa pohybujúcu bodku. - Nastavte
dotDelayMs = 100;alebo vyššie pre pomalú, pokojnú animáciu.
Vo funkcii loop() sa táto hodnota zvyčajne odovzdáva funkcii delay(dotDelayMs); po každej aktualizácii snímky.
Farba bodky a jas
RGB farba pohybujúcej sa bodky sa riadi tromi hodnotami v rozsahu 0–255 (červená, zelená, modrá). Napríklad:
// Farba bodky (R, G, B) od 0–255 uint8_t dotRed = 255; // plná červená
uint8_t dotGreen = 0; // žiadna zelená
uint8_t dotBlue = 0; // žiadna modrá
Toto vytvorí jasne červenú bodku. Niektoré užitočné kombinácie:
- Čistá červená:
(255, 0, 0) - Čistá zelená:
(0, 255, 0) - Čistá modrá:
(0, 0, 255) - Žltá:
(255, 255, 0) - Biela:
(255, 255, 255)
Celkový jas sa často riadi samostatnou funkciou jasu:
// Celkový jas matice (0–255)
uint8_t matrixBrightness = 40; // držte ho nízko, aby ste predišli prílišnému oslneniu // V setup(): matrix.setBrightness(matrixBrightness);
Hodnota okolo 30–60 je zvyčajne pohodlná pre vnútorné použitie.
Nastavenia tvaru srdca
Okrem pohybujúcej sa bodky môžete na matici zobraziť malé srdce, keď sa doska prvýkrát zapne. Vzorový kód článku (načítaný nižšie) obsahuje nastavenia podobné:
// Farba srdca (plné srdce)
uint8_t heartRed = 255;
uint8_t heartGreen = 0;
uint8_t heartBlue = 0;
// Voliteľné: dúhové alebo obrysové režimy
bool showOutlinedHeart = false;
// true = len obrys
bool useRainbowHeart = false;
// true = cyklické menenie farieb v čase
Typické použitie:
- Nastavte
showOutlinedHeart = false;auseRainbowHeart = false;pre plné červené srdce. - Nastavte
showOutlinedHeart = true;pre zobrazenie len obrysu srdca. - Nastavte
useRainbowHeart = true;pre nepretržité cyklické menenie farby srdca cez dúhový efekt.
Srdce sa kreslí pomocou NeoMatrix súradnicových funkcií v kóde pod článkom. Na prispôsobenie jeho vzhľadu stačí zmeniť vyššie uvedené premenné.
Zhrnutie
Projekt 1 vám poskytuje jednoduchý, ale výkonný štartovací bod s ESP32-S3 RGB LED maticou: naučíte sa adresovať všetkých 64 pixelov, ovládať farbu, nastavovať jas a rýchlosť animácie. Tiež uvidíte, aké ľahké je prepnúť z pohybujúcej sa bodky na statické alebo animované srdce na rovnakom hardvéri.
Nezabudnite si pozrieť celé video vložené na tejto stránke pre kompletnú, krok za krokom demonštráciu pohybujúcej sa bodky a animácií srdca, spolu so zvyšnými piatimi projektmi. Plný zdrojový kód je dostupný nižšie v tomto článku a môžete podporiť budúce projekty zakúpením modulu cez affiliate odkazy uvedené pod sekciou s kódom.
Tento návod je súčasťou: ESP32-S3 RGB LED matica
- Projekt 2 s RGB LED maticou ESP32-S3 - Posúvajúci sa text
- Projekt 3 s RGB LED maticou ESP32-S3 - Text z mobilného telefónu
- Projekt ESP32-S3 RGB LED Matrix 4 - Náklon bodky
- Projekt ESP32-S3 RGB LED Matrix 5 - Šípka vždy hore
- Projekt ESP32-S3 RGB LED Matrix 6 - Hra Cible
- Projekt ESP32-S3 RGB LED matica Wi-Fi + NTP časové hodiny - 1 Základné hodiny
- Projekt internetových hodín s RGB LED maticou ESP32-S3 - 2 hodiny s viacfarebným zobrazením času a dátumu
- Projekt internetových hodín s RGB LED maticou ESP32-S3 - 3 nočné farby s dátumom
- Projekt internetových hodín s RGB LED maticou ESP32-S3 - 5 dúhových farieb
- Projekt internetových hodín s RGB LED maticou ESP32-S3 - 4 náhodné farby
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
Project 1: the Dot – ESP32-S3 RGB LED Matrix (Waveshare)
dialysis a dot on scree and moves it
▶️ Video Tutorial:
https://youtu.be/JKLuYrRcLMI
📚⬇️ Resources & Code Page:
https://robojax.com/RJT829
QMI8658_RGB_2
*/
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
// Which pin on the Arduino is connected to the NeoPixels?
#define PIN 14 // On Trinket or Gemma, suggest changing this to 1
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 64 // Popular NeoPixel ring size
// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);
#define DELAYVAL 50 // Time (in milliseconds) to pause between pixels
void setup() {
// These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
// Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
// END of Trinket-specific code.
pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
}
void loop() {
pixels.clear(); // Set all pixel colors to 'off'
// The first NeoPixel in a strand is #0, second is 1, all the way up
// to the count of pixels minus one.
for(int i=0; i<NUMPIXELS; i++) { // For each pixel...
// pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
// Here we're using a moderately bright green color:
pixels.setPixelColor(i, pixels.Color(255, 255, 0));
pixels.show(); // Send the updated pixel colors to the hardware.
delay(DELAYVAL); // Pause before next pass through loop
pixels.clear();
}
}
Veci, ktoré by ste mohli potrebovať
-
Amazon
-
eBay
-
AliExpressPurchase ESP32-S3 RGB matrix from AliExpresss.click.aliexpress.com
-
AliExpressPurchase ESP32-S3 RGB matrix from AliExpress (2)s.click.aliexpress.com
Zdroje a referencie
-
Interné🎨 Color picker Toolrobojax.com
Súbory📁
Súbor Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB