Innholdsfortegnelse:

MP3 -spiller med Arduino: 6 trinn
MP3 -spiller med Arduino: 6 trinn

Video: MP3 -spiller med Arduino: 6 trinn

Video: MP3 -spiller med Arduino: 6 trinn
Video: Измерьте ток до 500A с помощью шунтирующего резистора с помощью Arduino 2024, November
Anonim
Image
Image
Dataark
Dataark

I denne sammenstillingen brukte vi en mp3-spiller med Arduino Uno, en mini PAM8403 lydforsterker med volumjustering, en mp3-modul DFPlayer Mini og et par 3-Watt høyttalere.

Denne ordningen tjener ikke bare for musikkspilleren, men også for å tillate stemmefunksjoner for blant annet en parkeringsbarriere eller en robot. Denne samlingen vil tillate plassering av en innspilt stemme i apparatene. Denne stemmen vil være naturlig og ikke syntetisert. For de fleste er dette foretrukne funksjoner sammenlignet med standardalternativene.

For denne monteringen bruker vi spesielt Arduino Uno, men du kan også koble til ESP8266 eller ESP32. Det er åpenbart nødvendig med en justering på pinnene.

Trinn 1: Dataark

Trinn 2: DFPlayer -modul

DFPlayer -modul
DFPlayer -modul

DFPlayer -modulen bruker seriell kommunikasjon RX TX, VCC, GND. Den har utgang til to høyttalere og lydinngang.

Trinn 3: Miniforsterker PAM8403

Miniforsterker PAM8403
Miniforsterker PAM8403

Trinn 4: Montering

montering
montering

Trinn 5: Biblioteker

Biblioteker
Biblioteker

Legg til følgende "DFRobotDFPlayerMini" -bibliotek for kommunikasjon med mp3 -modulen.

Bare få tilgang til "Skisse >> Inkluder biblioteker >> Administrer biblioteker …"

Trinn 6: Kildekode

Vi starter med å definere bibliotekene og konstantene vi skal bruke med koden vår.

Start med å lage ett objekt, den serielle programvaren og et annet, som er myDFPlayer.

Buf -variabelen, som er av typen String, vil tjene til å lagre dataene som kommer fra Arduino Serial, som vil være kommandoene for MP3 -modulen. Variabelen "pause" vil bli brukt til å indikere om musikken spilles eller settes på pause (pause = sant, og indikerer at den er satt på pause, ellers spiller den).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Objekto 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 presenterer ingen SD -kort. Int maxSongs = 0;

Oppsett

I dette trinnet legger vi ut alternativer for utskrifter for å gi deg indikasjoner på at den monterer kretsen, for eksempel med evalueringer av falske forhold.

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 as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); mens (sant); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Tidsavbrudd seriell 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 ();

Alternativer -meny

Du styrer hele denne enheten gjennom den serielle skjermen. Så hver gang vil ordningen skrive ut alternativmenyen du har, med kommandoer, retninger.

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 (); }

Løkke

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

Anbefalt: