- پی ڈبلیو ایم سگنل کیا ہے؟
- PWM PIC16F877A کا استعمال کرتے ہوئے:
- PWM سگنل تیار کرنے کے لئے پروگرامنگ PIC:
- اسکیمات اور جانچ:
- ہارڈ ویئر پر کام کرنا:
ایم پی ایل بی اور ایکس سی 8 کا استعمال کرتے ہوئے پی سی سی مائکروکنٹرولرز لرننگ کا یہ ہمارا 10 واں سبق ہے ۔ ابھی تک ، ہم نے بہت سارے بنیادی سبق آموز مواد جیسے پی آئی سی کے ساتھ چمکنے ، پی آئی سی میں ٹائمر ، ایل سی ڈی انٹرفیسنگ ، 7 سیگمنٹ انٹرفیسنگ ، پی آئی سی کا استعمال کرتے ہوئے اے ڈی سی وغیرہ کا احاطہ کیا ہے اگر آپ قطعی ابتدائی ہیں تو ، براہ کرم یہاں پی آئی سی سبق کی مکمل فہرست ملاحظہ کریں اور سیکھنا شروع کریں۔
اس ٹیوٹوریل میں ، ہم PIC PIC16F877A کا استعمال کرتے ہوئے PWM سگنل پیدا کرنے کا طریقہ سیکھیں گے ۔ ہمارے پی آئی سی ایم سی یو میں ایک خاص ماڈیول ہے جس کا موازنہ کیپریچر ماڈیول (سی سی پی) ہے جسے پی ڈبلیو ایم سگنل تیار کرنے کے لئے استعمال کیا جاسکتا ہے۔ یہاں ، ہم 0٪ سے 100٪ تک متغیر ڈیوٹی سائیکل کے ساتھ 5 کلو ہرٹز کا پی ڈبلیو ایم تیار کریں گے۔ ڈیوٹی سائیکل کو مختلف کرنے کے ل we ہم ایک پوٹینومیٹر استعمال کررہے ہیں ، لہذا پی ڈبلیو ایم سے شروع کرنے سے پہلے اے ڈی سی ٹیوٹوریل سیکھنے کی سفارش کی جاتی ہے۔ پی ڈبلیو ایم ماڈیول اپنی تعدد متعین کرنے کے لئے ٹائمر کا استعمال بھی کرتا ہے لہذا پہلے ہی ٹائمر استعمال کرنے کا طریقہ سیکھیں۔ مزید ، اس ٹیوٹوریل میں ہم PWM اقدار کو ینالاگ وولٹیج میں تبدیل کرنے اور ایل ای ڈی لائٹ کو مدھم کرنے کے لئے استعمال کریں گے۔
پی ڈبلیو ایم سگنل کیا ہے؟
پلس کی چوڑائی ماڈیولیشن (PWM) ایک ڈیجیٹل سگنل ہے جو عام طور پر کنٹرول سرکٹری میں استعمال ہوتا ہے۔ یہ سگنل ایک وضاحتی وقت اور رفتار میں اونچائی (5v) اور کم (0v) مرتب کیا گیا ہے۔ جس وقت کے دوران سگنل زیادہ رہے گا اسے "وقت پر" کہا جاتا ہے اور جس وقت کے دوران سگنل کم رہتا ہے اسے "آف ٹائم" کہا جاتا ہے۔ پی ڈبلیو ایم کے لئے دو اہم پیرامیٹرز ہیں جیسا کہ ذیل میں بحث کی گئی ہے:
پی ڈبلیو ایم کا ڈیوٹی سائیکل:
وقت کا فیصد جس میں پی ڈبلیو ایم سگنل ہائی (وقت پر) رہتا ہے ، کو ڈیوٹی سائیکل کہا جاتا ہے۔ اگر سگنل ہمیشہ ہی رہتا ہے تو یہ 100٪ ڈیوٹی سائیکل میں ہوتا ہے اور اگر یہ ہمیشہ ہی بند رہتا ہے تو یہ 0٪ ڈیوٹی سائیکل ہے۔
ڈیوٹی سائیکل = ٹائم آن کریں / (ٹائم آن کریں + ٹرن آف ٹائم)
پی ڈبلیو ایم کی تعدد:
پی ڈبلیو ایم سگنل کی تعدد یہ طے کرتی ہے کہ ایک پی ڈبلیو ایم ایک مدت کتنی تیزی سے مکمل کرتا ہے۔ ایک مدت PWM سگنل کی آن اور بند مکمل ہے جیسا کہ مندرجہ بالا اعداد و شمار میں دکھایا گیا ہے۔ ہمارے سبق میں ہم 5KHz کی تعدد متعین کریں گے۔
PWM PIC16F877A کا استعمال کرتے ہوئے:
پی ڈبلیو ایم سگنل سی سی پی (موازنہ کیپچر پی ڈبلیو ایم) ماڈیول کا استعمال کرکے ہمارے پی آئی سی مائکروکنٹرولر میں تیار کیے جاسکتے ہیں ۔ ہمارے پی ڈبلیو ایم سگنل کی ریزولوشن 10 بٹ ہے ، یعنی 0 کی قیمت کے لئے 0٪ کی ڈیوٹی سائیکل ہوگی اور 1024 (2 ^ 10) کی قیمت کے لئے 100٪ کی ڈیوٹی سائیکل ہوگی۔ ہمارے پی آئی سی ایم سی یو (سی سی پی 1 اور سی سی پی 2) میں دو سی سی پی ماڈیولز ہیں ، اس کا مطلب ہے کہ ہم بیک وقت دو مختلف پنوں (پن 17 اور 16) پر دو پی ڈبلیو ایم سگنل تیار کرسکتے ہیں ، اپنے ٹیوٹوریل میں ہم پن 17 پر پی ڈبلیو ایم سگنل تیار کرنے کے لئے سی سی پی 1 کا استعمال کر رہے ہیں۔
ہمارے پی آئی سی ایم سی یو کا استعمال کرتے ہوئے پی ڈبلیو ایم سگنل تیار کرنے کے لئے درج ذیل رجسٹر استعمال کیے جاتے ہیں۔
- CCP1CON (CCP1 کنٹرول رجسٹر)
- T2CON (ٹائمر 2 کنٹرول رجسٹر)
- PR2 (ٹائمر 2 ماڈیول پیریڈ رجسٹر)
- سی سی پی آر 1 ایل (سی سی پی رجسٹر 1 کم)
PWM سگنل تیار کرنے کے لئے پروگرامنگ PIC:
ہمارے پروگرام میں ہم ایک پوٹینومیٹر سے 0-5v کا ینالاگ وولٹیج پڑھیں گے اور اپنے ADC ماڈیول کا استعمال کرکے اسے 0-1024 پر نقشہ بنائیں گے۔ پھر ہم تعدد 5000 ہ ہرٹج کے ساتھ پی ڈبلیو ایم سگنل تیار کرتے ہیں اور ان پٹ اینالاگ وولٹیج کی بنیاد پر اس کے ڈیوٹی سائیکل میں مختلف ہوتی ہیں۔ یعنی 0-1024 ہے کو 0٪ -100٪ ڈیوٹی سائیکل میں تبدیل کیا جائے گا۔ اس ٹیوٹوریل نے فرض کیا ہے کہ آپ نے پہلے ہی PIC میں ADC استعمال کرنا سیکھا ہے اگر نہیں تو ، اسے یہاں سے پڑھیں ، کیوں کہ ہم اس سبق میں اس کے بارے میں تفصیلات چھوڑ دیں گے۔
لہذا ، ایک بار جب ترتیب بٹس سیٹ ہوجاتی ہیں اور ینالاگ قدر پڑھنے کے لئے پروگرام لکھا جاتا ہے ، تو ہم PWM کے ساتھ آگے بڑھ سکتے ہیں۔
پی ڈبلیو ایم آپریشن کے لئے سی سی پی ماڈیول تشکیل دیتے وقت مندرجہ ذیل اقدامات اٹھائے جائیں:
- PR2 رجسٹر کو لکھ کر PWM کی میعاد طے کریں۔
- پی سی ڈبلیو ایم ڈیوٹی سائیکل کو سی سی پی آر 1 ایل رجسٹر اور سی سی پی ون سیون <5: 4> لکھ کر لکھ دیں۔
- TRISC <2> تھوڑا سا صاف کرکے سی سی پی 1 کو پن کو آؤٹ پٹ بنائیں۔
- ٹی ایم آر 2 پریسکل ویلیو سیٹ کریں اور ٹی 2 سیون کو لکھ کر ٹائمر 2 کو قابل بنائیں۔
- پی ڈبلیو ایم آپریشن کیلئے سی سی پی 1 ماڈیول تشکیل دیں۔
اس پروگرام میں پی ڈبلیو ایم سگنل تیار کرنے کے لئے دو اہم کام ہیں۔ ایک PWM_Initialize () فنکشن ہے جو PWM ماڈیول ترتیب دینے کے لئے درکار رجسٹروں کا آغاز کرے گا اور پھر فریکوینسی جس میں پی ڈبلیو ایم کو چلنا چاہئے طے کرے گا ، دوسرا فنکشن پی ڈبلیو ایم_ ڈیوٹی () فنکشن ہے جو پی ڈبلیو ایم سگنل کے ڈیوٹی سائیکل کو متعین کرے گا۔ مطلوبہ اندراجات۔
PWM_Initialize () {PR2 = (_XTAL_FREQ / (PWM_freq * 4 * TMR2PRESCALE)) - 1؛ // ڈیٹاشیٹ کا استعمال کرتے ہوئے PR2 فارمولے مرتب کرنا // PWM 5KHZ CCP1M3 = 1 میں کام کرتا ہے۔ سی سی پی 1 ایم 2 = 1؛ // سی سی پی 1 ماڈیول T2CKPS0 = 1 تشکیل دیں؛ T2CKPS1 = 0؛ TMR2ON = 1؛ // ٹائمر ماڈیول TRISC2 = 0 تشکیل دیں؛ // C پر پورٹ پن بطور پیداوار بنائیں pin
مذکورہ بالا فنکشن PWM ابتداء کرنے والا فنکشن ہے ، اس فنکشن میں سی سی پی 1 ماڈیول پی سی ڈبلیو ایم کو بٹ سی سی پی 1 ایم 3 اور سی سی پی 1 ایم 2 کو اونچا بنا کر استعمال کرنے کے لئے تیار ہے۔
ٹائمر ماڈیول کا پرسکلر تھوڑا سا T2CKPS0 بنا کر اور T2CKPS1 کو کم کرکے تھوڑا سا ٹی ایم آر 2 ون ٹائمر شروع کرنے کے لئے مرتب کیا گیا ہے۔
اب ، ہمیں پی ڈبلیو ایم سگنل کی فریکوئنسی مرتب کرنا ہے ۔ فریکوئینسی کی قیمت PR2 رجسٹر کو لکھنا پڑتا ہے۔ مطلوبہ تعدد مندرجہ ذیل فارمولوں کا استعمال کرکے مقرر کیا جاسکتا ہے
پی ڈبلیو ایم پیریڈ = * 4 * ٹاسک * (ٹی ایم آر 2 پریسل ویلیو)
PR2 حاصل کرنے کے لئے ان فارمولوں کو دوبارہ ترتیب دینا دے گا
PR2 = (مدت / (4 * ٹاسک * TMR2 پریسل)) - 1
ہم جانتے ہیں کہ مدت = (1 / PWM_freq) اور Tosc = (1 / _XTAL_FREQ)۔ لہذا…..
PR2 = (_XTAL_FREQ / (PWM_freq * 4 * TMR2PRESCALE)) - 1؛
ایک بار جب تعدد متعین ہوجاتا ہے تو اس فنکشن کو دوبارہ نہیں بلانے کی ضرورت ہوتی ہے جب تک کہ ہمیں دوبارہ تعدد تبدیل کرنے کی ضرورت نہ ہو۔ ہمارے سبق میں میں نے PWM_freq = 5000 تفویض کیا ہے ۔ تاکہ ہم اپنے PWM سگنل کے ل 5 5 KHz آپریٹنگ فریکوئنسی حاصل کرسکیں۔
اب ہم مندرجہ ذیل فنکشن کا استعمال کرکے پی ڈبلیو ایم کا ڈیوٹی سائیکل مرتب کریں
پی ڈبلیو ایم_ ڈیوٹی (دستخط شدہ انٹ ڈیوٹی) {اگر (ڈیوٹی <1023) {ڈیوٹی = ((فلوٹ) ڈیوٹی / 1023) * (_ XTAL_FREQ / (PWM_freq * TMR2PRESCALE))؛ // // ڈیوٹی = ((فلوٹ) ڈیوٹی / 1023) * (1 / PWM_freq)) / ((1 / _XTAL_FREQ) * TMR2PRESCALE) کو کم کرنے پر؛ سی سی پی 1 ایکس = ڈیوٹی & 1؛ // پہلا سا ذخیرہ کریں سی سی پی 1 وائی = ڈیوٹی & 2؛ // 0 ویں ساٹ سی سی پی آر 1 ایل = ڈیوٹی >> 2؛ // یاد 8 بٹ اسٹور کریں}
ہمارے پی ڈبلیو ایم سگنل میں 10 بٹ ریزولوشن ہے لہذا اس قدر کو کسی ایک رجسٹر میں محفوظ نہیں کیا جاسکتا ہے کیونکہ ہمارے پی آئی سی میں صرف 8 بٹ ڈیٹا لائنز موجود ہیں۔ لہذا ہمارے پاس آخری دو LSB اسٹور کرنے کے لئے CCP1CON <5: 4> (CCP1X اور CCP1Y) کے دوسرے دو بٹس استعمال ہیں اور پھر باقی 8 بٹس کو CCPR1L رجسٹر میں محفوظ کریں۔
پی ڈبلیو ایم ڈیوٹی سائیکل ٹائم کا حساب ذیل فارمولوں کے ذریعہ لگایا جاسکتا ہے۔
پی ڈبلیو ایم ڈیوٹی سائیکل = (CCPRIL: CCP1CON <5: 4>) * ٹاسک * (TMR2 پریسل ویلیو)
CCPR1L اور CCP1CON کی قیمت حاصل کرنے کے لئے ان فارمولوں کو دوبارہ ترتیب دینے سے یہ ملے گا:
سی سی پی آر آئل: سی سی پی 1 کون <5: 4> = پی ڈبلیو ایم ڈیوٹی سائیکل / (ٹاسک * ٹی ایم آر 2 پریسل ویلیو)
ہمارے اے ڈی سی کی قیمت 0-1024 ہوگی ، ہمیں اس کی ضرورت 0٪ -100٪ ہونی چاہئے ، پی ڈبلیو ایم ڈیوٹی سائیکل = ڈیوٹی / 1023۔ مزید یہ کہ اس ڈیوٹی سائیکل کو ایک مدت میں تبدیل کرنے کے ل we ہمیں اسے مدت (1 / PWM_freq) کے ساتھ ضرب کرنا ہوگا۔
ہم یہ بھی جانتے ہیں کہ توسک = (1 / PWM_freq) ، لہذا..
ڈیوٹی = (((فلوٹ) ڈیوٹی / 1023) * (1 / پی ڈبلیو ایم_ فریک)) / ((1 / _XTAL_FREQ) * TMR2PRESCALE))؛
مذکورہ بالا مساوات کو حل کرنے سے ہمیں ملے گا:
ڈیوٹی = ((فلوٹ) ڈیوٹی / 1023) * (_XTAL_FREQ / (PWM_freq * TMR2PRESCALE))؛
آپ تفصیلی ویڈیو کے ساتھ نیچے کوڈ سیکشن میں مکمل پروگرام چیک کرسکتے ہیں ۔
اسکیمات اور جانچ:
ہمیشہ کی طرح ہم پروٹیوس انکار استعمال کرتے ہوئے آؤٹ پٹ کی تصدیق کریں۔ سرکٹ ڈایا گرام ذیل میں دکھایا گیا ہے.
ایک پوٹینومیٹر کو 7 ویں پن سے متصل کریں تاکہ 0-5 کے وولٹیج میں کھانا کھلا سکے۔ سی سی پی ون ماڈیول پن 17 (آر سی 2) کے ساتھ ہے ، یہاں پی ڈبلیو ایم تیار کی جائے گی جس کی تصدیق ڈیجیٹل آسکلوسکوپ کے ذریعہ کی جاسکتی ہے۔ اس کو متغیر وولٹیج میں تبدیل کرنے کے ل we ہم نے کسی گنجائش کے بغیر آؤٹ پٹ کی تصدیق کرنے کے لئے ایک آر سی فلٹر اور ایل ای ڈی کا استعمال کیا ہے۔
آر سی فلٹر کیا ہے؟
ایک آر سی فلٹر یا لو پاس فلٹر ایک آسان سرکٹ ہے جس میں دو غیر فعال عناصر یعنی ریزٹر اور کیپسیٹر ہیں۔ یہ دونوں اجزاء ہمارے پی ڈبلیو ایم سگنل کی فریکوئنسی کو فلٹر کرنے اور اسے متغیر ڈی سی وولٹیج بنانے کے لئے استعمال ہوتے ہیں۔
اگر ہم سرکٹ کا جائزہ لیں ، جب R کے ان پٹ پر متغیر وولٹیج کا اطلاق ہوتا ہے تو ، سندارتار سی چارج کرنا شروع کردے گا۔ اب کیپسیٹر کی قدر کی بنیاد پر ، کاپاکیٹر مکمل چارج ہونے میں کچھ وقت لگے گا ، ایک بار چارج ہونے پر یہ ڈی سی کرنٹ بلاک ہوجائے گا (کیپسیٹرز بلاک ڈی سی کو یاد رکھیں لیکن اے سی کی اجازت دیتا ہے) لہذا آؤٹ پٹ میں ان پٹ ڈی سی وولٹیج ظاہر ہوگا۔ اعلی تعدد پی ڈبلیو ایم (اے سی سگنل) کاپاکیٹر کے ذریعہ بنایا جائے گا۔ اس طرح سندارتر کے پار ایک خالص ڈی سی حاصل کیا جاتا ہے۔ اس منصوبے کے ل 1000 1000 اوہم اور 1 اف کی قیمت مناسب معلوم ہوئی۔ R اور C کی اقدار کا حساب لگانے میں ٹرانسفر فنکشن کا استعمال کرتے ہوئے سرکٹ تجزیہ کرنا شامل ہے ، جو اس ٹیوٹوریل کے دائرہ کار سے باہر ہے۔
جیسا کہ ذیل میں دکھایا گیا ہے ، ڈیجیٹل اوسلوسکوپ کا استعمال کرتے ہوئے پروگرام کی آؤٹ پٹ کی تصدیق کی جاسکتی ہے ، PentiMometer اور PWM کے ڈیوٹی سائیکل کو تبدیل کرنا چاہئے۔ ہم ولٹ میٹر کا استعمال کرتے ہوئے RC سرکٹ کے آؤٹ پٹ وولٹیج کو بھی دیکھ سکتے ہیں۔ اگر ہر چیز توقع کے مطابق کام کر رہی ہے تو ہم اپنے ہارڈ ویئر کے ساتھ آگے بڑھ سکتے ہیں۔ مکمل عمل کے ل the آخر میں ویڈیو کو چیک کریں۔
ہارڈ ویئر پر کام کرنا:
پروجیکٹ کا ہارڈ ویئر سیٹ اپ بہت آسان ہے ، ہم صرف ذیل میں دکھائے گئے اپنے PIC پرفیکٹ بورڈ کو دوبارہ استعمال کرنے جارہے ہیں۔
ہمیں ینالاگ وولٹیج میں کھانا کھلانا کرنے کے لئے ایک پوٹینومیٹر کی بھی ضرورت ہوگی ، میں نے اپنے برتن میں کچھ خواتین کی آخری تاروں کو منسلک کیا ہے (نیچے دکھایا گیا ہے) تاکہ ہم انہیں پی آئی سی پرفل بورڈ سے براہ راست جوڑ سکیں۔
آخر میں آؤٹ پٹ کی تصدیق کے ل we ہمیں ایک RC سرکٹ اور ایل ای ڈی کی ضرورت ہے تاکہ یہ دیکھنے کے ل P PWM سگنل کیسے کام کرتا ہے ، میں نے ایک چھوٹا پرف بورڈ استعمال کیا ہے اور RC سرکٹ اور یلئڈی (چمک پر قابو پانے کے لئے) اس پر ذیل میں دکھایا ہے۔
ہم خواتین کو جوڑنے والی تاروں سے سادہ خواتین کا استعمال کرسکتے ہیں اور انہیں اوپر دکھائے گئے اسکیمیٹک کے مطابق مربوط کرسکتے ہیں۔ ایک بار کنکشن ہوجانے کے بعد ، ہمارے پکٹ 3 کا استعمال کرکے پروگرام کو پی آئی سی پر اپ لوڈ کریں اور آپ کو اپنے پوٹینومیٹر کی ان پٹ کی بنیاد پر متغیر وولٹیج حاصل کرنے کے قابل ہونا چاہئے۔ متغیر آؤٹ پٹ یہاں ایل ای ڈی کی چمک کو کنٹرول کرنے کے لئے استعمال ہوتا ہے۔
میں نے متغیر آؤٹ پٹس کی پیمائش کے ل measure اپنے ملٹی میٹر کا استعمال کیا ، ہم مختلف وولٹیج کی سطحوں کے ل the تبدیل شدہ ایل ای ڈی کی چمک کو بھی دیکھ سکتے ہیں۔
یہی بات ہے کہ ہم نے پی او ٹی سے اینالاگ وولٹیج پڑھنے اور پی ڈبلیو ایم سگنل میں تبدیل کرنے کا پروگرام بنایا ہے جس کے نتیجے میں آر سی فلٹر کا استعمال کرتے ہوئے متغیر وولٹیج میں تبدیل ہوچکا ہے اور اس کا نتیجہ ہمارے ہارڈ ویئر کے ذریعہ تصدیق شدہ ہے۔ اگر آپ کو کچھ شک ہے یا کہیں پھنس گیا ہے تو نیچے دیئے گئے کمنٹ سیکشن کا استعمال کریں تو ہم آپ کی مدد کرکے خوش ہوں گے۔ مکمل کام کی ویڈیو میں کام کر رہا ہے.
دوسرے مائکروکانٹرولرز پر ہمارے دوسرے پی ڈبلیو ایم سبق بھی دیکھیں۔
- راسبیری پائی PWM ٹیوٹوریل
- پی ڈبلیو ایم کے ساتھ آرڈینوو واجب ہے
- پی ڈبلیو ایم کا استعمال کرتے ہوئے اردوینو بیسڈ ایل ای ڈی ڈمر
- اے ٹی میگا 32 مائکروکونٹرولر کا استعمال کرتے ہوئے پاور ایل ای ڈی ڈمر