Բովանդակություն:

MP3 նվագարկիչ Arduino- ով ՝ 6 քայլ
MP3 նվագարկիչ Arduino- ով ՝ 6 քայլ

Video: MP3 նվագարկիչ Arduino- ով ՝ 6 քայլ

Video: MP3 նվագարկիչ Arduino- ով ՝ 6 քայլ
Video: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, Նոյեմբեր
Anonim
Image
Image
Տվյալների թերթիկ
Տվյալների թերթիկ

Այս հավաքույթում մենք օգտագործեցինք mp3 նվագարկիչ Arduino Uno- ով, մինի PAM8403 ձայնային ուժեղացուցիչ `ձայնի ճշգրտմամբ, mp3 մոդուլ DFPlayer Mini և զույգ 3 Վտ բարձրախոսով:

Այս սխեման ծառայում է ոչ միայն երաժշտական նվագարկիչին, այլև ի թիվս այլոց թույլ է տալիս ձայնային գործառույթներ կայանել արգելափակող սարքի կամ ռոբոտի համար: Այս հավաքը թույլ կտա ձայնագրված ձայնը տեղադրել սարքերում: Այս ձայնը բնական կլինի և չի սինթեզվի: Մարդկանց մեծամասնության համար դրանք նախընտրելի հատկանիշներ են `համեմատած ստանդարտ այլընտրանքների հետ:

Այս հավաքի համար մենք հատուկ օգտագործում ենք Arduino Uno- ն, բայց կարող եք նաև միանալ ESP8266- ին կամ ESP32- ին: Ակնհայտ է, որ կապում կպահանջվի ճշգրտում:

Քայլ 1: Տվյալների թերթիկ

Քայլ 2: DFPlayer մոդուլ

DFPlayer մոդուլ
DFPlayer մոդուլ

DFPlayer մոդուլը օգտագործում է սերիական հաղորդակցություն RX TX, VCC, GND: Այն ունի երկու բարձրախոս և աուդիո մուտք:

Քայլ 3. Մինի ուժեղացուցիչ PAM8403

Մինի ուժեղացուցիչ PAM8403
Մինի ուժեղացուցիչ PAM8403

Քայլ 4: Հավաքում

Ժողով
Ժողով

Քայլ 5: Գրադարաններ

Գրադարաններ
Գրադարաններ

Mp3 մոդուլի հետ հաղորդակցության համար ավելացրեք հետևյալ «DFRobotDFPlayerMini» գրադարանը:

Պարզապես մուտք գործեք «Էսքիզներ >> Ներառեք գրադարաններ >> Կառավարեք գրադարանները …"

Քայլ 6: Աղբյուրի կոդ

Մենք կսկսենք ՝ սահմանելով այն գրադարաններն ու հաստատունները, որոնք մենք կօգտագործենք մեր ծածկագրով:

Սկսեք ՝ ստեղծելով մեկ օբյեկտ ՝ սերիական ծրագրակազմ և մեկ այլ, որը myDFPlayer է:

Buf փոփոխականը, որը String տիպի է, կծառայի Arduino Serial- ից ստացվող տվյալների պահպանմանը, որոնք կլինեն MP3 մոդուլի հրամանները: «Դադար» փոփոխականը կօգտագործվի ՝ նշելու երաժշտության նվագարկումը կամ դադարը (դադար = ճշմարիտ, և ցույց է տալիս, որ դադար է, հակառակ դեպքում նվագում է):

#ներառել "SoftwareSerial.h"#Include "DFRobotDFPlayerMini.h" // Inicia a serial por software in no pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Արագ արձագանքման հնարավորություն ՝ MP3 կամ DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // տարբեր արձագանքներ armarisenar os comandos enviados para controlar o player String buf; // variável responsável for armazenar o estado do player (0: tocando; 1: pausado) բուլյան պաուզա = կեղծ; // variável responsável for armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = Նորմալ, 1 = Փոփ, 2 = Ռոք, 3 = azազ, 4 = Կլասիկ, 5 = Բաս) "// տարբեր տեսակի պատասխաններ armazenar- ի կամ ընդհանուր երաժշտության համար SD քարտ չեն ներկայացնում: int maxSongs = 0;

Կարգավորում

Այս քայլում մենք տպագրության տարբերակներ ենք դնում ՝ նշումներ տալու համար, որ այն միացնում է շղթան, օրինակ ՝ կեղծ պայմանների գնահատմամբ:

void setup () {// Comunicacao սերիական com կամ մոդուլ mySoftwareSerial.begin (9600); // Inicializa a serial do 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 ("Տեղեկացված մոդուլ DFPlayer … (3 ~ 5 սեգունդ)"); եթե (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); իսկ (ճշմարիտ); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Timeout սերիա 500ms myDFPlayer.volume (10); // Volume 10 vai de 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 ();

Ընտրանքներ ընտրացանկ

Դուք վերահսկում եք այս ամբողջ հավաքածուն սերիական մոնիտորի միջոցով: Այսպիսով, ամեն անգամ, սխեման տպելու է ձեր ունեցած Ընտրանքների ընտրացանկը ՝ հրամաններով և ուղղություններով:

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 reproducao"); Serial.println ("[p] pausa/Continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ կամ -] aumenta ou diminui o volume"); Serial.println (); }

Օղակ

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reproducao (icendice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // նվագել երաժշտության մենյուն_փոկեր (); } // Pausa/Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica …"); myDFPlayer.start (); } else {Serial.println ("Musica pausada …"); myDFPlayer.pause (); } պաուսա =! պաուսա; menu_opcoes (); } // Parada if (buf == "s") {myDFPlayer.stop (); Serial.println («Musica parada!»); menu_opcoes (); } // Seleciona equalizacao if (buf == "e") {equalizacao ++; եթե (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (հավասարեցում); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = նորմալ, 1 = փոփ, 2 = ռոք, 3 = ջազ, 4 = դասական, 5 = բաս)"); menu_opcoes (); } // Aumenta ծավալը if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui ծավալը if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // հանգույց

Խորհուրդ ենք տալիս: