Obsah:

MP3 přehrávač s Arduino: 6 kroků
MP3 přehrávač s Arduino: 6 kroků

Video: MP3 přehrávač s Arduino: 6 kroků

Video: MP3 přehrávač s Arduino: 6 kroků
Video: When The Quiet Kid Does Your Homework 💀 #electronics #arduino #engineering 2024, Listopad
Anonim
Image
Image
Datový list
Datový list

V této sestavě jsme použili mp3 přehrávač s Arduino Uno, mini zvukový zesilovač PAM8403 s nastavením hlasitosti, mp3 modul DFPlayer Mini a dvojici 3W reproduktorů.

Toto schéma slouží nejen pro hudební přehrávač, ale také mimo jiné umožňuje hlasové funkce pro zařízení parkovací závory nebo robota. Tato sestava umožní umístění nahraného hlasu do aparátů. Tento hlas bude přirozený a nebude syntetizován. Pro většinu lidí jsou to upřednostňované funkce ve srovnání se standardními alternativami.

Pro tuto sestavu konkrétně používáme Arduino Uno, ale můžete se také připojit k ESP8266 nebo ESP32. Očividně bude nutná úprava kolíků.

Krok 1: Datový list

Krok 2: Modul DFPlayer

Modul DFPlayer
Modul DFPlayer

Modul DFPlayer používá sériovou komunikaci RX TX, VCC, GND. Má výstup na dva reproduktory a audio vstup.

Krok 3: Mini zesilovač PAM8403

Mini zesilovač PAM8403
Mini zesilovač PAM8403

Krok 4: Sestavení

Shromáždění
Shromáždění

Krok 5: Knihovny

Knihovny
Knihovny

Pro komunikaci s modulem mp3 přidejte následující knihovnu „DFRobotDFPlayerMini“.

Jednoduše otevřete "Skica >> Zahrnout knihovny >> Spravovat knihovny …"

Krok 6: Zdrojový kód

Začneme definováním knihoven a konstant, které použijeme s naším kódem.

Začněte vytvořením jednoho objektu, sériového softwaru a dalšího, což je myDFPlayer.

Proměnná buf, která je typu String, bude sloužit k ukládání dat pocházejících z Arduino Serial, což budou příkazy pro modul MP3. Proměnná „pauza“se použije k označení, zda se hudba přehrává nebo je pozastavena (pause = true a označuje, že je pozastavena, v opačném případě hraje).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Sériový a softwarový software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Odpovědnost za hledání komunikace s formátem MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responzel por armazenar os comandos enviados para controlar o player String buf; // variável responzel por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; // variabilní odezva na armaturu o ekvalizaci vyrovnávání // variace 0 a 5 int ekvalizace = 0; // (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass) "// variável responzel por armazenar o total de músicas presentes no SD card. Int maxSongs = 0;

Založit

V tomto kroku dáváme možnosti výtisků, abychom vám poskytli indikace, že obvod montuje, například s vyhodnocením falešných podmínek.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializujte a sériově do Arduino Serial.begin (115200); // Verifica se o modulo esta responendo 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 jako conexoes do DFPlayer Mini“); Serial.println ("2. Insira um cartao SD"); while (true); } Serial.println (); Serial.println („Modulo DFPlayer Mini inicializováno!“); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Timeout serial 500ms myDFPlayer.volume (10); // Volume 10 vai de 0 a 30 myDFPlayer. EQ (0); // Normální ekvalizace // Obnovení počtu hudebních souborů bez 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 ();

Nabídka Možnosti

Celou tuto sestavu ovládáte prostřednictvím sériového monitoru. Pokaždé tedy schéma vytiskne nabídku možností, kterou máte, s příkazy a pokyny.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Výběr ze souboru MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] výběr ekvalizacao"); Serial.println ("[+ nebo -] aumenta ou diminui o volume"); Serial.println (); }

Smyčka

void loop () {// Aguarda a entrada de dados pela serial while 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á hrát na hudbu 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 = normální, 1 = pop, 2 = rock, 3 = jazz, 4 = klasický, 5 = baskytara)"); menu_opcoes (); } // Objem Aumenta if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui volume if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // smyčka

Doporučuje: