एमपी 3 प्लेयर DF प्लेयर का उपयोग - पूर्ण डिजाइन विवरण

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





इस पोस्ट में हम arduino और DFPlayer का उपयोग करके एक एमपी 3 प्लेयर का निर्माण करने जा रहे हैं। प्रस्तावित लेख में दो एमपी प्लेयर डिज़ाइन हैं, एक पुश बटन नियंत्रण के साथ और दूसरा आईआर रिमोट कंट्रोल के साथ है। हम DFPlayer (एमपी 3 प्लेयर मॉड्यूल) और इसके विनिर्देशों पर भी एक नज़र डालेंगे।

हम सभी को संगीत से प्यार है, हम इसे जिम में पढ़ना, पढ़ना, सोने से पहले के क्षणों में या दिन भर की मेहनत के बाद अपने आप को सुखदायक करते हुए सुनना पसंद करेंगे।



कुछ दशक पहले घर पर एक संगीत खिलाड़ी का निर्माण यांत्रिक घटकों के कारण रचनात्मक जटिलता के कारण एक इलेक्ट्रॉनिक्स उत्साही के लिए लगभग असंभव था।

उन दिनों सीमित संख्या में गानों को एक कैसेट में समायोजित किया जा सकता था। एक गाने को दूसरे कैसेट में रिप्लेस करना भी एक बुरा सपना था। लेकिन अब, इलेक्ट्रॉनिक्स में उन्नति के लिए धन्यवाद एक एमपी 3 प्लेयर को आपकी जेब के पैसे से खरोंच से बनाया जा सकता है।



अब परियोजना के तकनीकी विवरणों पर चलते हैं।

परियोजना का दिल DFPlayer है जो एक छोटा एमपी 3 प्लेयर मॉड्यूल है जो माइक्रो एसडी कार्ड को समायोजित कर सकता है और एक माइक्रोकंट्रोलर का उपयोग करके नियंत्रित किया जा सकता है।

DFPlayer का चित्रण:

DFPlayer

इसमें इन-बिल्ड एम्पलीफायर है जो स्टीरियो या मोनो में 3 वाट लाउडस्पीकर चला सकता है। इसमें 24-बिट डिजिटल से एनालॉग कनवर्टर (डीएसी) है जो इस तरह के कम लागत और कॉम्पैक्ट मॉड्यूल के लिए बहुत अच्छा है।

DFPlayer का निचला दृश्य:

डीएफपीलेयर का निचला दृश्य

यह MP3 और WMV हार्डवेयर डिकोडिंग को सपोर्ट करता है। यह नमूना दर का समर्थन करता है
8KHz, 11.025KHz, 12KHz, 1 6KHz, 22.05KHz, 24KHz, 32KHz, 44.1KHz, 48KHz।

यह 32GB तक के माइक्रो एसडी कार्ड को सपोर्ट कर सकता है। यह 100 फ़ोल्डरों का समर्थन करता है, प्रत्येक फ़ोल्डर को 1000 गानों को सौंपा जा सकता है।

इसमें तुल्यकारक के 6 अलग-अलग स्तर और वॉल्यूम समायोजित नियंत्रण के 30 स्तर हैं। यह 3.2V से 5V तक काम कर सकता है।

पिन DFPlayer का विन्यास:

पिन DFPlayer का विन्यास

उपरोक्त विनिर्देश DFPlayer की डेटा शीट पर आधारित हैं।

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

अब योजनाबद्ध आरेख में कूदें।

पुश बटन एमपी 3 प्लेयर डिजाइन:

Arduino और DFPlayer का उपयोग करते हुए एमपी 3 प्लेयर

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

Arduino के अंतर्निहित पुल-अप रोकनेवाला को कार्यक्रम में सक्रिय किया गया है, ताकि हमें बटन को पुश करने के लिए भौतिक अवरोधक संलग्न करने की आवश्यकता न हो।

अच्छी गुणवत्ता वाले स्पीकरों का उपयोग करने का प्रयास करें DFPlayer बहुत अच्छी गुणवत्ता वाली ध्वनि प्रदान कर सकता है।

यदि आप उच्च मात्रा के स्तर पर ध्वनि में कोई विकृति पाते हैं, तो Arduino और DFPlayer के बीच आम जमीन कनेक्शन के साथ 5V डीसी पर बाह्य रूप से DFPlayer मॉड्यूल को शक्ति दें।

यदि आप स्टीरियो साउंड सेटअप चाहते हैं, तो स्पीकर के एक को DFPlayer के SPK1 से और दूसरे स्पीकर को SPK2 से कनेक्ट करें और शेष स्पीकर वायर को ग्राउंड करें।

पुश बटन नियंत्रण के लिए कार्यक्रम:

//---------Developed by R.Girish------//
#include
SoftwareSerial mySerial(10, 11)
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00
const int btnNext = A0
const int btnPause = A1
const int btnPrevious = A2
const int volumeUP = A3
const int volumeDOWN = A4
int volume = 15
boolean Playing = false
void setup ()
{
pinMode(btnPause, INPUT)
pinMode(btnNext, INPUT)
pinMode(btnPrevious, INPUT)
pinMode(volumeUP, INPUT)
pinMode(volumeDOWN, INPUT)
digitalWrite(btnPause, HIGH)
digitalWrite(btnNext, HIGH)
digitalWrite(btnPrevious, HIGH)
digitalWrite(volumeUP, HIGH)
digitalWrite(volumeDOWN, HIGH)
mySerial.begin(9600)
delay(1000)
playFirst()
Playing = true
}
void loop ()
{
if (digitalRead(btnPause) == LOW)
{
if(Playing)
{
pause()
Playing = false
}
else
{
Playing = true
play()
}
}
if (digitalRead(btnNext) == LOW)
{
if(Playing)
{
next()
}
}
if (digitalRead(btnPrevious) == LOW)
{
if(Playing)
{
previous()
}
}
if(digitalRead(volumeUP) == LOW)
{
volumeINC()
}
if(digitalRead(volumeDOWN) == LOW)
{
volumeDEC()
}
}
void playFirst()
{
exe_cmd(0x3F, 0, 0)
delay(500)
exe_cmd(0x06, 0, volume)
delay(500)
exe_cmd(0x11,0,1)
delay(500)
}
void pause()
{
exe_cmd(0x0E,0,0)
delay(500)
}
void play()
{
exe_cmd(0x0D,0,1)
delay(500)
}
void next()
{
exe_cmd(0x01,0,1)
delay(500)
}
void previous()
{
exe_cmd(0x02,0,1)
delay(500)
}
void volumeINC()
{
volume = volume+1
if(volume==31)
{
volume=30
}
exe_cmd(0x06, 0, volume)
delay(500)
}
void volumeDEC()
{
volume = volume-1
if(volume==-1)
{
volume=0
}
exe_cmd(0x06, 0, volume)
delay(500)
}
void exe_cmd(byte CMD, byte Par1, byte Par2)
{
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2)
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}
for (byte x=0 x<10 x++)
{
mySerial.write(Command_line[x])
}
}
//---------Developed by R.Girish------//

अब आईआर रिमोट आधारित डिज़ाइन पर चलते हैं।

IR नियंत्रित एमपी 3 प्लेयर के लिए योजनाबद्ध:


उपरोक्त डिज़ाइन सरल है क्योंकि पुश बटन के आधार पर एकमात्र अंतर पुश बटन को हटाने और टीएसओपी 1738 आईआर रिसीवर को शामिल करने का है। आईआर रिमोट से प्राप्त सिग्नल को एरडिनो के ए 0 पिन से खिलाया जाता है।

अब इस एमपी 3 प्लेयर को नियंत्रित करने के लिए आपको एक अतिरिक्त टीवी, या किसी अन्य आईआर आधारित रिमोट की आवश्यकता होगी जो आपके रद्दी बॉक्स पर पड़ा हो। आपको यह तय करना होगा कि खेलने और ठहराव आदि जैसे कार्यों को नियंत्रित करने के लिए कौन से बटन हैं।

6 कार्य हैं:

1) खेलें और रोकें
२) अगला गीत
३) पिछला गीत
4) मात्रा में वृद्धि
5) मात्रा में कमी
6) ध्वनि तुल्यकारक (सामान्य / पॉप / रॉक / जैज / क्लासिक / बेस)

आपको रिमोट पर बटनों को चुनने और उन बटनों के हेक्साडेसिमल कोड खोजने की आवश्यकता है जो रिमोट द्वारा प्रेषित होंगे। हेक्साडेसिमल कोड को खोजने के लिए, यदि ऐसा नहीं किया गया है तो IR लाइब्रेरी डाउनलोड करें।

github.com/z3t0/Arduino-IRremote

Arduino सॉफ़्टवेयर में लाइब्रेरी जोड़ें और फ़ाइल> उदाहरण> IRremote> IRrecvDemo पर नेविगेट करें और पूरा हार्डवेयर सेटअप के साथ कोड अपलोड करें।

सीरियल मॉनिटर खोलें और रिमोट पर बटन दबाएं, आप हेक्साडेसिमल कोड देखेंगे, इसे कागज के टुकड़े पर संबंधित बटन पर ध्यान दें।

आपको नीचे दिए गए प्रोग्राम पर हेक्साडेसिमल कोड दर्ज करना होगा। एक बार जब आप दिए गए प्रोग्राम में हेक्साडेसिमल कोड दर्ज कर लेते हैं, तो उसे अपलोड करें। आप अपने रिमोट से अपने गीतों को नियंत्रित करने के लिए तैयार हैं।

आईआर रिमोट आधारित डिजाइन के लिए कार्यक्रम:

//---Developed by R.Girish--//
#include
#include
SoftwareSerial mySerial(10,11)
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00
//--------------------------------------------------------//
# define pause_play 0x2FD08F7
# define next_song 0x2FDD827
# define prev_song 0x2FDF807 //REPLACE THESE HEX CODE WITH YOUR REMOTE BUTTON CODE STARTS “0x”
# define vol_inc 0x2FD58A7
# define vol_dec 0x2FD7887
# define sound_equalizer 0x2FD30CF
//-------------------------------------------------------//
const int receive = A0
IRrecv irrecv(receive)
decode_results dec
int volume = 15
int eqset = 0
boolean Playing = false
void setup ()
{
irrecv.enableIRIn()
mySerial.begin(9600)
delay(1000)
playFirst()
Playing = true
}
void loop ()
{
if(irrecv.decode(&dec))
{
if (dec.value==pause_play)
{
if(Playing)
{
pause()
Playing = false
}
else
{
Playing = true
play()
}
}
if (dec.value==next_song)
{
if(Playing)
{
next()
}
}
if (dec.value==prev_song)
{
if(Playing)
{
previous()
}
}
if(dec.value==vol_inc)
{
volumeINC()
}
if(dec.value==vol_dec)
{
volumeDEC()
}
if(dec.value==sound_equalizer)
{
equalizer()
}
irrecv.resume()
}
}
void playFirst()
{
exe_cmd(0x3F, 0, 0)
delay(100)
exe_cmd(0x06, 0, volume)
delay(100)
exe_cmd(0x11,0,1)
delay(100)
}
void pause()
{
exe_cmd(0x0E,0,0)
delay(100)
}
void play()
{
exe_cmd(0x0D,0,1)
delay(100)
}
void next()
{
exe_cmd(0x01,0,1)
delay(100)
}
void previous()
{
exe_cmd(0x02,0,1)
delay(100)
}
void volumeINC()
{
volume = volume+1
if(volume == 31)
{
volume = 30
}
exe_cmd(0x06, 0, volume)
delay(100)
}
void volumeDEC()
{
volume = volume-1
if(volume == -1)
{
volume = 0
}
exe_cmd(0x06, 0, volume)
delay(100)
}
void equalizer()
{
eqset = eqset+1
if(eqset == 6)
{
eqset = 0
}
exe_cmd(0x07, 0 ,eqset)
delay(100)
}
void exe_cmd(byte CMD, byte Par1, byte Par2)
{
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2)
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}
for (byte x=0 x<10 x++)
{
mySerial.write(Command_line[x])
}
}
//---------Developed by R.Girish------//

नोट 1: आप संकलन करते समय कार्यक्रम में चेतावनी देख सकते हैं, कृपया इसे अनदेखा करें।

नोट 2: अपने सभी गाने एसडी कार्ड में बिना फोल्डर के डालने की कोशिश करें।

लेखक का प्रोटोटाइप:




पिछला: LiFi इंटरनेट ट्रांसमीटर सर्किट - USB सिग्नल ट्रांसफर एलईडी के माध्यम से अगला: 7 वाट एलईडी ड्राइवर एसएमपीएस सर्किट - वर्तमान नियंत्रित