Sisukord:

MP3 -mängija Arduinoga: 6 sammu
MP3 -mängija Arduinoga: 6 sammu

Video: MP3 -mängija Arduinoga: 6 sammu

Video: MP3 -mängija Arduinoga: 6 sammu
Video: Amirchik - Эта любовь/Cinta Ini (Official video, 2022) 2024, November
Anonim
Image
Image
Andmeleht
Andmeleht

Selles koostes kasutasime Arduino Uno-ga mp3-mängijat, helitugevuse reguleerimisega mini-helivõimendit PAM8403, mp3-moodulit DFPlayer Mini ja paari 3-vatist kõlarit.

See skeem ei tööta mitte ainult muusikapleieri jaoks, vaid võimaldab muu hulgas ka parkimistõkkeseadme või roboti häälfunktsioone. See koosseis võimaldab salvestatud häält seadmetesse paigutada. See hääl on loomulik ja seda ei sünteesita. Enamiku inimeste jaoks on need tavaliste alternatiividega võrreldes eelistatud omadused.

Selle kokkupaneku jaoks kasutame spetsiaalselt Arduino Unot, kuid saate ühendada ka ESP8266 või ESP32. Ilmselgelt on vaja tihvtide reguleerimist.

Samm: andmeleht

2. toiming: DFPlayeri moodul

DFPlayer moodul
DFPlayer moodul

DFPlayer moodul kasutab jadaühendust RX TX, VCC, GND. Sellel on väljund kahele kõlarile ja helisisend.

Samm: minivõimendi PAM8403

Minivõimendi PAM8403
Minivõimendi PAM8403

4. samm: kokkupanek

Kokkupanek
Kokkupanek

Samm: raamatukogud

Raamatukogud
Raamatukogud

MP3 -mooduliga suhtlemiseks lisage järgmine raamatukogu "DFRobotDFPlayerMini".

Avage lihtsalt jaotis "Visand >> Kaasa raamatukogud >> Raamatukogude haldamine …"

6. samm: lähtekood

Alustuseks määratleme teegid ja konstandid, mida me oma koodiga kasutame.

Alustuseks looge üks objekt, jadatarkvara ja teine, mis on myDFPlayer.

Muutuja buf, mis on tüüpi String, hoiab Arduino jadast pärinevaid andmeid, mis on MP3 -mooduli käsud. Muutujat "paus" kasutatakse näitamaks, kas muusika esitatakse või peatatakse (paus = tõene ja näitab, et see on peatatud, vastasel juhul esitatakse).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia jada tarkvara seeriast 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Vastuse saamine mängukommunikatsiooni kaudu või meetod MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // varievel vastus por armazenar os comandos enviados para controlar o player String buf; // variavel vastus, mis on armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; // variavel responseavel por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = Normaalne, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klassikaline, 5 = Bass) "// varieeruv vastus tasemel või väike de músicas ei esita SD -kaarti. Int maxSongs = 0;

Seadistamine

Selles etapis panime välja printimisvõimalused, mis annavad teile märku, et see ühendab vooluringi, näiteks valede tingimuste hindamisega.

void setup () {// Comunicacao jada com või modulo mySoftwareSerial.begin (9600); // Inicializa a serial to 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 segmenti)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); samas (tõsi); } Serial.println (); Serial.println ("Modulo DFPlayer Mini algatializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Ajalõpu seeria 500 ms myDFPlayer.volume (10); // 10. köide või 0 a 30 myDFPlayer. EQ (0); // Equalizacao normal // taastumine või number 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 ();

Menüü Valikud

Kogu seda koostu juhite jadamonitori kaudu. Nii prindib skeem iga kord teie käsutuses olevate suvandite menüü koos käskude ja juhistega.

tühine 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 ("[+ või -] aumenta ou diminui o volume"); Serial.println (); }

Loop

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 (); } 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 ++; kui (equizacao == 6) {equizacao = 0; } myDFPlayer. EQ (equizacao); Serial.print ("Equalizacao:"); Serial.print (equizacao); Serial.println ("(0 = tavaline, 1 = pop, 2 = rock, 3 = jazz, 4 = klassikaline, 5 = bass)"); menu_opcoes (); } // Aumenta helitugevus if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Maht atuaalne:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui helitugevus if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Maht atuaalne:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // samas} // silmus

Soovitan: