Innehållsförteckning:

MP3 -spelare med Arduino: 6 steg
MP3 -spelare med Arduino: 6 steg

Video: MP3 -spelare med Arduino: 6 steg

Video: MP3 -spelare med Arduino: 6 steg
Video: How To Make Radar With Arduino || Arduino Project. 2024, November
Anonim
Image
Image
Datablad
Datablad

I denna samling använde vi en mp3-spelare med Arduino Uno, en mini PAM8403-ljudförstärkare med volymjustering, en mp3-modul DFPlayer Mini och ett par 3-watts högtalare.

Detta system fungerar inte bara för musikspelaren, utan också för att tillåta röstfunktioner för bland annat en parkeringsbarriär eller en robot. Denna samling möjliggör placering av en inspelad röst i apparaterna. Denna röst kommer att vara naturlig och inte syntetiserad. För de flesta är dessa föredragna funktioner jämfört med standardalternativen.

För denna montering använder vi specifikt Arduino Uno, men du kan också ansluta till ESP8266 eller ESP32. Uppenbarligen kommer en justering att krävas på stiften.

Steg 1: Datablad

Steg 2: DFPlayer -modul

DFPlayer -modul
DFPlayer -modul

DFPlayer -modulen använder seriell kommunikation RX TX, VCC, GND. Den har utgång till två högtalare och ljudingång.

Steg 3: Miniförstärkare PAM8403

Miniförstärkare PAM8403
Miniförstärkare PAM8403

Steg 4: Montering

hopsättning
hopsättning

Steg 5: Bibliotek

Bibliotek
Bibliotek

Lägg till följande "DFRobotDFPlayerMini" -bibliotek för kommunikation med mp3 -modulen.

Gå bara till "Skiss >> Inkludera bibliotek >> Hantera bibliotek …"

Steg 6: Källkod

Vi börjar med att definiera bibliotek och konstanter som vi kommer att använda med vår kod.

Börja med att skapa ett objekt, den seriella programvaran och ett annat, som är myDFPlayer.

Buf -variabeln, som är av typen String, kommer att tjäna till att lagra data som kommer från Arduino Serial, som kommer att vara kommandon för MP3 -modulen. Variabeln "paus" används för att indikera om musiken spelas eller pausas (paus = sant, och indikerar att den är pausad, annars spelas den).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Objeto responsável pela comunicação com or 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 presenterar inget SD -kort. Int maxSongs = 0;

Uppstart

I det här steget lägger vi ut alternativ för utskrifter för att ge dig indikationer på att det monterar kretsen, med utvärderingar av falska förhållanden, till exempel.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa a serial 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)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque som conexoes gör DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); medan (sant); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Timeout seriell 500ms myDFPlayer.volume (10); // Volym 10 från 0 till 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 ();

Alternativ -menyn

Du styr hela denna enhet via den seriella bildskärmen. Så varje gång kommer schemat att skriva ut den alternativmeny du har, med kommandon, riktningar.

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 reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ eller -] aumenta ou diminui o volume"); Serial.println (); }

Slinga

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 (); } annat {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 ++; om (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 -volym om (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui-volym om (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // loop

Rekommenderad: