Sadržaj:

MP3 player s Arduinom: 6 koraka
MP3 player s Arduinom: 6 koraka

Video: MP3 player s Arduinom: 6 koraka

Video: MP3 player s Arduinom: 6 koraka
Video: Урок 19 Делаем MP3 плеер на DFPlayer Mini и Arduino 2024, Studeni
Anonim
Image
Image
Tehnički list
Tehnički list

U ovom sklopu koristili smo mp3 player s Arduino Uno, mini PAM8403 pojačalo zvuka s podešavanjem glasnoće, mp3 modul DFPlayer Mini i par 3-vatnih zvučnika.

Ova shema služi ne samo za glazbeni player, već i za dopuštanje glasovnih funkcija uređaja za parkiranje ili robota. Ovaj sklop omogućit će postavljanje snimljenog glasa u aparate. Ovaj glas će biti prirodan i neće biti sintetiziran. Za većinu ljudi to su bolje karakteristike u odnosu na standardne alternative.

Za ovaj sklop posebno koristimo Arduino Uno, ali možete se povezati i na ESP8266 ili ESP32. Očito će biti potrebno podešavanje na iglama.

Korak 1: Tehnički list

Korak 2: DFPlayer modul

DFPlayer modul
DFPlayer modul

Modul DFPlayer koristi serijsku komunikaciju RX TX, VCC, GND. Ima izlaz na dva zvučnika i audio ulaz.

Korak 3: Mini pojačalo PAM8403

Mini pojačalo PAM8403
Mini pojačalo PAM8403

Korak 4: Montaža

Skupština
Skupština

Korak 5: Knjižnice

Knjižnice
Knjižnice

Dodajte sljedeću biblioteku "DFRobotDFPlayerMini" za komunikaciju s mp3 modulom.

Jednostavno pristupite "Sketch >> Include Libraries >> Manage Libraries …"

Korak 6: Izvorni kod

Počet ćemo definiranjem knjižnica i konstanti koje ćemo koristiti s našim kodom.

Počnite stvaranjem jednog objekta, serijskog softvera i drugog, a to je myDFPlayer.

Varijabla buf, koja je tipa String, poslužit će za pohranu podataka koji dolaze iz Arduino Seriala, a to će biti naredbe za MP3 modul. Varijabla "pause" koristit će se za označavanje sviranja ili pauziranja glazbe (pause = true, i označava da je pauzirana, inače se svira).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia serijski ili softverski broj pinos 10 i 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Objeto responvel pela comunicação com o módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responsável por armazenar os comandos enviados para controler o player String buf; // variável responsável por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; // variável responsável por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = Normalno, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass) "// različito odgovaranje por armazenara o ukupnoj količini glazbe bez SD kartice. Int maxSongs = 0;

Postaviti

U ovom koraku stavljamo opcije ispisa kako bismo vam dali naznake da montira krug, na primjer s procjenama lažnih uvjeta.

void setup () {// Comunicacao serijski com o modulo mySoftwareSerial.begin (9600); // Inicializa a serial do Arduino Serial.begin (115200); // Verifica se o modulo esta respondendo e se o // cartao SD foi encontrado Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("Inicializando modulo DFPlayer … (3 ~ 5 sekundi)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque kao conexoes čine DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); while (istina); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicies iniciais myDFPlayer.setTimeOut (500); // Vremensko ograničenje serijskog 500ms myDFPlayer.volume (10); // Svezak 10 vai de 0 a 30 myDFPlayer. EQ (0); // Equalizacao normal // recupera o numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

Izbornik Opcije

Cijelim ovim sklopom upravljate putem serijskog monitora. Stoga će svaki put shema ispisivati izbornik s opcijama koji imate, s naredbama, uputama.

void menu_opcoes () {Serial.println (); Serial.println ("Komandi:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Para selecionar o arquivo MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ ili -] aumenta ou diminui o volumenu"); Serial.println (); }

Petlja

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera 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á play na música menu_opcoes (); } // Pausa/Nastavi 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 (); } // Odabir equalizacao if (buf == "e") {equalizacao ++; if (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (izjednačavanje); Serial.print ("Equalizacao:"); Serijski.tisak (equalizacao); Serial.println ("(0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass)"); menu_opcoes (); } // Zvuk Aumenta if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Stvarni volumen:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Smanjivanje glasnoće if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Stvarni volumen:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // petlja

Preporučeni: