Turinys:

MP3 grotuvas su „Arduino“: 6 žingsniai
MP3 grotuvas su „Arduino“: 6 žingsniai

Video: MP3 grotuvas su „Arduino“: 6 žingsniai

Video: MP3 grotuvas su „Arduino“: 6 žingsniai
Video: Arduino Start #6. Модуль MP3 и ARDUINO 2024, Lapkritis
Anonim
Image
Image
Duomenų lapas
Duomenų lapas

Šiame surinkime mes naudojome mp3 grotuvą su „Arduino Uno“, mini garso stiprintuvą PAM8403 su garsumo reguliavimu, mp3 modulį „DFPlayer Mini“ir porą 3 vatų garsiakalbių.

Ši schema skirta ne tik muzikos grotuvui, bet ir, be kita ko, leisti balso funkcijas stovėjimo barjerui ar robotui. Šis surinkimas leis įrenginiuose įrašyti įrašytą balsą. Šis balsas bus natūralus ir nesintetintas. Daugumai žmonių tai yra pageidaujamos savybės, palyginti su standartinėmis alternatyvomis.

Šiam surinkimui mes specialiai naudojame „Arduino Uno“, tačiau taip pat galite prisijungti prie ESP8266 arba ESP32. Akivaizdu, kad kaiščius reikės sureguliuoti.

1 žingsnis: duomenų lapas

2 veiksmas: „DFPlayer“modulis

DFPlayer modulis
DFPlayer modulis

DFPlayer modulis naudoja nuoseklųjį ryšį RX TX, VCC, GND. Jis turi išvestį į du garsiakalbius ir garso įvestį.

3 žingsnis: mini stiprintuvas PAM8403

Mini stiprintuvas PAM8403
Mini stiprintuvas PAM8403

4 žingsnis: Surinkimas

Surinkimas
Surinkimas

5 žingsnis: bibliotekos

Bibliotekos
Bibliotekos

Pridėkite šią biblioteką „DFRobotDFPlayerMini“, kad galėtumėte bendrauti su mp3 moduliu.

Tiesiog eikite į „Eskizas >> Įtraukti bibliotekas >> Tvarkyti bibliotekas …“

6 žingsnis: šaltinio kodas

Pradėsime apibrėždami bibliotekas ir konstantas, kurias naudosime su savo kodu.

Pradėkite nuo vieno objekto, serijinės programinės įrangos, sukūrimo ir dar vieno - myDFPlayer.

„Buf“kintamasis, kurio tipas yra „String“, bus skirtas duomenims, gautiems iš „Arduino“serijos, saugoti, kurie bus MP3 modulio komandos. Kintamasis „pauzė“bus naudojamas norint parodyti, ar muzika grojama, ar pristabdyta (pauzė = tiesa ir nurodo, kad ji pristabdyta, kitaip ji grojama).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial of software no pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Atsakymas į užduotį, skirtas komunikacijai arba būdas MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // įvairios reakcijos į armazenar os comandos enviados para controlar o player String buf; // varável responseavel por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; // varável responseavel por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = Įprasta, 1 = Pop, 2 = Rokas, 3 = Džiazas, 4 = Klasikinis, 5 = Žemasis) "// įvairus atsakas į armazenar arba iš viso de músicas nepateikia SD kortelės. Int maxSongs = 0;

Sąranka

Šiame etape mes pateikiame spaudinių parinktis, kad parodytume, kad ji montuoja grandinę, pavyzdžiui, įvertinus klaidingas sąlygas.

void setup () {// Comunicacao serial com or modulo mySoftwareSerial.begin (9600); // Inicializa a serial to do Arduino Serial.begin (115200); // Verifica se o 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 segmentai)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); o (tiesa); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Laiko pertraukos serija 500 ms myDFPlayer.volume (10); // 10 tomas arba 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 ();

Parinkčių meniu

Jūs valdote visą šį mazgą per serijinį monitorių. Taigi kiekvieną kartą schema spausdins turimą parinkčių meniu su komandomis, nuorodomis.

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

Kilpa

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á 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 equizacao if (buf == "e") {equizacao ++; jei (equizacao == 6) {equizacao = 0; } myDFPlayer. EQ (ekvivalentiškas); Serial.print („Equalizacao:“); Serial.print (equizacao); Serial.println ("(0 = normalus, 1 = pop, 2 = rokas, 3 = džiazas, 4 = klasikinis, 5 = žemasis)"); menu_opcoes (); } // Aumenta tūris if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Tūris atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui tūris if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Tūris atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // tuo tarpu} // kilpa

Rekomenduojamas: