Sommario:

Lettore MP3 con Arduino: 6 passaggi
Lettore MP3 con Arduino: 6 passaggi

Video: Lettore MP3 con Arduino: 6 passaggi

Video: Lettore MP3 con Arduino: 6 passaggi
Video: Lettore MP3 Con Arduino UNO R3 2024, Dicembre
Anonim
Image
Image
Scheda dati
Scheda dati

In questo assemblaggio, abbiamo utilizzato un lettore mp3 con Arduino Uno, un mini amplificatore audio PAM8403 con regolazione del volume, un modulo mp3 DFPlayer Mini e una coppia di altoparlanti da 3 Watt.

Questo schema serve non solo per il lettore musicale, ma anche per consentire le funzioni vocali per un dispositivo barriera di parcheggio o un robot, tra gli altri. Questo montaggio consentirà il posizionamento di una voce registrata negli apparati. Questa voce sarà naturale e non sintetizzata. Per la maggior parte delle persone, queste sono caratteristiche preferibili rispetto alle alternative standard.

Per questo assemblaggio, utilizziamo specificamente Arduino Uno, ma puoi anche connetterti a ESP8266 o ESP32. Ovviamente sarà necessaria una regolazione sui perni.

Passaggio 1: scheda tecnica

Passaggio 2: modulo DFPlayer

Modulo DFPlayer
Modulo DFPlayer

Il modulo DFPlayer utilizza la comunicazione seriale RX TX, VCC, GND. Ha uscita a due altoparlanti e ingresso audio.

Passaggio 3: Mini amplificatore PAM8403

Mini amplificatore PAM8403
Mini amplificatore PAM8403

Passaggio 4: assemblaggio

Assemblea
Assemblea

Passaggio 5: biblioteche

Biblioteche
Biblioteche

Aggiungere la seguente libreria "DFRobotDFPlayerMini" per la comunicazione con il modulo mp3.

Accedi semplicemente a "Schizzo >> Includi librerie >> Gestisci librerie …"

Passaggio 6: codice sorgente

Inizieremo definendo le librerie e le costanti che useremo con il nostro codice.

Inizia creando un oggetto, il software seriale e un altro, che è myDFPlayer.

La variabile buf, che è di tipo String, servirà per memorizzare i dati provenienti dal Seriale Arduino, che saranno i comandi per il modulo MP3. La variabile "pausa" verrà utilizzata per indicare se la musica è in riproduzione o in pausa (pause = true, e indica che è in pausa, altrimenti è in riproduzione).

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Inizia a serial por software nos pinos 10 e 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 per armazear os comandi inviados per 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 stado 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 non presenta una scheda SD. int maxSongs = 0;

Impostare

In questo passaggio, mettiamo opzioni di stampe per darti indicazioni che sta montando il circuito, ad esempio con valutazioni di condizioni false.

void setup(){ //Comunicacao serial com o modulo mySoftwareSerial.begin(9600); //Inizializzazione di un seriale con Arduino Serial.begin(115200); //Verifica se o modulo esta responseendo e se o //cartao SD foi encontrado Serial.println(); Serial.println("DFRobot DFPlayer Mini"); Serial.println("Inizializzazione modulo DFPlayer… (3~5 secondi)"); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Nao inicializado:"); Serial.println("1. Controllare come conexoes fa DFPlayer Mini"); Serial.println("2. Insira um cartao SD"); mentre (vero); } Serial.println(); Serial.println("Modulo DFPlayer Mini inicializado!"); //Definicoes iniciais myDFPlayer.setTimeOut(500); //Timeout seriale 500ms myDFPlayer.volume(10); //Volume 10 vai da 0 a 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 di comandi menu_opcoes();

Menu Opzioni

Controlli l'intero assieme attraverso il monitor seriale. Quindi, ogni volta, lo schema stamperà il menu Opzioni che hai, con comandi, indicazioni.

void menu_opcoes(){ Serial.println(); Serial.println("Comando:"); Serial.print("[1-"); Serial.print(maxSongs); Serial.println("] Per selezionare o archiviare MP3"); Serial.println("[s] parar riproducao"); Serial.println("[p] pausa/continua una musica"); Serial.println("[e] seleciona equalizacao"); Serial.println(" [+ o -] aumenta ou diminui o volume"); Serial.println(); }

Ciclo continuo

void loop(){ //Aguarda l'accesso a tutti i dati serial while (Serial.available() > 0) { //recupera i dati all'accesso 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()); // per riprodurre la musica menu_opcoes(); } //Pausa/Continua a musica if (buf == "p") { if (pausa) { Serial.println("Continua musica…"); mioDFPlayer.start(); } else { Serial.println("Musica in pausada…"); myDFPlayer.pause(); } pausa = !pausa; menu_opcoes(); } //Parada if (buf == "s") { myDFPlayer.stop(); Serial.println("Musica parata!"); 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 = Normale, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classico, 5 = Basso)"); menu_opcoes(); } //Aumenta volume if (buf == "+") { myDFPlayer.volumeUp(); Serial.print("Volume attuale:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } //Diminui volume if (buf == "-") { myDFPlayer.volumeDown(); Serial.print("Volume attuale:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } //mentre } //loop

Consigliato: