Isi kandungan:

Pemain MP3 Dengan Arduino: 6 Langkah
Pemain MP3 Dengan Arduino: 6 Langkah

Video: Pemain MP3 Dengan Arduino: 6 Langkah

Video: Pemain MP3 Dengan Arduino: 6 Langkah
Video: A compete guide to mp3 Module using Arduino & ESP32 board | DFPlayer Mini | Arduino Projects 2024, November
Anonim
Image
Image
Lembaran data
Lembaran data

Dalam perhimpunan ini, kami menggunakan pemain mp3 dengan Arduino Uno, penguat suara PAM8403 mini dengan penyesuaian kelantangan, modul mp3 DFPlayer Mini, dan sepasang pembesar suara 3-Watt.

Skema ini tidak hanya berfungsi untuk pemain muzik, tetapi juga membolehkan fungsi suara untuk peranti penghalang tempat letak kereta atau robot, antara lain. Perhimpunan ini akan memungkinkan penempatan suara yang dirakam dalam peralatan. Suara ini akan semula jadi dan tidak disintesis. Bagi kebanyakan orang, ini adalah ciri yang lebih disukai berbanding dengan alternatif standard.

Untuk pemasangan ini, kami menggunakan Arduino Uno secara khusus, tetapi anda juga boleh menyambung ke ESP8266 atau ESP32. Jelas, penyesuaian akan diperlukan pada pin.

Langkah 1: Lembaran Data

Langkah 2: Modul DFPlayer

Modul DFPlayer
Modul DFPlayer

Modul DFPlayer menggunakan komunikasi bersiri RX TX, VCC, GND. Ia mempunyai output ke dua pembesar suara dan input audio.

Langkah 3: Penguat Mini PAM8403

Penguat Mini PAM8403
Penguat Mini PAM8403

Langkah 4: Perhimpunan

perhimpunan
perhimpunan

Langkah 5: Perpustakaan

Perpustakaan
Perpustakaan

Tambahkan pustaka "DFRobotDFPlayerMini" berikut untuk komunikasi dengan modul mp3.

Cukup akses "Sketsa >> Sertakan Perpustakaan >> Urus Perpustakaan …"

Langkah 6: Kod Sumber

Kita akan mulakan dengan menentukan perpustakaan dan pemalar yang akan kita gunakan dengan kod kita.

Mulakan dengan membuat satu objek, perisian bersiri, dan yang lain, yang merupakan myDFPlayer.

Pemboleh ubah buf, yang jenis String, akan berfungsi untuk menyimpan data yang berasal dari Arduino Serial, yang akan menjadi perintah untuk modul MP3. Pemboleh ubah "jeda" akan digunakan untuk menunjukkan apakah musik dimainkan atau dijeda (jeda = benar, dan menunjukkan bahawa muzik dijeda, jika tidak, ia sedang dimainkan).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial por software nos pinos 10 e 11 PerisianSerial 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 tidak mempunyai kad SD. Int maxSongs = 0;

Persediaan

Dalam langkah ini, kami meletakkan pilihan cetakan untuk memberi anda petunjuk bahawa ia memasang litar, dengan penilaian keadaan palsu, misalnya.

batal persediaan () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa sebuah siri 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)"); jika (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque seperti conexoes melakukan DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); sementara (benar); } Bersiri.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Timeout bersiri 500ms myDFPlayer.volume (10); // Jilid 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); Bersiri.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

Menu Pilihan

Anda mengawal keseluruhan pemasangan ini melalui monitor bersiri. Jadi setiap kali, skema akan mencetak Menu Pilihan yang anda miliki, dengan arahan, arahan.

batal menu_opcoes () {Serial.println (); Serial.println ("Komandos:"); 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 ("[+ atau -] aumenta ou diminui o volume"); Bersiri.println (); }

Gelung

gelung kosong () {// Aguarda a entrada de dados pela bersiri sementara (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reproducao (índice da música) jika ((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 (); } lain {Serial.println ("Musica pausada…"); myDFPlayer.pause (); } pausa =! pausa; menu_opcoes (); } // Parada if (buf == "s") {myDFPlayer.stop (); Serial.println ("Musica parada!"); menu_opcoes (); } // Seleciona equalizacao jika (buf == "e") {equalizacao ++; jika (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 (); } // Volume Aumenta jika (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui kelantangan jika (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // gelung

Disyorkan: