Სარჩევი:

MP3 პლეერი არდუინოსთან ერთად: 6 ნაბიჯი
MP3 პლეერი არდუინოსთან ერთად: 6 ნაბიჯი

ვიდეო: MP3 პლეერი არდუინოსთან ერთად: 6 ნაბიჯი

ვიდეო: MP3 პლეერი არდუინოსთან ერთად: 6 ნაბიჯი
ვიდეო: 7 projects Build LED LCD Alarm Clock using DS1307 with Arduino | Lesson 105 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: ბიბლიოთეკები

ბიბლიოთეკები
ბიბლიოთეკები

დაამატეთ შემდეგი "DFRobotDFPlayerMini" ბიბლიოთეკა mp3 მოდულთან კომუნიკაციისთვის.

უბრალოდ შედით "ესკიზი >> ბიბლიოთეკების ჩათვლით >> ბიბლიოთეკების მართვა …"

ნაბიჯი 6: საწყისი კოდი

ჩვენ დავიწყებთ ბიბლიოთეკების და მუდმივების განსაზღვრით, რომელსაც გამოვიყენებთ ჩვენს კოდთან ერთად.

დაიწყეთ ერთი ობიექტის, სერიული პროგრამული უზრუნველყოფის შექმნით და მეორე, რომელიც არის myDFPlayer.

Buf ცვლადი, რომელიც არის ტიპის String, ემსახურება Arduino სერიალიდან მიღებული მონაცემების შესანახად, რაც იქნება MP3 მოდულის ბრძანებები. ცვლადი "პაუზა" გამოყენებული იქნება მუსიკის დაკვრის ან პაუზის მითითებისთვის (პაუზა = ჭეშმარიტი და მიუთითებს, რომ ის შეჩერებულია, წინააღმდეგ შემთხვევაში ის უკრავს).

#მოიცავს "SoftwareSerial.h"#მოიცავს "DFRobotDFPlayerMini.h" // შეიყვანეთ სერიული პროგრამული უზრუნველყოფა არა პინოს 10 და 11 პროგრამული უზრუნველყოფის სერიული mySoftwareSerial (10, 11); // RX, TX // დააწკაპუნეთ უპრობლემოდ კომუნიკაციის საშუალებით MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // ვრცელი პასუხის გაცემა armazenar os comandos enviados para controlar o player String buf; // variável responsável for armazenar o estado do player (0: tocando; 1: pausado) ლოგიკური პაუზა = ყალბი; // varável responsável for armazenar o estado da equalização // varia de 0 a 5 int equilizacao = 0; // (0 = ნორმალური, 1 = პოპი, 2 = როკი, 3 = ჯაზი, 4 = კლასიკური, 5 = ბასი) "// ვრცელი პასუხი არმაზენარში ან მუსიკის მთლიანი რაოდენობა არ წარმოგიდგენთ SD ბარათს. Int maxSongs = 0;

Აწყობა

ამ ეტაპზე, ჩვენ ვაყენებთ ანაბეჭდების ვარიანტებს, რათა მოგაწოდოთ მითითება, რომ ის აერთებს წრეს, მაგალითად, ცრუ პირობების შეფასებით.

void setup () {// Comunicacao serial com o modulo 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 სეგმენტი)"); if (! 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); // ვადაგადაცილებული სერიალი 500ms myDFPlayer.volume (10); // ტომი 10 ვა 0 0 30 myDFPlayer. EQ (0); // Equalizacao ნორმალური // recupera o numero de Músicas encontradas არა 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'); // რეპროდუქცია (icendice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= max სიმღერები)) {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 ++; თუ (თანაბარი = = 6) {თანაბარი = 0; } myDFPlayer. EQ (თანაბარი); Serial.print ("Equalizacao:"); სერიული. ბეჭდვა (თანაბარი); Serial.println ("(0 = ნორმალური, 1 = პოპი, 2 = როკი, 3 = ჯაზი, 4 = კლასიკური, 5 = ბასი)"); menu_opcoes (); } // Aumenta ტომი if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("მოცულობა atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // დიმინუის მოცულობა if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("მოცულობა atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // მარყუჟი

გირჩევთ: