विषयसूची:

Arduino के साथ MP3 प्लेयर: 6 कदम
Arduino के साथ MP3 प्लेयर: 6 कदम

वीडियो: Arduino के साथ MP3 प्लेयर: 6 कदम

वीडियो: Arduino के साथ MP3 प्लेयर: 6 कदम
वीडियो: Master the MP3-TF-16P (DF Player Mini) on Arduino: Seamless Sound Integration & Easy Setup! 🎶 2024, नवंबर
Anonim
Image
Image
डेटा शीट
डेटा शीट

इस असेंबली में, हमने Arduino Uno के साथ एक एमपी3 प्लेयर, वॉल्यूम एडजस्टमेंट के साथ एक मिनी PAM8403 साउंड एम्पलीफायर, एक एमपी3 मॉड्यूल DFPlayer Mini, और 3-वाट स्पीकर की एक जोड़ी का उपयोग किया।

यह योजना न केवल म्यूजिक प्लेयर के लिए काम करती है, बल्कि पार्किंग बैरियर डिवाइस या रोबोट के लिए वॉयस फंक्शन की अनुमति भी देती है। यह असेंबली एपराट्यूस में रिकॉर्ड की गई आवाज को रखने की अनुमति देगी। यह आवाज प्राकृतिक होगी और संश्लेषित नहीं होगी। अधिकांश लोगों के लिए, ये मानक विकल्पों की तुलना में बेहतर सुविधाएँ हैं।

इस असेंबली के लिए, हम विशेष रूप से Arduino Uno का उपयोग कर रहे हैं, लेकिन आप ESP8266 या ESP32 से भी जुड़ सकते हैं। जाहिर है, पिनों पर समायोजन की आवश्यकता होगी।

चरण 1: डेटाशीट

चरण 2: डीएफप्लेयर मॉड्यूल

डीएफप्लेयर मॉड्यूल
डीएफप्लेयर मॉड्यूल

DFPlayer मॉड्यूल सीरियल संचार RX TX, VCC, GND का उपयोग करता है। इसमें दो स्पीकर और ऑडियो इनपुट के लिए आउटपुट है।

चरण 3: मिनी एम्पलीफायर PAM8403

मिनी एम्पलीफायर PAM8403
मिनी एम्पलीफायर PAM8403

चरण 4: विधानसभा

सभा
सभा

चरण 5: पुस्तकालय

पुस्तकालयों
पुस्तकालयों

mp3 मॉड्यूल के साथ संचार के लिए निम्नलिखित "DFRobotDFPlayerMini" लाइब्रेरी जोड़ें।

बस "स्केच >> लाइब्रेरी शामिल करें >> लाइब्रेरी प्रबंधित करें …" तक पहुंचें

चरण 6: स्रोत कोड

हम अपने कोड के साथ उपयोग किए जाने वाले पुस्तकालयों और स्थिरांक को परिभाषित करके शुरू करेंगे।

एक ऑब्जेक्ट, सीरियल सॉफ़्टवेयर, और दूसरा, जो कि myDPlayer है, बनाकर प्रारंभ करें।

buf वैरिएबल, जो कि स्ट्रिंग प्रकार का है, Arduino Serial से आने वाले डेटा को स्टोर करने का काम करेगा, जो MP3 मॉड्यूल के लिए कमांड होगा। "रोकें" चर का उपयोग यह इंगित करने के लिए किया जाएगा कि क्या संगीत चल रहा है या रुका हुआ है (रोकें = सत्य, और इंगित करता है कि यह रुका हुआ है, अन्यथा यह चल रहा है)।

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" // इनिसिया एक सीरियल पोर सॉफ्टवेयर नंबर 10 e 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX // ऑब्जेटो रिस्पॉन्सवेल पेला कम्युनिकाकाओ कॉम ओ मोडुलो एमपी3 (डीएफप्लेयर मिनी) DFRobotDFPlayerMini myDFPlayer; // वेरिएबल रिस्पॉन्सवेल पोर आर्मजेनर ओएस कोमांडोस एनविआडोस पैरा कंट्रोलर या प्लेयर स्ट्रिंग बफ; // वेरिएवल प्रतिक्रिया पोर आर्मज़ेनर ओ एस्टाडो डू प्लेयर (0: टोकांडो; 1: पॉसाडो) बूलियन पॉसा = झूठा; //variável प्रतिक्रिया पोर armazenar o estado da equalização //varia de 0 a 5 int equalizacao = 0; // (० = सामान्य, १ = पॉप, २ = रॉक, ३ = जैज़, ४ = क्लासिक, ५ = बास)"

सेट अप

इस चरण में, हम आपको संकेत देने के लिए प्रिंट के विकल्प डालते हैं कि यह सर्किट को बढ़ा रहा है, उदाहरण के लिए, झूठी स्थितियों के मूल्यांकन के साथ।

शून्य सेटअप () {//Comunicacao सीरियल कॉम या मॉड्यूल mySoftwareSerial.begin (९६००); //Inicializa एक धारावाहिक Arduino Serial.begin(११५२००) करते हैं; // वेरिफ़ा से ओ मोडुलो एस्टा रेस्पॉन्डें ई से ओ // कार्टाओ एसडी फॉई एनकॉन्ट्रैडो सीरियल.प्रिंट्लन (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("Inicializando modulo DFPlayer… (3~5 segundos)"); if (!myDFPlayer.begin(mySoftwareSerial)) {Serial.println("Nao inicializado:"); Serial.println ("1. शंकु के रूप में चेक करें DFPlayer Mini"); Serial.println ("२.इंसिरा उम कार्टो एसडी"); जबकि (सच); } सीरियल.प्रिंट्लन (); Serial.println ("मॉड्यूलो डीएफप्लेयर मिनी इनिशियलज़ाडो!"); // निश्चित रूप से myDFPlayer.setTimeOut (500); // टाइमआउट सीरियल 500ms myDFPlayer.volume(10); //वॉल्यूम १० वै डे ० ए ३० myDFPlayer. EQ(0); // इक्वलिज़ाकाओ नॉर्मल // रिकुपेरा ओ न्यूमेरो डे म्यूसिकस एनकॉन्ट्रैडास नो एसडी। maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); सीरियल.प्रिंट्लन (); सीरियल.प्रिंट ("न्यूमेरो डी आर्किवोस नो कार्टो एसडी:"); Serial.println(maxSongs); // मोस्ट्रा या मेनू डी कॉमांडोस मेन्यू_ऑप्कोस ();

विकल्प मेनू

आप इस पूरी असेंबली को सीरियल मॉनिटर के जरिए कंट्रोल करते हैं। तो हर बार, योजना आपके पास विकल्प मेनू को कमांड, निर्देशों के साथ प्रिंट कर रही होगी।

शून्य मेनू_ऑप्कोस () {सीरियल। प्रिंट्लन (); Serial.println ("कोमांडो:"); सीरियल.प्रिंट ("[1-"); सीरियल.प्रिंट (अधिकतम गाने); Serial.println("] Para selecionar o arquivo MP3"); Serial.println(" [s] parar reproducao"); Serial.println ("[पी] पॉसा/कॉन्टिनुआ ए म्यूजिक"); Serial.println ("[ई] सेलेसिओना इक्वलिज़ाकाओ"); Serial.println ("[+ या -] ऑमेंटा या डिमिनुई ओ वॉल्यूम"); सीरियल.प्रिंट्लन (); }

कुंडली

शून्य लूप () {// अगुआर्डा ए एंटरडा डे डैडोस पेला सीरियल जबकि (सीरियल.उपलब्ध ()> 0) {//रिकुपेरा ओएस डैडोस डे एंटरडा बफ = सीरियल.रीडस्ट्रिंगयूंटिल ('\ 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 ()); // और संगीत मेनू_ऑप्कोस (); } // Pausa/Continua a musica if (buf == "p") {if (pausa) { Serial.println ("Continua musica…"); myDFPlayer.start (); } और { Serial.println ("संगीत पौसादा…"); myDFPlayer.रोकें (); } पौसा = पौसा; menu_opcoes (); } // पारादा अगर (buf == "s") { myDPlayer.stop (); Serial.println ("संगीत परदा!"); menu_opcoes (); } // सेलेसिओना इक्वलिज़ाकाओ अगर (buf == "e") { बराबरीज़ाकाओ++; अगर (equalizacao == 6) { बराबरीज़ाकाओ = 0; } myDFPlayer. EQ(equalizacao); सीरियल.प्रिंट ("इक्वलिज़ाकाओ:"); Serial.print(equalizacao); Serial.println ("(0 = सामान्य, 1 = पॉप, 2 = रॉक, 3 = जैज़, 4 = क्लासिक, 5 = बास)"); menu_opcoes (); } // ऑमेंटा वॉल्यूम अगर (buf == "+") { myDPlayer.volumeUp (); Serial.print ("वॉल्यूम वास्तविक:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // डिमिनुई वॉल्यूम अगर (buf == "-") { myDPlayer.volumeDown (); Serial.print ("वॉल्यूम वास्तविक:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } } //घुमाव के दौरान

सिफारिश की: