Taula de continguts:

Reproductor MP3 amb Arduino: 6 passos
Reproductor MP3 amb Arduino: 6 passos

Vídeo: Reproductor MP3 amb Arduino: 6 passos

Vídeo: Reproductor MP3 amb Arduino: 6 passos
Vídeo: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Desembre
Anonim
Image
Image
Fitxa de dades
Fitxa de dades

En aquest muntatge, hem utilitzat un reproductor de mp3 amb Arduino Uno, un mini amplificador de so PAM8403 amb ajust de volum, un mòdul mp3 DFPlayer Mini i un parell d’altaveus de 3 watts.

Aquest esquema serveix no només per al reproductor de música, sinó també per permetre funcions de veu per a un dispositiu de barrera d’estacionament o un robot, entre d’altres. Aquest muntatge permetrà col·locar una veu gravada als aparells. Aquesta veu serà natural i no sintetitzada. Per a la majoria de la gent, aquestes són funcions preferibles en comparació amb les alternatives estàndard.

Per a aquest muntatge, estem utilitzant específicament l'Arduino Uno, però també podeu connectar-vos a ESP8266 o ESP32. Viouslybviament, es necessitarà un ajustament als pins.

Pas 1: full de dades

Pas 2: mòdul DFPlayer

Mòdul DFPlayer
Mòdul DFPlayer

El mòdul DFPlayer utilitza la comunicació sèrie RX TX, VCC, GND. Té sortida a dos altaveus i entrada d'àudio.

Pas 3: Mini amplificador PAM8403

Mini amplificador PAM8403
Mini amplificador PAM8403

Pas 4: Muntatge

muntatge
muntatge

Pas 5: biblioteques

Biblioteques
Biblioteques

Afegiu la següent biblioteca "DFRobotDFPlayerMini" per a la comunicació amb el mòdul mp3.

Simplement accediu a "Sketch >> Inclou biblioteques >> Gestiona biblioteques …"

Pas 6: codi font

Començarem definint les biblioteques i les constants que farem servir amb el nostre codi.

Comenceu creant un objecte, el programari de sèrie i un altre, que és myDFPlayer.

La variable buf, que és del tipus String, servirà per emmagatzemar les dades provinents de l’Arduino Serial, que seran les ordres del mòdul MP3. La variable "pausa" s'utilitzarà per indicar si la música s'està reproduint o en pausa (pause = true, i indica que està en pausa, en cas contrari s'està reproduint).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia una sèrie per programari amb pinso 10 i 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Objeto responsável pela comunicação com o módulo 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 presentes no SD card. Int maxSongs = 0;

Configuració

En aquest pas, posem opcions d’impressions per donar-vos indicacions de que està muntant el circuit, amb avaluacions de condicions falses, per exemple.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicialitza una sèrie de Arduino Serial.begin (115200); // Verifica se o modulo esta respondendo e se o // cartao SD fue encontrado Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("Inicialitzant mòdul DFPlayer … (3 ~ 5 segons)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicialitzat:"); Serial.println ("1. Cheque as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); mentre que (cert); } Serial.println (); Serial.println ("Mòdul DFPlayer Mini inicialitzat!"); // Definitius iniciais myDFPlayer.setTimeOut (500); // Timeout serial 500ms myDFPlayer.volume (10); // Volum 10 vaig de 0 a 30 myDFPlayer. EQ (0); // Equalizacao normal // recupera o número de Músiques trobades no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menú de comandos menu_opcoes ();

Menú Opcions

Controleu tot aquest muntatge a través del monitor sèrie. Per tant, cada cop, l’esquema imprimirà el menú d’opcions que tingueu, amb ordres i indicacions.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Per a seleccionar o arxiu MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa / continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ o -] augmenta o disminueix el volum"); Serial.println (); }

Bucle

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 / Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica …"); myDFPlayer.start (); } else {Serial.println ("Música pausada …"); myDFPlayer.pause (); } pausa =! pausa; menu_opcoes (); } // Parada if (buf == "s") {myDFPlayer.stop (); Serial.println ("Música 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 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Clàssic, 5 = Baix)"); menu_opcoes (); } // Aumenta volum if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volum atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui volum if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volum atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // loop

Recomanat: