V tomto návodu se naučíš, jak připojit MP3 modul YX5300 nebo YX6300 k ESP32 a přehrávat zvukové soubory z microSD karty. Modul komunikuje přes sériovou linku (UART) a umožňuje přehrávat .mp3 nebo .wav soubory pomocí jednoduchých příkazů.
Co je YX5300 / YX6300
YX5300 (nebo novější YX6300) je levný MP3 přehrávač modul:
- přehrává .mp3 a .wav soubory
- používá microSD kartu
- komunikuje přes UART (TX/RX)
- funguje s ESP32, Arduino i ESP8266
Výhodou je, že:
➡️ samotný modul dekóduje audio (ESP32 to nemusí řešit)

Zapojení k ESP32
Zapojení je jednoduché – používá se sériová komunikace:
- TX (modul) → GPIO 16 (RX na ESP32)
- RX (modul) → GPIO 17 (TX na ESP32)
- VCC → 5V (doporučeno)
- GND → GND
Důležité:
- někdy jsou piny na modulu špatně označené
- pokud to nefunguje, zkus TX↔TX a RX↔RX

Parametry modulu (přepsané z tabulky)
- napájení: cca 3.2 V až 5.2 V
- doporučeno: 5 V pro stabilitu
- microSD karta: do 32 GB
- formát karty: FAT16 nebo FAT32
- formáty souborů: .mp3 a .wav
- vzorkovací frekvence: 8 až 48 kHz
Příprava microSD karty
Aby modul fungoval správně, musí být data správně uspořádána:
- složky musí mít 2 číslice (např. 01, 02)
- soubory musí mít 3 číslice na začátku
Příklad struktury:
- složka 01 obsahuje:
- 001xxx.mp3
- 002xxx.mp3
- 003xxx.mp3
- složka 02 obsahuje:
- 004xxx.mp3
- 005xxx.mp3
Omezení:
- max. 99 složek
- max. 255 souborů ve složce

Připojení reproduktoru nebo sluchátek
Modul nemá vlastní reproduktor, ale má jack konektor:
- můžeš připojit sluchátka
- nebo externí reproduktor

Instalace knihovny
Použij knihovnu:
YX5300_ESP32 (bluejunimo)
Postup:
- Arduino IDE → Library Manager
- vyhledej „YX5300“
- nainstaluj knihovnu
Funguje i pro YX6300 bez úprav.

Testovací kód (přehrání zvuku)
1#include <YX5300_ESP32.h>
2
3#define RX 16
4#define TX 17
5
6YX5300_ESP32 mp3;
7
8void setup() {
9 Serial.begin(115200);
10
11 // inicializace modulu
12 mp3 = YX5300_ESP32(Serial2, RX, TX);
13
14 // debug (volitelné)
15 mp3.enableDebugging();
16
17 // přehraje první track
18 mp3.playTrack(1);
19}
20
21void loop() {
22}Jak kód funguje
- vytvoří se objekt
mp3 - použije se
Serial2(UART na ESP32) - zapne se debug výpis
- příkaz
playTrack(1)spustí první skladbu
Řešení problémů
Pokud modul nehraje:
- špatné zapojení TX/RX
- nedostatečné napájení (použij 5V)
- špatný formát SD karty
- špatné názvy souborů
- nefunkční reproduktor
Projekt: MP3 přehrávač s tlačítky a potenciometrem
Můžeš si postavit vlastní přehrávač:
Co potřebuješ
- ESP32
- YX5300 / YX6300 modul
- microSD karta
- reproduktor / sluchátka
- 3× tlačítko
- potenciometr
- breadboard + kabely
Zapojení ovládacích prvků (přepsané z tabulky)
- potenciometr → GPIO 4
- tlačítko Play/Pause → GPIO 5
- tlačítko Previous → GPIO 18
- tlačítko Next → GPIO 19
MP3 modul zůstává:
- TX → GPIO 16
- RX → GPIO 17
Kompletní kód – MP3 přehrávač
1#include <YX5300_ESP32.h>
2
3#define RX 16
4#define TX 17
5
6const uint8_t pinBtnPlay = 5;
7const uint8_t pinBtnPrev = 18;
8const uint8_t pinBtnNext = 19;
9const uint8_t potVolume = 4;
10
11volatile bool isPlaying = true;
12const unsigned long DEBOUNCE_DELAY = 500;
13volatile unsigned long lastPressTime = 0;
14
15#define MIN_VOLUME 0
16#define MAX_VOLUME 30
17
18int current_volume = 0;
19
20YX5300_ESP32 mp3;
21
22void ARDUINO_ISR_ATTR buttonPlay() {
23 unsigned long now = millis();
24 if (now - lastPressTime > DEBOUNCE_DELAY) {
25 if(isPlaying) {
26 mp3.pause();
27 isPlaying = false;
28 } else {
29 mp3.resume();
30 isPlaying = true;
31 }
32 }
33 lastPressTime = now;
34}
35
36void ARDUINO_ISR_ATTR buttonPrev() {
37 mp3.prev();
38}
39
40void ARDUINO_ISR_ATTR buttonNext() {
41 mp3.next();
42}
43
44void setup() {
45 Serial.begin(115200);
46
47 pinMode(pinBtnPlay, INPUT_PULLUP);
48 pinMode(pinBtnPrev, INPUT_PULLUP);
49 pinMode(pinBtnNext, INPUT_PULLUP);
50
51 attachInterrupt(pinBtnPlay, buttonPlay, FALLING);
52 attachInterrupt(pinBtnPrev, buttonPrev, FALLING);
53 attachInterrupt(pinBtnNext, buttonNext, FALLING);
54
55 mp3 = YX5300_ESP32(Serial2, RX, TX);
56 mp3.enableDebugging();
57
58 mp3.playTrack(1);
59}
60
61void loop() {
62 int raw = analogRead(potVolume);
63 int volume = map(raw, 0, 4095, MIN_VOLUME, MAX_VOLUME);
64
65 if(volume != current_volume) {
66 mp3.setVolume(volume);
67 current_volume = volume;
68 }
69}Co projekt umí
- přehrát skladbu
- pauza / pokračování
- další / předchozí track
- regulace hlasitosti potenciometrem
Shrnutí
YX5300 / YX6300:
- jednoduchý MP3 modul
- ovládání přes UART
- ideální pro zvuk v projektech
Použití:
- alarmy
- notifikace
- IoT zařízení
- vlastní MP3 přehrávač
