ڈی ایف پلیئر کا استعمال کرتے ہوئے ایم پی 3 پلیئر۔ مکمل ڈیزائن کی تفصیلات

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





اس پوسٹ میں ہم ارڈوینو اور ڈی ایف پلیئر کا استعمال کرتے ہوئے ایک MP3 پلیئر تعمیر کرنے جارہے ہیں۔ مجوزہ مضمون میں دو ایم پی 3 پلیئر ڈیزائنز ہیں ، ایک پش بٹن کنٹرول کے ساتھ اور دوسرا IR ریموٹ کنٹرول والا۔ ہم DFPlayer (MP3 پلیئر ماڈیول) اور اس کی خصوصیات پر بھی ایک نگاہ ڈالیں گے۔

ہم سب موسیقی پسند کرتے ہیں ، ہم اسے جم ، پڑھنے ، سونے سے لمحوں یا سخت دن کے مشقت کے بعد اپنے آپ کو راحت بخش کرتے ہوئے سننا چاہتے ہیں۔



مکینیکل اجزاء کی وجہ سے تعمیراتی پیچیدگی کی وجہ سے کچھ عشروں قبل گھر میں میوزک پلیئر کی تعمیر قریب قریب ایک ناممکن تھا۔

ان دنوں میں صرف محدود تعداد میں گانے کیسٹ میں رکھے جاسکتے تھے۔ کسی اور کیسٹ میں گانے کی نقل لگانا بھی ایک ڈراؤنا خواب تھا۔ لیکن اب ، الیکٹرانکس میں ترقی کی بدولت ایک MP3 پلیئر آپ کی جیب کی رقم سے شروع سے تیار کیا جاسکتا ہے۔



آئیے اس منصوبے کی تکنیکی تفصیلات کی طرف چلتے ہیں۔

پروجیکٹ کا دل DFPlayer ہے جو ایک چھوٹا MP3 پلیئر ماڈیول ہے جو مائکرو ایسڈی کارڈ کو ایڈجسٹ کرسکتا ہے اور مائکروکنٹرولر کا استعمال کرتے ہوئے اسے کنٹرول کیا جاسکتا ہے۔

DFPlayer کی مثال:

ڈی ایف پلیئر

اس میں ان بلٹ یمپلیفائر ہے جو اسٹیریو یا مونو میں 3 واٹ ​​لاؤڈ اسپیکر چلا سکتا ہے۔ اس میں 24 بٹ ڈیجیٹل ٹو اینالاگ کنورٹر (ڈی اے سی) ہے جو اس طرح کی کم قیمت اور کمپیکٹ ماڈیول کے لئے کافی اچھا ہے۔

ڈی ایف پلیئر کا نیچے نظارہ:

ڈی ایف پلیئر کا نیچے نظارہ

یہ MP3 اور WMV ہارڈویئر ضابطہ کشائی کی حمایت کرتا ہے۔ یہ نمونے لینے کی شرح کی حمایت کرتا ہے
8KHz ، 11.025KHz ، 12KHz ، 1 6KHz ، 22.05KHz ، 24KHz ، 32KHz ، 44.1KHz ، 48KHz

یہ 32 جی بی تک مائیکرو ایسڈی کارڈ کی حمایت کرسکتا ہے۔ یہ 100 فولڈر تک سپورٹ کرتا ہے ، ہر فولڈر میں 1000 گانے دیئے جاسکتے ہیں۔

اس میں برابری کے 6 مختلف درجے اور حجم ایڈجسٹ کنٹرول کی 30 سطحیں ہیں۔ یہ 3.2V سے 5V تک کام کرسکتا ہے۔

DFPlayer کی پن ترتیب:

ڈی ایف پلیئر کی پن کنفیگریشن

مندرجہ بالا وضاحتیں ڈی ایف پلیئر کے ڈیٹا شیٹ پر مبنی ہیں۔

اب تک آپ ڈی ایف پلیئر اور اس کی تفصیلات سے واقف ہوں گے۔ آپ اس ماڈیول کو ای کامرس سائٹس یا مقامی الیکٹرانکس مارکیٹ سے خرید سکتے ہیں۔

اب آئیے اسکیمیٹک آریگرام میں جائیں۔

پش بٹن MP3 پلیئر ڈیزائن:

Ardino اور DFPlayer کا استعمال کرتے ہوئے MP3 پلیئر

مذکورہ بالا سرکٹ بہت آسان ہے۔ ارڈوینو گانے پر قابو پانے کے لئے ڈی ایف پلیئر ماڈیول کو کمانڈ بھیجتا ہے۔ صارف پش بٹنوں کے ذریعہ اپنی پسند کا ان پٹ لے سکتا ہے۔

پروگرام میں ارڈوینو کے بلٹ ان پل اپ ریزٹر کو چالو کردیا گیا ہے ، تاکہ ہمیں بٹنوں کو دبانے کے ل a کوئی جسمانی مزاحم لگانے کی ضرورت نہ ہو۔

اچھے معیار کے اسپیکر استعمال کرنے کی کوشش کریں جو DFPlayer بہت اچھے معیار کی آواز فراہم کرسکتا ہے۔

اگر آپ کو اعلی حجم کی سطح پر آواز میں کوئی مسخ معلوم ہوتی ہے تو ، DFPlayer ماڈیول کو بیرونی طور پر 5V DC پر پاور کریں جس میں ارڈینو اور DFPlayer کے مابین مشترکہ زمینی رابطہ ہے۔

اگر آپ اسٹیریو ساؤنڈ سیٹ اپ چاہتے ہیں تو اسپیکر میں سے ایک کو ڈی ایف پلیئر کے ایس پی کے ون اور دوسرے اسپیکر کو ایس پی کے 2 سے مربوط کریں اور اسپیکر کے بقیہ تاروں کو گراؤنڈ کریں۔

پش بٹن کنٹرول کے لئے پروگرام:

//---------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------//

اب آئی آر ریموٹ پر مبنی ڈیزائن کی طرف چلتے ہیں۔

آئی آر کنٹرول شدہ MP3 پلیئر کیلئے اسکیماتی:


مذکورہ بالا ڈیزائن آسان ہے کیونکہ پش بٹن پر مبنی فرق صرف پش بٹنوں کو ہٹانا اور ٹی ایس او پی 1738 آئی آر وصول کنندہ کو شامل کرنا ہے۔ IR ریموٹ سے موصولہ سگنل کو ارڈوینو کے A0 پن میں کھلایا جاتا ہے۔

اب اس ایم پی 3 پلیئر کو کنٹرول کرنے کے ل you آپ کو اسپیئر ٹی وی ، یا کسی اور آئی آر پر مبنی ریموٹ کی ضرورت ہے جو آپ کے جنک باکس پر پڑا ہے۔ آپ کو فیصلہ کرنا ہے کہ پلے اینڈ موقف وغیرہ جیسے کاموں کو کنٹرول کرنے کے لئے کون سے بٹن ہیں۔

6 کام ہیں:

1) کھیل اور توقف
2) اگلا گانا
3) پچھلا گانا
4) حجم میں اضافہ
5) حجم میں کمی
6) صوتی مساوات (عمومی / پاپ / راک / جاز / کلاسیکی / بیس)

آپ کو ریموٹ پر بٹنوں کو منتخب کرنے اور ان بٹنوں کے اس کے ہیکساڈسمل کوڈز تلاش کرنے کی ضرورت ہے جو ریموٹ کے ذریعہ منتقل ہوں گے۔ ہیکساڈیسمل کوڈ تلاش کرنے کے ل the ، IR لائبریری ڈاؤن لوڈ کریں اگر ایسا نہیں کیا گیا ہے۔

github.com/z3t0/Ardino-IRremote

ارڈینو سافٹ ویئر میں لائبریری شامل کریں اور فائل> مثالوں> IRremote> IRrecvDemo پر جائیں اور مکمل ہارڈ ویئر سیٹ اپ کے ساتھ کوڈ اپ لوڈ کریں۔

سیریل مانیٹر کھولیں اور ریموٹ پر بٹن دبائیں ، آپ کو ہیکساڈیسمل کوڈ نظر آئے گا ، اسے کاغذ کے ٹکڑے پر اسی بٹن پر نوٹ کریں۔

آپ کو ذیل میں دیئے گئے پروگرام میں ہیکساڈیسمل کوڈ داخل کرنے کی ضرورت ہے۔ ایک بار جب آپ دیئے گئے پروگرام میں ہیکساڈیسمل کوڈز داخل کرتے ہیں تو اسے اپ لوڈ کریں۔ آپ اپنے گانے کو اپنے دور دراز سے قابو کرنے کے لئے تیار ہیں۔

IR ریموٹ پر مبنی ڈیزائن کے لئے پروگرام:

//---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: اپنے تمام گانوں کو فولڈر کے بغیر ایسڈی کارڈ میں رکھنے کی کوشش کریں۔

مصنف کی پروٹو ٹائپ:




پچھلا: لی فائی انٹرنیٹ ٹرانسمیٹر سرکٹ - ایل ای ڈی کے ذریعے USB سگنل کی منتقلی اگلا: 7 واٹ ایل ای ڈی ڈرائیور ایس ایم پی ایس سرکٹ - موجودہ کنٹرولڈ