Satura rādītājs:

MP3 atskaņotājs ar Arduino: 6 soļi
MP3 atskaņotājs ar Arduino: 6 soļi

Video: MP3 atskaņotājs ar Arduino: 6 soļi

Video: MP3 atskaņotājs ar Arduino: 6 soļi
Video: Мало кто знает об этой функции МОБИЛЬНОГО ТЕЛЕФОНА! 2024, Novembris
Anonim
Image
Image
Datu lapas
Datu lapas

Šajā montāžā mēs izmantojām mp3 atskaņotāju ar Arduino Uno, mini skaņas pastiprinātāju PAM8403 ar skaļuma regulēšanu, mp3 moduli DFPlayer Mini un 3 vatu skaļruņu pāri.

Šī shēma kalpo ne tikai mūzikas atskaņotājam, bet arī cita starpā atļauj balss funkcijas autostāvvietas barjeras ierīcei vai robotam. Šī montāža ļaus ievietot aparātos ierakstītu balsi. Šī balss būs dabiska un netiks sintezēta. Lielākajai daļai cilvēku šīs ir vēlamās funkcijas salīdzinājumā ar standarta alternatīvām.

Šai montāžai mēs īpaši izmantojam Arduino Uno, bet jūs varat arī izveidot savienojumu ar ESP8266 vai ESP32. Acīmredzot tapas būs jāpielāgo.

1. darbība: datu lapa

2. darbība: DFPlayer modulis

DFPlayer modulis
DFPlayer modulis

DFPlayer modulī tiek izmantota seriālā komunikācija RX TX, VCC, GND. Tam ir izeja uz diviem skaļruņiem un audio ieeja.

3. darbība: mini pastiprinātājs PAM8403

Mini pastiprinātājs PAM8403
Mini pastiprinātājs PAM8403

4. solis: montāža

Montāža
Montāža

5. darbība: bibliotēkas

Bibliotēkas
Bibliotēkas

Saziņai ar mp3 moduli pievienojiet šādu bibliotēku "DFRobotDFPlayerMini".

Vienkārši piekļūstiet sadaļai “Skice >> Iekļaut bibliotēkas >> Pārvaldīt bibliotēkas…”

6. darbība: avota kods

Sāksim ar to kodu un bibliotēku definēšanu, kuras mēs izmantosim.

Sāciet, izveidojot vienu objektu - sērijas programmatūru un otru - myDFPlayer.

Buf mainīgais, kura tips ir String, kalpos datu glabāšanai no Arduino sērijas, kas būs MP3 moduļa komandas. Mainīgais "pauze" tiks izmantots, lai norādītu, vai mūzika tiek atskaņota vai apturēta (pauze = patiesa, un norāda, ka tā ir apturēta, pretējā gadījumā tā tiek atskaņota).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial by software no pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Uzlabot atbildi, izmantojot komunicēšanas režīmu vai režīmu MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responseável por armazenar os comandos enviados para controlar o player String buf; // variável responseável por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; // variável responseável por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = normāls, 1 = pops, 2 = roks, 3 = džezs, 4 = klasisks, 5 = bass) "// variável responseavel por armazenar o total de músicas neuzrāda SD karti. Int maxSongs = 0;

Uzstādīt

Šajā solī mēs ievietojām izdruku opcijas, lai sniegtu jums norādes, ka tā montē ķēdi, piemēram, novērtējot nepatiesus apstākļus.

void setup () {// Comunicacao serial com vai modulo mySoftwareSerial.begin (9600); // Inicializa a serial do Arduino Serial.begin (115200); // Verifica se o modulo esta respondendo e se o // karte 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"); kamēr (taisnība); } Sērijas.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Sērijas taimauts 500 ms myDFPlayer.volume (10); // 10. sējums vai no 0 a 30 myDFPlayer. EQ (0); // Equalizacao normal // recupera o numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Sērijas.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

Opciju izvēlne

Jūs kontrolējat visu šo komplektu, izmantojot seriālo monitoru. Tātad katru reizi shēma drukās jūsu opciju izvēlni ar komandām, norādījumiem.

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 ("[+ vai -] aumenta ou diminui o volume"); Sērijas.println (); }

Cilpa

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 (); } cits {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 ++; ja (izlīdzināt = = 6) {vienādot = 0; } myDFPlayer. EQ (ekvivalents); Serial.print ("Equalizacao:"); Sērijas nospiedums (ekvivalents); Serial.println ("(0 = normāls, 1 = pop, 2 = roks, 3 = džezs, 4 = klasisks, 5 = bass)"); menu_opcoes (); } // Aumenta apjoms if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Sējums atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui apjoms if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Sējums atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // kamēr} // cilpa

Ieteicams: