Obsah:

MP3 prehrávač s Arduino: 6 krokov
MP3 prehrávač s Arduino: 6 krokov

Video: MP3 prehrávač s Arduino: 6 krokov

Video: MP3 prehrávač s Arduino: 6 krokov
Video: Arduino Start #6. Модуль MP3 и ARDUINO 2024, November
Anonim
Image
Image
Dátový hárok
Dátový hárok

V tejto zostave sme použili mp3 prehrávač s Arduino Uno, zvukový zosilňovač mini PAM8403 s reguláciou hlasitosti, mp3 modul DFPlayer Mini a dvojicu 3-wattových reproduktorov.

Táto schéma slúži nielen pre prehrávač hudby, ale okrem iného umožňuje aj hlasové funkcie pre zariadenie parkovacej bariéry alebo robota. Táto zostava umožní umiestnenie zaznamenaného hlasu do prístrojov. Tento hlas bude prirodzený a nebude syntetizovaný. Pre väčšinu ľudí sú to preferované vlastnosti v porovnaní so štandardnými alternatívami.

Pre túto zostavu konkrétne používame Arduino Uno, ale môžete sa pripojiť aj k ESP8266 alebo ESP32. Očividne bude potrebná úprava kolíkov.

Krok 1: Technický list

Krok 2: Modul DFPlayer

Modul DFPlayer
Modul DFPlayer

Modul DFPlayer používa sériovú komunikáciu RX TX, VCC, GND. Má výstup na dva reproduktory a zvukový vstup.

Krok 3: Mini zosilňovač PAM8403

Mini zosilňovač PAM8403
Mini zosilňovač PAM8403

Krok 4: Zostavenie

zhromaždenie
zhromaždenie

Krok 5: Knižnice

Knižnice
Knižnice

Pridajte nasledujúcu knižnicu „DFRobotDFPlayerMini“na komunikáciu s modulom mp3.

Jednoducho vstúpte do „Náčrtu >> Zahrnúť knižnice >> Spravovať knižnice …"

Krok 6: Zdrojový kód

Začneme definovaním knižníc a konštánt, ktoré použijeme v našom kóde.

Začnite vytvorením jedného objektu, sériového softvéru a druhého, ktorým je myDFPlayer.

Premenná buf, ktorá je typu String, bude slúžiť na ukladanie údajov pochádzajúcich z Arduino Serial, čo budú príkazy pre modul MP3. Premenná „pauza“sa použije na označenie, či sa hudba prehráva alebo je pozastavená (pause = true a znamená, že je pozastavená, inak sa prehráva).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Informácie o sériovom alebo softvérovom softvéri, ako napríklad 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Odpoveď na otázku, ktorá komunikácia môže byť k dispozícii pre modul MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responzel por armazenar os comandos enviados para controlar o player String buf; // variável responzel por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; // rôzne odozvy na vyrovnanie rozdielov // rozdiel od 0 do 5 interných ekvalizácií = 0; // (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass) "// variável responzel por armazenar o total de músicas presentes no SD card. Int maxSongs = 0;

Nastaviť

V tomto kroku uvádzame možnosti výtlačkov, aby sme vám poskytli náznaky, že montuje obvod, napríklad s vyhodnotením falošných podmienok.

void setup () {// Comunicacao serial com or modulo mySoftwareSerial.begin (9600); // Inicializácia a sériové číslo do Arduino Serial.begin (115200); // Verifica sa o modulo esta responendo e se o // cartao SD for encontrado Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println („Inicializando modulo DFPlayer… (3 ~ 5 segundos)“); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println („1. Cheque ako conexoes to DFPlayer Mini“); Serial.println ("2. Insira um cartao SD"); while (pravda); } Serial.println (); Serial.println („Modulo DFPlayer Mini inicializované!“); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Sériový časový limit 500ms myDFPlayer.volume (10); // Volume 10 vai de 0 a 30 myDFPlayer. EQ (0); // Normálne vyrovnanie // Obnovenie počtu hudobných záznamov bez SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o comandos menu_opcoes ();

Ponuka možností

Celú túto zostavu ovládate prostredníctvom sériového monitora. Schéma teda zakaždým vytlačí ponuku možností, ktorú máte, s príkazmi a pokynmi.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Výber zo súboru MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] selekiona equalizacao"); Serial.println ("[+ alebo -] aumenta ou diminui o volume"); Serial.println (); }

Slučka

void loop () {// Aguarda a entrada de dados pela serial serial while (Serial.available ()> 0) {// rekupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reproducao (índice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // dá hrať na música menu_opcoes (); } // Pausa/Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica …"); myDFPlayer.start (); } else {Serial.println ("Musica pausada …"); myDFPlayer.pause (); } pausa =! pausa; menu_opcoes (); } // Parada if (buf == "s") {myDFPlayer.stop (); Serial.println („Musica parada!“); menu_opcoes (); } // Seleciona equalizacao if (buf == "e") {equalizacao ++; if (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (equalizacao); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = normálny, 1 = popový, 2 = rockový, 3 = jazzový, 4 = klasický, 5 = basový)"); menu_opcoes (); } // Objem Aumenta if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui volume if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // slučka

Odporúča: