Tabla de contenido:

Reproductor MP3 con Arduino: 6 pasos
Reproductor MP3 con Arduino: 6 pasos

Video: Reproductor MP3 con Arduino: 6 pasos

Video: Reproductor MP3 con Arduino: 6 pasos
Video: Como REPRODUCIR MÚSICA O AUDIO CON ARDUINO Y CONECTAR A UN AMPLIFICADOR CON ALTA CALIDAD (DFPLAYER) 2024, Noviembre
Anonim
Image
Image
Ficha de datos
Ficha de datos

En este montaje utilizamos un reproductor mp3 con Arduino Uno, un amplificador de sonido mini PAM8403 con ajuste de volumen, un módulo mp3 DFPlayer Mini y un par de altavoces de 3 Watt.

Este esquema sirve no solo para el reproductor de música, sino también para permitir funciones de voz para un dispositivo de barrera de estacionamiento o un robot, entre otros. Este montaje permitirá la colocación de una voz grabada en los aparatos. Esta voz será natural y no sintetizada. Para la mayoría de las personas, estas son características preferibles en comparación con las alternativas estándar.

Para este ensamblaje, usamos específicamente el Arduino Uno, pero también puede conectarse a ESP8266 o ESP32. Obviamente, se requerirá un ajuste en los pasadores.

Paso 1: hoja de datos

Paso 2: módulo DFPlayer

Módulo DFPlayer
Módulo DFPlayer

El módulo DFPlayer utiliza la comunicación serie RX TX, VCC, GND. Tiene salida a dos altavoces y entrada de audio.

Paso 3: Mini amplificador PAM8403

Mini amplificador PAM8403
Mini amplificador PAM8403

Paso 4: Montaje

Montaje
Montaje

Paso 5: Bibliotecas

Bibliotecas
Bibliotecas

Agregue la siguiente biblioteca "DFRobotDFPlayerMini" para la comunicación con el módulo mp3.

Simplemente acceda a "Sketch >> Incluir bibliotecas >> Administrar bibliotecas …"

Paso 6: código fuente

Comenzaremos definiendo las bibliotecas y constantes que usaremos con nuestro código.

Comience creando un objeto, el software serial y otro, que es myDFPlayer.

La variable buf, que es de tipo String, servirá para almacenar los datos provenientes del Serial Arduino, que serán los comandos para el módulo MP3. La variable "pausa" se utilizará para indicar si la música se está reproduciendo o en pausa (pausa = verdadero, e indica que está en pausa, de lo contrario, se está reproduciendo).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia una serie 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 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 = Clásico, 5 = Bajo) "// variável responsável por armazenar o total de músicas presentes sin tarjeta SD. Int maxSongs = 0;

Configuración

En este paso, ponemos opciones de impresiones para darte indicaciones de que está montando el circuito, con evaluaciones de falsas condiciones, por ejemplo.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa un serial do Arduino Serial.begin (115200); // Verifica se o modulo esta respondiendo e se o // cartao SD foi encontrado Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("Inicializando módulo DFPlayer… (3 ~ 5 segundos)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque como conexiones hacen DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); mientras (verdadero); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Tiempo de espera de serie 500ms myDFPlayer.volume (10); // Volumen 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); // Muestra o menú de comandos menu_opcoes ();

Menú de opciones

Controlas todo este conjunto a través del monitor de serie. Entonces, cada vez, el esquema imprimirá el menú de opciones que tiene, con comandos, direcciones.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Para seleccionar o archivar MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa / continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ o -] aumenta o disminuye el volumen"); Serial.println (); }

Círculo

void loop () {// Aguarda una entrada de datos pela serial while (Serial.available ()> 0) {// recupera los datos 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á reproducir la 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 (ecualización); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Clásico, 5 = Bajo)"); menu_opcoes (); } // Aumenta el volumen if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volumen atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Volumen de Diminui if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volumen atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // mientras} // bucle

Recomendado: