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, Septembar
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 muzički player, već i za omogućavanje glasovnih funkcija za uređaj za parkiranje ili robota, između ostalog. Ovaj sklop će omogućiti postavljanje snimljenog glasa u aparate. Ovaj glas će biti prirodan i neće biti sintetiziran. Za većinu ljudi ovo 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čigledno će biti potrebno podešavanje na pinovima.

Korak 1: Tehnički list

Korak 2: DFPlayer modul

DFPlayer modul
DFPlayer modul

DFPlayer modul 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

Montaža
Montaža

Korak 5: Biblioteke

Biblioteke
Biblioteke

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

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

Korak 6: Izvorni kod

Započet ćemo definiranjem biblioteka 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 Serial -a, što će biti naredbe za MP3 modul. Varijabla "pause" će se koristiti za označavanje da li se muzika reprodukuje ili je pauzirana (pause = true, i označava da je pauzirana, u suprotnom se reprodukuje).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia serijski softver sa brojevima pinos 10 i 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Objektno reagiranje na komunikaciju s MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // različito odgovaranje na armazenar osnove komandi za kontrolere o igraču String buf; // varijabilni odgovor na armazenar o estado do playeru (0: tocando; 1: pausado) boolean pausa = false; // varijabla odgovora prema armazenarima o stanju izjednačavanja // varijabla 0 0 5 int equalizacao = 0; // (0 = Normalno, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass) "// različito odgovaranje prema armazenarima o ukupnoj količini muzike bez SD kartice. Int maxSongs = 0;

Postaviti

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

void setup () {// Comunicacao serijsko povezivanje o modulu mySoftwareSerial.begin (9600); // Pokretanje serijske serije na Arduino Serial.begin (115200); // Verificira se o modulu da se odgovori i // o SD karti za 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 do DFPlayer Mini"); Serial.println ("2. Insira um kartao SD"); while (istina); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicije iniciais myDFPlayer.setTimeOut (500); // Vremensko ograničenje serijskog 500ms myDFPlayer.volume (10); // Volume 10 vai de 0 a 30 myDFPlayer. EQ (0); // Normalno izjednačavanje // rekuperacija broja glazbenih podataka bez SD -a. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Prikaz menija sa komandnih mjesta menu_opcoes ();

Meni Opcije

Cijelim ovim sklopom upravljate putem serijskog monitora. Tako će svaki put shema ispisivati izbornik opcija koji imate s naredbama i uputama.

void menu_opcoes () {Serial.println (); Serial.println ("Komandi:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Za odabir MP3 arkiva"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ ili -] zvuk ili smanjenje volumena"); Serial.println (); }

Petlja

void loop () {// Aguarda entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados from entrada buf = Serial.readStringUntil ('\ n'); // Reproduciraj (índice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // igrajte na muzici menu_opcoes (); } // Pauza/Nastavi muziku if (buf == "p") {if (pausa) {Serial.println ("Nastavi muziku …"); 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 (equalizacao); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass)"); menu_opcoes (); } // Jačina zvuka if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Stvarni volumen:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Smanjivanje jačine zvuka if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Stvarni volumen:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // petlja

Preporučuje se: