Indholdsfortegnelse:

MP3 -afspiller med Arduino: 6 trin
MP3 -afspiller med Arduino: 6 trin

Video: MP3 -afspiller med Arduino: 6 trin

Video: MP3 -afspiller med Arduino: 6 trin
Video: Универсальный инфракрасный пульт ДУ на Arduino 2024, November
Anonim
Image
Image
Datablad
Datablad

I denne samling brugte vi en mp3-afspiller med Arduino Uno, en mini PAM8403 lydforstærker med lydstyrkejustering, et mp3-modul DFPlayer Mini og et par 3-Watt højttalere.

Denne ordning tjener ikke kun til musikafspilleren, men også til at tillade stemmefunktioner til blandt andet en parkeringsbarriere eller en robot. Denne samling muliggør placering af en indspillet stemme i apparaterne. Denne stemme vil være naturlig og ikke syntetiseret. For de fleste mennesker er disse foretrukne funktioner sammenlignet med standardalternativerne.

Til denne samling bruger vi specifikt Arduino Uno, men du kan også oprette forbindelse til ESP8266 eller ESP32. Det er naturligvis nødvendigt med en justering af stifterne.

Trin 1: Datablad

Trin 2: DFPlayer -modul

DFPlayer -modul
DFPlayer -modul

DFPlayer -modulet bruger den serielle kommunikation RX TX, VCC, GND. Den har output til to højttalere og lydindgang.

Trin 3: Mini -forstærker PAM8403

Mini forstærker PAM8403
Mini forstærker PAM8403

Trin 4: Montering

montage
montage

Trin 5: Biblioteker

Biblioteker
Biblioteker

Tilføj følgende "DFRobotDFPlayerMini" bibliotek til kommunikation med mp3 -modulet.

Du skal blot få adgang til "Skitse >> Inkluder biblioteker >> Administrer biblioteker …"

Trin 6: Kildekode

Vi starter med at definere de biblioteker og konstanter, vi vil bruge med vores kode.

Start med at oprette et objekt, den serielle software og et andet, som er myDFPlayer.

Buf -variablen, der er af typen String, tjener til at gemme dataene fra Arduino Serial, som vil være kommandoerne for MP3 -modulet. Variablen "pause" bruges til at angive, om musikken afspilles eller er sat på pause (pause = sand, og angiver, at den er sat på pause, ellers spiller den).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia en serie af software nr. 10 og 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Ansvarlig respons på komunicação com eller modulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responsável por armazenar os comandos enviados para controlar 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 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass) "// variável responsável por armazenar o total de músicas præsenterer intet SD -kort. Int maxSongs = 0;

Opsætning

I dette trin sætter vi muligheder for udskrifter for at give dig indikationer på, at det monterer kredsløbet, f.eks. Med evalueringer af falske forhold.

void setup () {// Comunicacao seriel com eller modul 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 segundos)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque som conexoes gør DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); mens (sandt); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Timeout seriel 500ms myDFPlayer.volume (10); // bind 10 fra 0 til 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 ();

Valgmenu

Du styrer hele denne samling gennem den serielle skærm. Så hver gang udskriver ordningen den menu, du har, med kommandoer, retninger.

void menu_opcoes () {Serial.println (); Serial.println ("Komandoer:"); 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 ("[+ eller -] aumenta ou diminui o volume"); Serial.println (); }

Sløjfe

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 ()); // afspilning af musik menu_opcoes (); } // Pausa/Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica …"); myDFPlayer.start (); } ellers {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 ++; hvis (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 (); } // Aumenta -volumen hvis (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui volumen hvis (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // loop

Anbefalede: