Elektronika, ukázky pro Arduino a STM8, plus programování v Delphi (Lazarusu).


     

MP3 přehrávač+bluetooth s dálkovým ovladačem v.2

pro Arduino

V důchodu mám dost času na vymýšlení různých pitomostí, zvláště v době, kdy jinak není moc co dělat. Zde je jedna z nich.
Napadlo mne vyrobit MP3 přehrávač + bluetooth reproduktor s dálkovým ovládáním s obousměrnou komunikací. To znamená, že na ovladači je kromě tlačítek i displej, kde se zobrazuje název právě přehrávaného souboru, jeho pořadí, doba trvání s odečtem a celkový počet souborů. Klasický infra snímač zde použít nejspíš nelze, takže jsem ke komunikaci použil 433MHz modul HC-12 připojený k seriovemu portu (UART).
dratak Tesla Jako přehrávač je zde modul BT201, který je rovněž ovládán (kromě interních tlačítek) pomocí seriového portu, takže tento modul lze ovládat přímo. Není tedy potřeba nic upravovat, ani překládat, modul HC-12 se prosté připojí k příslušným pinům (viz schema níže).
Oproti předešlé verzi bezdráťáku která komunikuje ve wifi pásmu 2,4GHz, jde o velké zjednodučení, protože na straně přehrávače ("serveru"), není žádný kontrolér a není tedy třeba ani nic programovat.
Chtěl jsem zachovat možnost ovládat hlasitost potenciometrem na stanici, aniž bych použil nějaký nf zesilovač připojený na sluchátkový výstup zvukového modulu BT201. Dal jsem tedy potenciometr přímo na výkonový výstup modulu BT201. Potenciometr má trochu netypickou hodnotu 100R (menší jsem nesehnal). Koupit se dá zde, včetně ostatních pasivních součástek (tlumivka, kondenzátory). Reproduktor je galvanicky oddělen od jezdce potenciometru kondenzátorem 100u.
Reproduktor se samozřejmě dá připojit přímo k výkonovému výstupu BT201 (piny SPK). Potenciometr, ani výstupní kondenzátor pak není potřeba a hlasitost se reguluje pouze ovladačem.

Ovladač

Zapojení ovladače je jednoduché. Na Arduino UNO je nasazený LCD shield 16 x 2 a k němu je připojen komunikační modul HC-12. Na LCD shieldu je šest tlačítek - select, left, up, down, right a reset. Reset je "natvrdo", ten programově využít nelze.

dratak ovladac Ostatní tlačítka jsou naprogramována takto:
  • select - krátký stisk: play / pause
  • select - dlouhý stisk: výběr zdroje zvuku
    (up: TF karta, down: USB, left: Bluetooth)
  • left - krátký stisk: o soubor zpět
  • left - dlouhý stisk: o složku zpět
  • right - krátký stisk: o soubor vpřed
  • right - dlouhý stisk: o složku vpřed
  • up - krátký stisk: zesílit hlasitost
  • up - dlouhý stisk: reset modulu BT201
  • down - krátký stisk: zeslabit hlasitost
  • down - dlouhý stisk: znovunačtení údajů

Pokud přibližně minutu nebude stisknuto žádné tlačítko, zhasne podsvit displeje, kvůli šetření napájení. Při zapnutém podsvitu je odběr ovladače 170mA a při zhasnutém necelých 50mA. Při stisku jakéhokoliv tlačítka, kromě resetu, se displej opět rozsvítí. Displej se také rozsvítí při změně skladby (souboru).
Na displeji ovladače se zobrazuje pořadí skladby, celkový počet skladeb a zbývající čas, do konce právě přehrávané skladby. Navíc i název právě přehrávaného souboru. Názvy souborů, bývají všelijak zpotfořené, jsem ze staré školy a diakritiku v názvech nemám rád. Mnohdy to dělá problémy. Displej má šířku šestnáct znaků a pokud je název delší, zobrazí se prvních osm a posledních sedm znaků z názvu. Z názvu jsou navíc vylučovány mezery, speciláni znaky a podobně, stejně jako přípona MP3. Vše se dá změnit případnou úpravou programu ovladače.

moduly
stáhnout toto schéma v PDF

V ladícím (DEBUG) režimu je pro seriovou komunikaci použita knihovna SoftwareSerial, která je připojena na piny 11 a 12 (RX, TX). Ve schématu naznačeno přerušovanou čarou. Pro standartní provoz je použit hardwarový UART arduina na pinech 0 a 1 (RX, TX). Během nahrávání programu z počítače je nutno mít tyto piny odpojené, protože jsou zároveň použity i pro komunikaci s počítačem. Více seriových linek totiž arduino UNO nemá.

Pásmo 433MHz je u modulu HC-12 rozděleno na 100 kanálů s šířkou 400kHz (433.4MHz - 473.0MHz). Ovladač i stanice musí pracovat na stejném kanálu a při stejné přenosové rychlosti.. Defaultně je nastaven první kanál, přenosová ryhlost 9600Bd a vysílací výkon 100mW (maximální). K nastavení slouží pin SET na modulu, kdy při logické nule přijímá řídící AT příkazy, viz manuál. Při logické jedničce, nebo pokud tento pin nebude připojen, posílá/přjímá data ze seriové linky z/do éteru. Při vysílacím výkonu 100mW má ovladač velký dosah, až stovky metrů. V případě tohoto použití je zbytečný a je dobré výkon snížit.
K nastavení modulu HC-12 můžete použít například tento malý program Toma Heylena. Zapojte ovladač podle schématu výše, pro ladicí režim (RX, TX na piny 11 a 12) a nahrajte jej do Arduina. Aby se odeslané příkazy staly platnými a nahrály se do flash, je nutno pin SET nahodit do jedničky, než se odpojí napájení. Alespoň takhle nějak to píší v manuálu.

Zdrojový kod ovladač (Arduino UNO) stáhnout
aktualizováno 31.8.2025         

Ladící a standartní režim je určen výrazem #define DEBUG. Pokud tento výraz ve zdrojáku nebude, jedná se o standartni provoz. Pro daný režim je vždy nutno přepojit RX a TX na příslušné piny arduina.
Komunikace mezi stanicí a ovladačem je asynchronní, po odeslání dat se hned nezpracovává odpověď. V jiné smyčce se pak snímají požadovaná data (pořadí, celkový počet, čas a název souboru).

Co je potřeba:
Moduly pro stanici: Moduly pro ovladadač:

Poznámka na závěr:
Modul BT201 má mnoho dalších funkcí a celý tento "projekt" by šel dál rozvíjet. Chtělo by to jiný ovladač, s více tlačítky a možná i většímm displejem.
Modul umožňuje nahrávání z mikrofonu, místo přímého výstupu do reproduktoru, se může ke sluchátkovému výstupu modulu připojit stereofonnní zesilovač, atd, atd... Snad někdy příště :-).


Vzkazník - dotazy, názory, připominky, hlášení chyb, atd:
případný E-mail nebude nikde zveřejněn, uveďte jej, pouze pokud si přejete odpověď.

Elektronika, ukázky pro Arduino a STM8, plus programování v Delphi (Lazarusu).
Všechna zapojení modulů v ukázkách (viz elektrická schémata) pracují s velmi malým napětím 3.3V až 12V a neobsahují návod na napájecí zdroj. Pokud se rozhodnete některé z těchto zařízení postavit, důrazně doporučuji používat zdroje s výstupním napětím maximálně 12V, podle schválených norem platných v ČR. Autor návodů za případné škody nepřebírá žádnou odpovědnost.
nahoru

(c) 2026 iisivak.xf.cz