Sisällysluettelo:

MP3 -soitin Arduinolla: 6 vaihetta
MP3 -soitin Arduinolla: 6 vaihetta

Video: MP3 -soitin Arduinolla: 6 vaihetta

Video: MP3 -soitin Arduinolla: 6 vaihetta
Video: Ноггано ft. Гуф & АК-47 - Тем Кто с Нами 2024, Marraskuu
Anonim
Image
Image
Tuotetiedot
Tuotetiedot

Tässä kokoonpanossa käytimme mp3-soitinta, jossa on Arduino Uno, mini PAM8403-äänenvahvistinta, jossa on äänenvoimakkuuden säätö, mp3-moduulia DFPlayer Mini ja paria 3 watin kaiuttimia.

Tämä järjestelmä palvelee musiikkisoittimen lisäksi myös muun muassa pysäköintiesteen tai robotin äänitoimintoja. Tämä kokoonpano mahdollistaa tallennetun äänen sijoittamisen laitteisiin. Tämä ääni on luonnollinen eikä syntetisoitu. Useimmille ihmisille nämä ovat parempia ominaisuuksia verrattuna vakiovaihtoehtoihin.

Tässä kokoonpanossa käytämme erityisesti Arduino Unoa, mutta voit myös muodostaa yhteyden ESP8266- tai ESP32 -laitteeseen. On selvää, että nastoja on säädettävä.

Vaihe 1: Tietolomake

Vaihe 2: DFPlayer -moduuli

DFPlayer -moduuli
DFPlayer -moduuli

DFPlayer -moduuli käyttää sarjaliikennettä RX TX, VCC, GND. Siinä on lähtö kahdelle kaiuttimelle ja äänitulo.

Vaihe 3: Minivahvistin PAM8403

Minivahvistin PAM8403
Minivahvistin PAM8403

Vaihe 4: Kokoonpano

Kokoonpano
Kokoonpano

Vaihe 5: Kirjastot

Kirjastot
Kirjastot

Lisää seuraava "DFRobotDFPlayerMini" -kirjasto kommunikointiin mp3 -moduulin kanssa.

Avaa vain "Luonnos >> Sisällytä kirjastot >> Hallitse kirjastoja…"

Vaihe 6: Lähdekoodi

Aloitamme määrittelemällä kirjastot ja vakiot, joita käytämme koodillamme.

Aloita luomalla yksi objekti, sarjaohjelmisto ja toinen, myDFPlayer.

Buf -muuttuja, joka on tyyppiä String, tallentaa Arduino -sarjasta tulevat tiedot, jotka ovat MP3 -moduulin komentoja. "Pause" -muuttujaa käytetään osoittamaan, toistetaanko musiikkia vai keskeytetäänkö (pause = true, ja osoittaa, että se on keskeytetty, muuten se toistetaan).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia on sarjanumero ohjelmistosta nro 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Objektiivinen vastaus pelattavalla kommunikaatiolla tai menetelmällä MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // vaihtelevat vastaukset armazenar os comandos enviados para controlar o player String buf; // vaihtelevat vastaukset armazenar tai estado do player (0: tocando; 1: pausado) boolean pausa = false; // vaihtelevat vastaukset armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = normaali, 1 = pop, 2 = rock, 3 = jazz, 4 = klassinen, 5 = basso) "// vaihteleva vastaus tason mukaan tai kokonaismusiikki ei sisällä SD -korttia. Int maxSongs = 0;

Perustaa

Tässä vaiheessa asetamme tulostusvaihtoehtoja, jotka osoittavat, että se on asentamassa piiriä, esimerkiksi väärien olosuhteiden arvioinnit.

void setup () {// Comunicacao serial com tai modulo mySoftwareSerial.begin (9600); // Inicializa a series from 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 segmenttiä)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); kun taas (totta); } Sarja.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Aikakatkaisusarja 500 ms myDFPlayer.volume (10); // Volume 10 vai 0 0 30 myDFPlayer. EQ (0); // Equalizacao normal // talteenotto tai numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Sarja.println (); Serial.print ("Numero de arquivos no cartao SD:"); Sarja.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

Asetukset -valikko

Voit ohjata koko kokoonpanoa sarjamonitorin kautta. Joten joka kerta, järjestelmä tulostaa käytettävissä olevan Asetukset -valikon komennoilla ja ohjeilla.

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 ("[+ tai -] aumenta ou diminui o volume"); Sarja.println (); }

Silmukka

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 ++; jos (equizacao == 6) {equizacao = 0; } myDFPlayer. EQ (equizacao); Serial.print ("Equalizacao:"); Sarjajälki (equizacao); Serial.println ("(0 = normaali, 1 = pop, 2 = rock, 3 = jazz, 4 = klassinen, 5 = basso)"); menu_opcoes (); } // Aumenta -tilavuus if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Äänenvoimakkuus:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui-äänenvoimakkuus if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Äänenvoimakkuus:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // silmukka

Suositeltava: