Cuprins:

MP3 Player cu Arduino: 6 pași
MP3 Player cu Arduino: 6 pași

Video: MP3 Player cu Arduino: 6 pași

Video: MP3 Player cu Arduino: 6 pași
Video: Arduino Start #6. Модуль MP3 и ARDUINO 2024, Noiembrie
Anonim
Image
Image
Fișa cu date
Fișa cu date

În acest ansamblu, am folosit un player mp3 cu Arduino Uno, un mini amplificator de sunet PAM8403 cu reglare a volumului, un modul mp3 DFPlayer Mini și o pereche de difuzoare de 3 wați.

Această schemă servește nu numai pentru music player, ci și pentru a permite funcții vocale pentru un dispozitiv de barieră de parcare sau un robot, printre altele. Acest ansamblu va permite plasarea unei voci înregistrate în aparate. Această voce va fi naturală și nu sintetizată. Pentru majoritatea oamenilor, acestea sunt caracteristici preferabile în comparație cu alternativele standard.

Pentru acest ansamblu, folosim în mod special Arduino Uno, dar vă puteți conecta și la ESP8266 sau ESP32. Evident, va fi necesară o ajustare pe știfturi.

Pasul 1: Foaie de date

Pasul 2: Modul DFPlayer

Modul DFPlayer
Modul DFPlayer

Modulul DFPlayer utilizează comunicația serială RX TX, VCC, GND. Are ieșire la două difuzoare și intrare audio.

Pasul 3: Mini Amplificator PAM8403

Mini Amplificator PAM8403
Mini Amplificator PAM8403

Pasul 4: Asamblare

Asamblare
Asamblare

Pasul 5: Biblioteci

Biblioteci
Biblioteci

Adăugați următoarea bibliotecă „DFRobotDFPlayerMini” pentru comunicarea cu modulul mp3.

Pur și simplu accesați „Schiță >> Includeți biblioteci >> Gestionați bibliotecile …”

Pasul 6: Cod sursă

Vom începe prin a defini bibliotecile și constantele pe care le vom folosi cu codul nostru.

Începeți prin a crea un obiect, software-ul serial și altul, care este myDFPlayer.

Variabila buf, care este de tip String, va servi pentru a stoca datele provenite din seria Arduino, care vor fi comenzile pentru modulul MP3. Variabila „pauză” va fi utilizată pentru a indica dacă muzica este redată sau întreruptă (pauză = adevărat și indică faptul că este întreruptă, altfel este redată).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Începeți o serie de software pentru pinii 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 pentru control 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;

Înființat

În acest pas, punem opțiuni de imprimări pentru a vă oferi indicații că montează circuitul, cu evaluări ale condițiilor false, de exemplu.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa un serial Arduino Serial.begin (115200); // Verifica se o modulo esta respondendo e se o // cartao SD a fost găsit 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 as conexes do DFPlayer Mini”); Serial.println ("2. Insira um cartao SD"); while (adevărat); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definiții inițiază myDFPlayer.setTimeOut (500); // Timeout serial 500ms myDFPlayer.volume (10); // Volumul 10 vai de 0 la 30 myDFPlayer. EQ (0); // Equalizacao normal // recupera o număr de Músicas găsite no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Show o menu de comenzi menu_opcoes ();

Meniu Opțiuni

Controlați întregul ansamblu prin intermediul monitorului serial. Deci, de fiecare dată, schema va imprima meniul Opțiuni pe care îl aveți, cu comenzi, instrucțiuni.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Pentru a selecta o arhiva MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa / continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ or -] mărește sau diminuează volumul"); Serial.println (); }

Buclă

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 ("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 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass)"); menu_opcoes (); } // Aumenta volume if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volumul atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui volumul if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volumul atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // buclă

Recomandat: