Índice:

MP3 Player com Arduino: 6 etapas
MP3 Player com Arduino: 6 etapas

Vídeo: MP3 Player com Arduino: 6 etapas

Vídeo: MP3 Player com Arduino: 6 etapas
Vídeo: Мини MP3 плеер и Ардуино 2024, Novembro
Anonim
Image
Image
Ficha de dados
Ficha de dados

Nesta montagem, utilizamos um mp3 player com Arduino Uno, um mini amplificador de som PAM8403 com ajuste de volume, um módulo mp3 DFPlayer Mini e um par de alto-falantes de 3 watts.

Este esquema serve não só para o reprodutor de música, mas também para permitir funções de voz para um dispositivo de barreira de estacionamento ou um robô, entre outros. Esta montagem permitirá a colocação de uma voz gravada nos aparelhos. Essa voz será natural e não sintetizada. Para a maioria das pessoas, esses recursos são preferíveis em comparação com as alternativas padrão.

Para esta montagem, estamos usando especificamente o Arduino Uno, mas você também pode se conectar ao ESP8266 ou ESP32. Obviamente, será necessário um ajuste nos pinos.

Etapa 1: folha de dados

Etapa 2: Módulo DFPlayer

Módulo DFPlayer
Módulo DFPlayer

O módulo DFPlayer usa a comunicação serial RX TX, VCC, GND. Possui saída para dois alto-falantes e entrada de áudio.

Etapa 3: Mini Amplificador PAM8403

Mini Amplificador PAM8403
Mini Amplificador PAM8403

Etapa 4: Montagem

conjunto
conjunto

Etapa 5: Bibliotecas

Bibliotecas
Bibliotecas

Adicione a seguinte biblioteca "DFRobotDFPlayerMini" para comunicação com o módulo mp3.

Basta acessar "Sketch >> Incluir Bibliotecas >> Gerenciar Bibliotecas…"

Etapa 6: Código Fonte

Começaremos definindo as bibliotecas e constantes que usaremos com nosso código.

Comece criando um objeto, o software serial, e outro, que é myDFPlayer.

A variável buf, que é do tipo String, servirá para armazenar os dados vindos do Arduino Serial, que serão os comandos para o módulo MP3. A variável "pause" será usada para indicar se a música está tocando ou pausada (pause = true, e indica que está em pausa, caso contrário, está tocando).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia um software por serial 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 por armazenar os comandos para controlar o jogador 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 = Clássico, 5 = Baixo) "// variável responsável por armazenar o total de músicas no cartão SD. Int maxSongs = 0;

Configurar

Nesta etapa, colocamos opções de impressos para dar indicações de que está montando o circuito, com avaliações de condições falsas, por exemplo.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa um serial do Arduino Serial.begin (115200); // Verifica se o módulo esta respondendo e se // 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 as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); enquanto (verdadeiro); } Serial.println (); Serial.println ("Módulo DFPlayer Mini inicializado!"); // Definições iniciais myDFPlayer.setTimeOut (500); // Timeout serial 500ms myDFPlayer.volume (10); // Volume 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); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

Menu de Opções

Você controla toda a montagem por meio do monitor serial. Assim, a cada vez, o esquema estará imprimindo o Menu de Opções que você possui, com comandos, orientações.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Para selecionar o arquivo MP3"); Serial.println ("[s] parar reprodução"); Serial.println ("[p] pausa / continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ ou -] aumenta ou dentro do volume"); Serial.println (); }

Ciclo

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reprodução (í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 = Clássico, 5 = Baixo)"); menu_opcoes (); } // Aumenta o volume if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui o volume if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // enquanto} // loop

Recomendado: