مائکروکنٹرولر کی بنیادی باتیں

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





مائکروکنٹرولر آئی سی کے بارے میں ایک چیز بہت اچھی ہے ، یہ دنیا کے تقریبا تمام حصوں اور الیکٹرانک خوردہ فروشوں میں دستیاب ہیں۔

تعارف

بنیادی طور پر مائکروکونٹرولر ڈیوائسز آس پاس کے ماحول اور اسی طرح کے الیکٹرانکس کے جائزوں پر مشتمل ایپلی کیشنز میں مقبول طور پر استعمال ہوتی ہیں۔



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

مائکروکانٹرولرز کے بارے میں بنیادی تفہیم اے وی آر امیگا 32 مائکروکونٹرلر کا حوالہ دے کر حاصل کی جاسکتی ہے جو اس قدر ترقی یافتہ ہے کہ بعض اوقات اسے چپ کے اندر کمپیوٹر بھی کہا جاتا ہے۔



اس ڈیوائس کو ایک پروگرام بنانے کے لئے سلسلہ وار کمانڈ کو پورا کرنے کے لئے تفویض کیا گیا ہے۔

پروگرام کی زبان جو آپ یہاں دیکھ رہے ہو گی وہ C ++ ہے۔ آپ کو یہ کورس یہاں کی گہرائیوں میں بڑی زبان میں سیکھنا ہوگا۔

جب بات MCUs کی ہو تو ، آپ کو یہ سہولت ملتی ہے کہ اس کے تمام پن آؤٹ کو کنٹرول اور تشکیل دینے کا آپشن موجود ہے۔

اگر آپ اس سے تھوڑا سا تھک رہے ہیں تو ، صرف سردی کی وجہ سے یہ کوئی پیچیدہ بات نہیں ہے ، جب کہ ہم آگے بڑھ رہے ہیں تو آپ کو تمام پہلوؤں میں استحکام لیکن مضبوطی سے آسانی ہوگی۔

ایم سی یو چپ میں وی ڈی ڈی اور وی ایس ایس کے علاوہ تمام پنوں کو چھوڑ دیا جائے گا جو چپ کی پاور پن ہیں ، انہیں خصوصی عہدہ کے ساتھ تفویض کیا جاسکتا ہے۔

پن آؤٹ کی تفصیلات

اگر آپ چپ کو اوپر سے دیکھیں ، تو آپ کو تھوڑا سا سہ رخی نشان ملے گا جو نقطہ آغاز کی نشاندہی کرتا ہے جہاں سے پن آؤٹ شروع ہوتا ہے ، اس گنتی میں ہے کہ چپ کا # 1 پن اس نشان کے نیچے شروع ہوتا ہے۔

اس پن سے شروع کرتے ہوئے آپ کو نیچے کی طرف (بائیں) نیچے 20 پن اور دوسری طرف (دائیں) پر ، اور دائیں ہاتھ کی طرف سے نیچے سے اوپر تک جاری رہتے ہوئے 20 پن ملیں گے۔

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

پن آؤٹ کی مذکورہ سیریز کو پورٹ بی کہا جاتا ہے ، جبکہ A سے D کو تفویض کردہ بندرگاہوں کے دوسرے ایک جیسے سیٹ ہیں۔

ان بندرگاہوں کو INPUT نامی ایک کھلایا ڈیٹا کو قبول کرنے اور پہچاننے کے لئے تفویض کیا جاسکتا ہے ، اور OUTPUT نامی کچھ مخصوص شکل میں ڈیٹا منتقل کرنے کے لئے بھی تفویض کیا جاسکتا ہے۔

عام قسم میں آنے والی پنوں میں سے دو (+) / (-) پن ہیں جنہیں Vdd اور GND بھی کہا جاتا ہے۔

پورٹ ڈی (PDO-6) کا ایک پن نیچے کے علاقے میں چپ کے بائیں جانب واقع دیکھا جاسکتا ہے۔

PD7 جو پورٹ ڈی کا نمبر # 7 ہے تنہا کھڑے ہوکر اور دائیں ہاتھ کی سیریز کے آؤٹ ہونے کی جگہ کا پتہ لگاسکتا ہے۔

اب چپ کے دائیں ہاتھ سے آگے بڑھ رہے ہیں جہاں پورٹ ڈی ختم ہوتا ہے ، پورٹ سی اپنی ترتیب کو اوپر کی طرف شروع کرتا ہے۔

یہ ینالاگ سے لے کر ڈیجیٹل والے تک ایم سی یو کے بہت سارے دلچسپ پنوں میں شراکت کرتے ہیں۔

ان پنوں کو خارجی طور پر تشکیل شدہ ینالاگ سرکٹ مرحلے کے ذریعے بہت سارے پیرامیٹرز کا پتہ لگانے کے ل the سینسنگ آدانوں کی حیثیت سے نمایاں کیا گیا ہے۔

مندرجہ بالا پنوں پورٹ اے کی تشکیل

مندرجہ بالا پنوں کے ڈیجیٹل کنورژن کے ینالاگ کو اس مثال کی مدد سے سمجھا جاسکتا ہے جس میں عام سینسر جیسے تھرمسٹر کا استعمال کرتے ہوئے ایک ینالاگ درجہ حرارت کی سطح کو پورٹ اے پنوں میں سے کسی ایک پر لاگو کیا جاتا ہے جسے آسانی سے قبول کیا جاتا ہے اور ایم سی یو کے ذریعہ کنورٹر بنایا جاتا ہے۔ صفر سے 255 ڈگری ایف تک ڈیجیٹل ریڈ آؤٹ تیار کرنا (8 بٹ اعداد و شمار جس میں 10 بٹ آؤٹ پٹ حاصل کرنے کے لئے اپ گریڈ کیا جاسکتا ہے)۔

ایک اور خصوصیت جس کا مشاہدہ ایم سی یو میں کیا جاسکتا ہے اس میں دستیاب پروگرامنگ کی جگہ یا میموری ہے جو مائکروکنٹرولر کے لئے مخصوص متغیرات اور پروگرام کے لئے جگہ کا تعین کرتی ہے۔

مزید یہ کہ ، ایم سی یوز کے پاس متعلقہ پیرامیٹرز کی گنتی کے لئے ایک بلٹ ان گھڑی مقرر کی گئی ہے۔

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

اب تک آپ مائکروکانٹرولر تصور کو کسی حد تک اور اس کی بندرگاہوں اور پنوں کے بارے میں سمجھ چکے ہوں گے۔

مائیکرو کنٹرولر سے پروگرامر سے ایس پی آئی کنیکٹر کیسے بنائیں

اب وقت آگیا ہے کہ اس موضوع کو قدرے گہرائی میں جاکر پروگرامنگ کی دنیا کی تحقیقات کریں۔

یہ کہتے ہوئے ، چپ میں کسی پروگرام کو لوڈ کرنے کے طریقہ کار میں شامل ہونے سے پہلے ہمیں ایس پی آئی (سیریل پیریفرل انٹرفیس) کنیکٹر کو ایم سی یو کے ساتھ مربوط کرنے کے لئے ایک مناسب طریقہ تلاش کرنے کی ضرورت ہے۔

تاہم اس کے بعد بھی ہم ایس پی آئی کو صرف ایم سی یو پن آؤٹ میں نہیں ڈال سکتے ، کیا ہم کر سکتے ہیں؟ نہ ہی ہم ایس پی آئی سے بڑھی ہوئی تاروں کو براہ راست روٹی بورڈ میں داخل ہونے کی اجازت دے سکتے ہیں۔ یہ غلط کناروں کو غلط پنوں سے جوڑنے کی وجہ سے غلط تاروں کی ترتیب کا بھی سبب بن سکتا ہے۔

لہذا چیزوں کو قطعی طور پر ناقابل معافی بنانے کے ل the ، ہم ایک چھوٹے سے زنجیر پر عمل کرتے ہیں جس میں ہمیں مطلوبہ منسلک دھاتی پنوں کو 'ہیڈر' سولڈرڈ بھی کہا جاتا ہے۔ اب یہ ہیڈر پنوں کو ایس پی آئی کنیکٹر کے ساتھ مربوط کرنے کے لئے استعمال کیا جاسکتا ہے۔ اس ہیڈر سے ہونے والے رابطوں کو کسی اور متوازی ہیڈر پنوں پر ختم کیا جاسکتا ہے جو بریڈ بورڈ کنکشن کے لئے استعمال ہوسکتا ہے۔

اس طرح مذکورہ اسمبلی اب ایس پی آئی کے لئے ایم سی یو سے منسلک اور قابل اعتماد انٹرمیڈیٹ کو جوڑنے والا پلیٹ فارم تشکیل دیتی ہے۔

اب تک سب کچھ اچھ adا اشتہار کامل نظر آتا ہے ، لہذا آئیے اپنے کمپیوٹر اور ایم سی یو کے مابین مطلوبہ پروگرامر کے حوالے سے کمائی کرتے رہیں۔

ایسی بہت سی کمپنیاں ہوسکتی ہیں جو یہ پروگرامر یونٹ بناتی اور بیچتی ہیں ، لہذا ان کی خریداری میں آپ کو پریشانی نہیں ہونی چاہئے ، جیسے اڈفروٹ انڈسٹریز ، یو ایس بی ٹینی آئی ایس پی یا اسپارک فن وغیرہ۔

ان میں سے کچھ روایتی قسموں سے بالکل مختلف نظر آسکتے ہیں ، لیکن بنیادی طور پر سب کچھ یکساں ہوتا ہے اور پروگرامنگ کے معیاری اصولوں کی پیروی کرتا ہے اور ہوسکتا ہے کہ آپ کے کمپیوٹر اور اے وی آر مائکروکانٹرولر کے مابین انٹرفیس کے طور پر استعمال ہو۔

تاہم ، ایک سوچنے کو یقینی بنائیں ، اگر آپ کچھ اور MCU استعمال کررہے ہیں نہ کہ AVR Atmega32 ، تو آپ کو اس مخصوص MCU چپ کے لئے اسی طرح کے مطابقت پذیر پروگرامر کی جانچ پڑتال کرنی ہوگی۔

یہ مشاہدہ کیا جاسکتا ہے کہ ان میں سے بہت سارے پروگرامر ایک جیسے ڈرائیور رکھتے ہیں ، کسی چیز کا خاص خیال رکھنا ضروری ہے اور ہم اپنے بعد کے ابواب میں اس کے بارے میں مزید معلومات حاصل کریں گے۔

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

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

مندرجہ بالا اعداد و شمار کنکشن کی تفصیلات کو ظاہر کرتا ہے جو آپ ہیڈروں کے مابین تاروں کو آپس میں جوڑتے ہوئے چلنا پڑتا ہے۔

چیزوں کو اور آسان بنانے کے ل let ، اوپر دی گئی شبیہہ کا حوالہ دیتے ہوئے اس کے لئے ذیل میں رابطے کی تفصیلات دیکھیں۔

اوپر سے بائیں طرف سے شروع ہونے والا ایس پی آئی پن 'ماسٹر ان ، غلام آؤٹ' (MISO) پر جاتا ہے

بیچ میں سے ایس پی آئی پن گھڑی پن (ایس سی کے) سے جڑتا ہے

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

ایم سی یو کے جی این ڈی پن سے نیچے دائیں ہکس سے متعلق ایس پی آئی ، جی این ڈی سے مراد وہ پن ہے جو سپلائی لائن صفر ہے یا سپلائی کے منفی (رشتہ دار) ریل کی تشکیل کرتا ہے۔

درمیانی دائیں ہیڈر سے ختم ہونے والی ایس پی آئی ایم سی یو کے 'ماسٹر آؤٹ ، سلیون ان' (ایم او ایس آئی) پن سے لنک کرتی ہے۔

اوپر والے دائیں ہیڈر سے باہر آنے والی ایس پی آئی ایم سی یو کے + (+) کے ساتھ لگی ہوئی ہے جو واضح طور پر وی ڈی ڈی ہے یا ایم سی یو کا مثبت سپلائی پن ہے۔

یہی ہے.

وضاحت کے مطابق دونوں کنیکٹرز کو جوڑیں اور آپ کا ایس پی آئی انٹرفیس بورڈ مطلوبہ کارروائیوں کے لئے تیار ہے۔

مذید مدد کے ل. آپ اس اعداد و شمار سے مشورہ کرسکتے ہیں جو اوپر دکھایا گیا ہے ، آپ کے آخری انٹرفیس بورڈ کو مندرجہ بالا گفتگو کی مدد سے تمام تار رابطے مناسب طریقے سے کرنے کے بعد اس طرح نظر آنا چاہئے۔

مجھے امید ہے کہ آپ نے ایس پی آئی انٹرفیس کو پہلے ہی تیار کیا ہوگا جیسا کہ پچھلے سبق میں بیان کیا گیا ہے ، اور اب وقت آگیا ہے کہ ہمارا کمپیوٹر اس پروگرامر کو قبول کرے جس کی ہمیں پی سی اور ایم سی یو کے درمیان ضم کرنے کی ضرورت ہے۔

ایم سی یو کے لئے ایک سادہ پروگرامنگ کوڈ بنانا

ہم کمپیوٹر کو مائکروکونٹرولر سے مربوط کرنے کے ل Sp ، اسپارک فون سے دستیاب یو ایس بی ٹنی آئی ایس پی یونٹ لیتے ہیں۔

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

آئیے آپ کے کمپیوٹر OS میں ڈرائیوروں کو انسٹال کرنے کے لئے درکار طریقہ کار کو دیکھتے ہیں ، یہاں ہم 32 بٹ یا 64 بٹ چشمیوں کے ساتھ ونڈوز 7 OS کی مثال لیتے ہیں۔

sparkfun.com کھولیں اور 'جیب AVR پروگرامر صفحے' پر کلک کریں۔ صفحے کے اندر لنک کو آسانی سے دیکھا جاسکتا ہے۔

اگلا ، دستاویزات کے تحت 'ونڈوز ڈرائیور' تلاش کریں اور اس پر آسانی سے کلک کریں۔

اس سے آپ کو آپ کے کمپیوٹر میں جیبیپروگ ڈرایور۔ زپ فائل ملے گی۔

اپنے کمپیوٹر پر جائیں ، ڈاؤن لوڈ کی جگہ تلاش کریں اور ڈاؤن لوڈ فائل کو فولڈر میں کھولیں۔

اگر آپ کا کمپیوٹر 64-بٹ OS ہے ، تو آپ کو 32 بٹ OS کے ساتھ کچھ مزید اقدامات پر عمل کرنے کی ضرورت ہوگی ، آپ براہ راست ان زپ فائل سے انسٹالیشن کا آغاز کرسکتے ہیں۔

64 بٹ کے لئے ان پر عمل کریں ، 32 بٹ کے لئے محض نظر انداز کریں:

گوگل 'لبنس سورس فورج' اور تازہ ترین ورژن پر اس لنک پر کلک کریں۔

آپ کو کچھ اضافی فائلیں ملیں گی ، تاہم آپ کو بِب فائل تلاش کرنے میں دلچسپی ہوگی ، یعنی: libusb-win32-bin - #. #. #. # زپ

اب ، جاکر اپنے کمپیوٹر میں یہ ڈاؤن لوڈ کی جگہ تلاش کریں ، اسے ان زپ کریں اور اسے کسی فولڈر میں محفوظ کریں۔

اس فولڈر میں ، amd64 فولڈر میں آگے بڑھتے ہوئے ، بن فولڈر پر جائیں۔

آپ کو یہاں فولڈرز کے ایک جوڑے نظر آئیں گے جیسے: ghcalled libusb0.dll اور libusb0.sys۔

آپ ان کا نام تبدیل کرنا چاہتے ہیں: libusb0_x64.dll اور libusb0_x64.sys۔

اب آپ کو مندرجہ بالا فائلوں کو جیب پروگ ڈرائیور فولڈر میں کاپی کرنے کی ضرورت ہوگی ، فائلوں کو صرف موجودہ ورژن میں اوور رائٹ کریں۔

مذکورہ ڈرائیوروں کو انسٹال کرنے کے لئے ، درج ذیل طریقہ جو اپنی نوعیت میں غیر روایتی ہے آپ کی دلچسپی ہوگی:

یہ ایک 'شامل لیگیسی ہارڈویئر' وضع ہے۔

'اسٹارٹ مینو' پر کلک کریں

پھر 'کمپیوٹر' پر دائیں کلک کرکے آگے بڑھیں

'مینیج کریں' پر کلک کریں ، اور آخر میں 'ڈیوائس منیجر' پر کلک کریں۔

اگلا ، مینو کے اندر ، 'لیگیسی ہارڈویئر شامل کریں' کا انتخاب کریں

'اگلے' کو دبائیں ، جب تک کہ وزرڈ داخل نہ ہوجائے

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

اب صرف 'اگلا' پر کلک کریں

یہ آپ کو 'سارے آلات دکھائیں' مینو دکھائے گا جس پر آپ کو کلک کرنے کی ضرورت ہوگی۔

اس کے بعد 'ہیو ڈسک' کی علامت پر کلک کریں۔

'براؤز' آئیکن کی مدد سے ، جیب پروگ ڈرائیور فولڈر کے مقام پر آگے بڑھیں۔ اگر سلیکشن آپ کے ذریعہ صحیح طریقے سے کیا گیا تھا ، تو آپ اس مخصوص فولڈر میں رکھی جیب پورگ.in فائل کی تصویر دیکھیں گے۔

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

بات ختم، قصہ ختم!! آئیے اگلے صفحے پر اپنے اگلے سبق کے ساتھ چلتے ہیں۔

اب تک آپ نے مطلوبہ سافٹ ویئر انسٹال کر کے ایس پی آئی انٹرفیس بنایا ہوگا۔

کسی پروگرام کو مائکروقانونی چپ میں کیسے منتقل کریں

اگلے مرحلے میں کچھ اجزاء جیسے روٹی بورڈ ، ایک ایل ای ڈی اور مطلوبہ ایپلی کیشن کے لئے ایک حساب سے بچنے والا ریسٹر طلب کیا جائے گا۔

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

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

اے وی آر ڈوڈ تازہ ترین WinAVR انسٹالیشن کے ساتھ منسلک پروگرام ہے جس کے بغیر MCU میں فائل کی اصل منتقلی ممکن نہیں ہے۔

یہ پروگرام ایک. ہیکس فائل فارمیٹ ہے جو مطلوبہ پھانسیوں کے لئے ایم سی یو کے لئے بنیادی طور پر قابل فہم ہوجاتا ہے۔

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

آئیے جلدی سے دیکھتے ہیں کہ ہم مندرجہ ذیل ہدایات کی مدد سے جانچ کے طریقہ کار کو کس طرح نافذ کرسکتے ہیں۔

دیئے گئے سرچ باکس میں 'اسٹارٹ مینو' پر کلک کرکے اور cmd.exe ٹائپ کرکے DOS (ڈسک آپریٹنگ سسٹم) پرامپٹ کھولیں۔

اب اے وی آر ڈوڈ کو انجام دینے کا کام صرف ڈاس پرامپٹ پر avrdude usc usbtiny –p m32 ٹائپ کرکے کیا جاسکتا ہے۔ جیسے ہی اس پر عمل درآمد ہوگا ، ڈاس فوری طور پر تسلیم کرے گا کہ آیا یہ کنکشن کامیاب رہا۔

مذکورہ کمانڈ میں ، '-c' ایک مطلع کرنے والا جھنڈا ہے جس میں 'usbtiny' پروگرامر پیرامیٹر کی تصریح شامل ہے ، جبکہ '-p' ٹیگ مائکروکنٹرولر ڈیوائس کی شناخت کرتا ہے ('m32 atmega32 کی نشاندہی کرتا ہے)۔

اگر آپ نے کوئی مختلف MCU استعمال کیا ہے تو ، آپ کو عمل درآمد کیلئے متعلقہ سابقے شامل کرنے کی ضرورت ہوگی۔

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

اگر آپ واقعی پروگرامنگ کی تفصیلات کے بارے میں سنجیدگی سے سوچ رہے ہیں تو ، اس کے ل we ہمیں پہلے بیرونی ینالاگ ایل ای ڈی سرکٹ تیار کرنے کی ضرورت ہوگی جس پر اس پروگرام کو لاگو کیا جاسکتا ہے ، کیونکہ جب تک کہ ایم سی یو کی طرف سے جواب تسلیم کرنے کا کوئی نظام موجود نہ ہو ، پروگرامنگ اور مائکروکانٹرولر کا چلنا بے معنی ہوگا۔

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

مزاحم کار کی قیمت کا اندازہ مندرجہ ذیل آسان فارمولے کے ذریعے کیا جاسکتا ہے۔

آر = (یو بی - ایل ای ڈی ڈبلیو ڈی) / میں

جہاں یو بی سپلائی وولٹیج ہے ، ایل ای ڈی ایف ڈبلیو ڈی استعمال شدہ ایل ای ڈی کا زیادہ سے زیادہ آپریٹنگ وولٹیج ہے ، اور میں اس کا زیادہ سے زیادہ AMP ہے۔

فرض کریں کہ ہم ایک ایل ای ڈی ایل ای ڈی کا استعمال کرتے ہیں جس میں ایل ای ڈی فارورڈ وولٹیج = 2.5V اور موجودہ I = 20mA ہے ، مندرجہ بالا مساوات کو حل کیا جاسکتا ہے۔

چونکہ ایم سی یو کی وولٹیج 5V ہوگی ، لہذا اس کا اظہار اس طرح کیا جاسکتا ہے:

R = (5 - 2.5) /. 02 = 125 اوہم ، att واٹ ، قریب ترین قیمت جو 120 اوہم ہے وہ کرے گی۔

اب ہمارے پاس ایل ای ڈی ، ایک 120 اوہم ریزسٹر اور ایک وربوارڈ ہے ، جس میں مائکروکانٹرولر کے ذریعہ آریگرام میں دیئے گئے مندرجہ بالا اجزاء کو صرف باہم جوڑیں۔

ایک بار یہ کام ہو جانے کے بعد ، مندرجہ بالا ایل ای ڈی سیٹ اپ پر مطلوبہ ردعمل کے لئے ایم سی یو پروگرام کیا جاسکتا ہے۔

اگلا ، ایم سی یو کا پروگرامنگ۔

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

پروگرامنگ ماحولیات کو کیسے انسٹال کریں اور WinAVR کی چھان بین کریں

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

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

آخر کار اس کی مدد WinAVR کرے گی اور متعلقہ ایم سی یو چپ میں منتقل کردی جائے گی۔

ون اے وی آر بہت سارے دوسرے کاموں کو انجام دینے کے ل equipped بھی تیار کیا جاسکتا ہے جیسے پروگراموں کی خرابیوں کا ازالہ کرنا اور ممکنہ نحو کے بارے میں ہمیں متنبہ کرنا اور غلطیوں اور غلطیوں کو مرتب کرنا۔ ہم ان پر میں اپنے بعد کے سبقوں پر بات کریں گے۔

آپ WinAVR کا انسٹالیشن کورس انتہائی تیز اور تیز کرنے کے لئے چاہتے ہیں۔ آئیے درج ذیل نکات کے ساتھ تفصیلات میں ڈوبکی ہیں:

آپ کو WinAVR سورس فورج فائلوں کے فولڈر سے تازہ ترین ورژن ڈاؤن لوڈ کرنے کی ضرورت ہوگی۔ آپ کو اس کی سرکاری ویب سائٹ سے اس ڈاؤن لوڈ سے متعلق کچھ مفید معلومات ملیں گی۔

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

فائل ڈاؤن لوڈ کریں اور اس پر کلک کرکے عملدرآمد کا آغاز کریں۔ تنصیب شروع ہونے دیں۔

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

اب تک آپ کو ہر چیز بالکل معمولی اور آسانی سے مل جائے گی اور کچھ آپشن ملیں گے جس کا آغاز مینو آپ پر کیا جائے گا۔ کوئی پریشانی نہیں ، ان میں سے کچھ اصل میں صرف 'پروگرامر نوٹ پیڈ' نامی ٹیم کا استعمال کریں گے۔

ایک بار اس آئیکون پر کلک کرنے کے بعد ، یوزر انٹرفیس کا آغاز کرے گا تاکہ آپ پروگراموں (جیسے تخلیق اور ترمیم) کی تحریر کا اطلاق کرسکیں۔ آپ اس پروگرام کا مشاہدہ کریں گے جس میں آپ کو کوڈس کو مرتب کرنے اور مائکروکانٹرولر میں سرایت کرنے کے لئے مینو کمانڈوں پر مشتمل ہے۔

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

اگلے سبق میں مندرجہ بالا پروگرامر کی جانچ کا احاطہ کرے گا تاکہ ہم ونڈوز کے ساتھ اس کی مطابقت کے بارے میں اس بات کا یقین کر سکیں اور کہ آیا یہ آپ کے مائکروکانٹرولر آئی سی سے بالکل 'مصافحہ کرتا ہے'۔

ایل ای ڈی کو تبدیل کرنے کے لئے ایک ایم سی یو پروگرام کیسے کریں

ایک بار جب اس کی تصدیق ہوجائے تو ہم ایک چھوٹا سا 'کچھ نہ کریں' کوڈ بنانے پر آگے بڑھیں گے ، صرف اس بات کا یقین کرنے کے لئے کہ کوڈ ٹرانسفر کے طریقہ کار میں غلطیوں کا سامنا نہ کرنا پڑے۔

یقینا ہم اب ایم سی یو کے اندر اپنا پہلا پروگرام نافذ کرنے کے لئے تیار ہیں ، لیکن اس سے قبل اس کا خلاصہ کرنا دلچسپ ہوگا کہ ہم نے اپنے گذشتہ سبق کے دوران کیا کیا:

ہم نے اپنی مطلوبہ تفصیلات کے مطابق اے وی آر ایٹمیل مائکروکانٹرولر خریدا یہاں ہم نے مثال کے لئے اے ٹی ایم اے 32 کا استعمال کیا ہے۔ اگلے ، ہم نے مائکروکنٹرولر بنیادی باتیں اور پروگرامر یونٹ کے بارے میں سیکھا جو ایک پروگرام کو ایم سی یو چپ میں منتقل کرنے کے لئے ذمہ دار ہے۔

اس کے علاوہ ، ہم نے ایس پی انٹرفیس کنیکٹر تعمیر کیا جو ضروری ہے تاکہ آپ کے کمپیوٹر کو پروگرامنگ کی کارروائیوں کے لئے مائکرو قابو پانے والے کے ساتھ منسلک کیا جاسکے۔

اس کے بعد ہم نے تصدیق کی کہ آیا ڈرائیورز کمپیوٹر میں 32 بٹ کے ساتھ ساتھ 64 بٹ آپریٹنگ سسٹم کے ساتھ نصب تھے۔

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

آخر کار پچھلے باب میں ہم نے ایل ای ڈی / ریزٹر سرکٹ کی تعمیر مکمل کی اور اسے متعلقہ ایم سی یو آؤٹ پٹس سے مربوط کردیا۔

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

اس کے ساتھ ہی ، ہم مائکرو قابو پانے والے کو تین قسموں میں تقسیم کرنا چاہتے ہیں جس سے ہماری تفہیم بہت آسان ہوجائے گی۔

کنٹرول ، کھوج اور مواصلات

یہ جاننا دلچسپ ہوگا کہ مذکورہ بالا افعال کو مختلف طریقوں سے پروگرام کیا جاسکتا ہے۔

ہمارے پہلے پروگرام میں ہم مائکروکنٹرولر کو کسی بیرونی پیرامیٹر کو 'کنٹرول' کرنے کا حکم دینے کی کوشش کریں گے ، ہاں آپ ٹھیک کہتے ہیں کہ یہ ایل ای ڈی ہوگا جو ہم نے حال ہی میں بنایا تھا۔

عین مطابق ہونے کے لئے ، ہم ایم سی یو سے کہیں گے کہ وہ منسلک ایل ای ڈی کو آن کریں ، ہاں ، میں جانتا ہوں کہ یہ کافی قدیم لگتا ہے ، لیکن شروعات کا مرحلہ ہمیشہ آسان ہونا ضروری ہے۔

موجودہ ملازمت کے ساتھ آگے بڑھنا ، ایم سی یو کو ایل ای ڈی کنٹرول کرنا حقیقت میں بہت آسان ہے۔

اس کے لئے ہم پورٹ بی پر پن # 0 کی ہدایت دیتے ہیں کہ ایل ای ڈی کے لئے مطلوبہ 5V تیار کریں۔

پچھلے سبق سے یاد کریں ، ہم نے ایل ای ڈی کے انوڈ کو ایم سی یو کے مذکورہ بالے سے جوڑ دیا۔

ایم سی یو کے اس پن پر دو ضروری چیزوں کی ضرورت ہے: 1) آؤٹ پٹ اور 2) 5 وولٹ

ہم ایک ایسا طریقہ سیکھیں گے جس کے ذریعے ہم خاص پن کو ایم سی یو کا نتیجہ بننے کی ہدایت کرتے ہیں۔

ایک بار جب یہ چپ کا نتیجہ بن جاتا ہے تو ، ہم اسے اطلاق کے مطلوبہ مطابق 'اعلی' (5V) یا 'کم' (0V) ہونے کی ہدایت کر سکتے ہیں۔

چونکہ کوئی منطق سرکٹ جیسے MCU پنوں میں کوئی آؤٹ پٹ یا ایک ان پٹ ہوسکتا ہے اور اسے منطق زیادہ یا منطق کم پیدا کرنے کے ل config ترتیب دیا جاسکتا ہے ، لہذا پنوں کو صرف ایک منطقی اونچائی یا منطقی کم ہونے کی ضرورت ہے۔ ، مائکروکینٹرولرز کے لئے یا اس معاملے میں کسی ڈیجیٹل آئی سی کے لئے ان دو ریاستوں کے علاوہ کوئی انٹرمیڈیٹ یا غیر وضاحتی ریاستیں نہیں ہیں۔ نیز ایم سی یو کے ہر ایک پن پر بھی یہی بات لاگو ہوتی ہے۔

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

اگرچہ مذکورہ بالا تفویضات بہت سارے مختلف طریقوں سے کیے جاسکتے ہیں ، لیکن ہم ان میں سے ایک پر سادگی کی خاطر بحث کر رہے ہوں گے۔ تاہم ، یہ واضح رہے کہ اگرچہ ایک جو ابھی پیش کیا گیا ہے وہ آسان اور دلچسپ معلوم ہوتا ہے ، لیکن یہ اتنا قابل عمل نہیں ہے اور تمام ایم سی یو درخواستوں کے لئے تجویز کردہ قسم نہیں ہے ، اسی وجہ سے آپ کو بعد میں کورس میں زیادہ مقبول پروگرامنگ طریقوں سے متعارف کرایا جائے گا۔ . یہ پروگرام صرف مطلوبہ پنوں کو کسی دوسرے سے منسلک کو متاثر کیے بغیر چشمی کے مطابق تفویض کرنے کی اجازت دیں گے جو ممکنہ طور پر پہلے ہی کچھ دوسرے کام انجام دینے کے لئے تفویض کی جاسکتی ہے۔

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

پن کو آؤٹ پٹ کے بطور تفویض کرنے کے ل we ہمیں ڈیٹا ڈائریکشن رجسٹر (DDR) کو ملازمت کرنے کی ضرورت ہے۔ اگر آپ سوچ رہے ہیں کہ یہاں رجسٹر کا کیا مطلب ہے تو ، یہ صرف MCU میں ایک ایسی جگہ ہے جو مائکرو قابو پانے والے کو کچھ مخصوص انداز میں جواب دینے کے قابل بناتا ہے۔

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

تاہم ، آپ اس لفظ کے بارے میں الجھن میں پڑ سکتے ہیں ، اس کا کیا مطلب ہے؟ ایک اعداد و شمار نے پنوں میں ایک تیسری جہت کا اضافہ کیا ہے جو منطقی صفر (0V) یا منطق اعلی (5V) پر مستقل طور پر تفویض کیا جاسکتا ہے ، لیکن ان اشاروں کا کیا ہوگا جو تیزی سے مختلف ہوسکتے ہیں جیسے دالوں کی تعدد۔ ایک تعدد اعلی اور کم لاجکس (5V اور 0V) کے ساتھ ہو گا جس میں کچھ مخصوص وقفوں یا ادوار کی مدد سے کام کرنا ہوتا ہے ، لہذا یہ وقت پر مبنی ہوتا ہے اور وقت کے سلسلے میں ایڈجسٹ ہوسکتا ہے ، اسی وجہ سے ہم 'ڈیٹا' کی حیثیت سے شناخت کرتے ہیں جس کا مطلب ہے ایک پیرامیٹر کسی دوسرے فنکشن (منطق کی حالت اور وقت) سے متعلق ایک فنکشن۔

پن کو آؤٹ پٹ کے بطور تفویض کرنے کا ایک طریقہ یہ ہے کہ درج ذیل کوڈ لکھ کر:

DDRB = 0b00000001

مذکورہ پروگرام میں ، ڈی ڈی آر بی نے PORT B ​​0b کے لئے ڈیٹا ڈائریکشن رجسٹر کی نشاندہی کی ہے۔ کسی نمبر کے مندرجہ ذیل بائنری تاثرات کے بارے میں مرتب کو ہدایت دیتا ہے جبکہ اظہار کے آخر میں '1' پن کی پوزیشن کی نشاندہی کرتا ہے ، یہی وہ جگہ ہے جو فارم میں ہے۔ پورٹ بی کے پہلے پن کا

اگر آپ کو یاد ہے کہ ہم نے سیکھا ہے کہ پورٹ بی 8 پنوں کو اس کے ساتھ منسلک کرتی ہے (0 سے پن 7 تک) ، اور اگر آپ دیکھیں کہ مذکورہ کوڈ میں بھی اس میں 8 ہندسے ہیں ، یعنی ہر عدد PORT B ​​کے ان 8 پنوں کی علامت ہے۔

اب اگلا طریقہ کار اس پن (5 پن) پر 5V تفویض کرنا ہوگا۔ ایک بار پھر آپریشن کے اصول DDR کی طرح ہیں جیسا کہ مندرجہ ذیل بائنری کوڈ کے ذریعہ اظہار کیا گیا ہے:

پورٹ بی = 0b00000001

جیسا کہ دیکھا جاسکتا ہے ، مذکورہ کوڈ اور اس سے پہلے والے کوڈ میں صرف اتنا ہی فرق ہے کہ اس کوڈ میں ہم نے PORT رجسٹر کا استعمال کیا ہے۔ یہ رجسٹر خاص طور پر اس مخصوص بندرگاہ کی پن اسائنمنٹ کو سنبھالتا ہے جس کے لئے اسے M MU میں رکھا گیا ہے۔ اس طرح یہ ہمیں ان پن آؤٹ کے ل data حقیقی ڈیٹا لاجکس (0 یا 1) تفویض کرنے کے قابل بناتا ہے۔

اب ہم اپنے پروگرام کی اندازا details تفصیلات کے بارے میں کچھ گفتگو کرنے میں دلچسپی لیتے ہو۔ جیسا کہ ہم جانتے ہیں کہ تمام پروگراموں پر عمل درآمد شروع کرنے کے لئے ایک خاص جگہ کی ضرورت ہوتی ہے ، اس کا موازنہ کسی شیف سے کیا جاسکتا ہے جو کسی خاص نسخے سے متعلق تمام اجزاء کو جانتا ہے لیکن اسے ہدایت نہیں دی جاتی ہے کہ کہاں سے شروع کیا جائے۔

یہاں 'مین' فنکشن وہ جگہ ہے جہاں ہر C / C ++ پروگرام عملدرآمد شروع کرتا ہے۔ لہذا اہم کو اس طرح بنایا جاسکتا ہے:

انٹ مین مین (باطل)
{
}

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

# شامل کریں
انٹ مین مین (باطل)
{
}

جیسے ہی تالیف کا آغاز ہوتا ہے ، مرتب کنندہ کا پری پروسیسر سیکشن اے او آر ڈائرکٹری پر مرکوز کرتا ہے تاکہ 'io.h' فائل کی نشاندہی کی جاسکے۔ یہاں توسیع '.h' اس کی نشاندہی کرتی ہے کہ یہ ایک ہیڈر فائل ہے ، اور یہ کہ فائل کے اندر موجود یہ کوڈ ماخذ فائل کے آغاز (ہیڈ) میں پیش کیا جائے گا جو بنائی جارہی ہے ، لہذا اس کا نام 'ہیڈر' رکھا گیا۔

یہاں ہم اپنے کوڈ میں DDR اور PORT کے بیانات متعارف کراسکتے ہیں ، کیونکہ io.h ہیڈر فائل کے اضافے سے ان کے متعلق مرتب کی ہدایت ہوگی۔

# شامل کریں

انٹ مین مین (باطل)

{

DDRB = 0b00000001 // اعداد و شمار کی سمت اندراج آؤٹ پٹ پر بطور pin0 اور بقیہ پنوں کو ان پٹ کے بطور درج کریں

PORTB = 0b00000001 // پن 0 سے 5 وولٹ سیٹ کریں

}

مندرجہ بالا پن کی سمت کو آؤٹ پٹ کے طور پر ٹھیک کرتا ہے ، جس میں 5V کی شدت ہوتی ہے۔ تاہم ، ابھی بھی ایک مسئلہ باقی ہے جو اس پن کے لئے طے نہیں کیا گیا ہے ، یہ ہے کہ ابھی تک جب تک ایم سی یو کی طاقت ہے اس وقت تک غیر معینہ مدت تک اسے بند کر دیا جائے۔ یہ لامحدود آراء لوپ یقینی بنائے گا کہ ایم سی یو کا یہ پن بند نہیں ہوتا ہے ، بلکہ غیر معینہ مدت تک 5V آؤٹ پٹ کے ساتھ جاری رہتا ہے۔

اگرچہ پن کے ل a لوپ انسٹرکشن کو لاگو کرنے کے بہت سارے مختلف طریقے موجود ہیں ، ہم یہاں 'جبکہ' لوپ پر ملازمت کرنے کی کوشش کریں گے۔ جیسا کہ نام سے پتہ چلتا ہے ، 'جبکہ' لوپ مائکرو قابو پانے والے کو بتاتا ہے کہ 'جبکہ' پاور دستیاب ہے آپ کو تفویض کردہ پن آؤٹ کے لئے تفویض کردہ 5V کے ساتھ متحرک رہنے کی ضرورت ہے۔

# شامل کریں

انٹ مین مین (باطل)

{

DDRB = 0b00000001 // اعداد و شمار کی سمت رجسٹر کریں pin0 کو آؤٹ پٹ پر ترتیب دیں اور بقیہ پنوں کو بطور ان پٹ

PORTB = 0b00000001 // پن 0 سے 5 وولٹ سیٹ کریں

جبکہ (1)

{

// کوڈ یہاں موجود ہوگا اگر اسے زیادہ سے زیادہ اور زیادہ سے زیادہ عملدرآمد کرنے کی ضرورت ہوگی ... بغیر کسی حد تک

}

}

آپ یہ نوٹ کرنا چاہیں گے کہ ، یہاں ہم نے '1' کو 'جبکہ' لوپ کے لئے ایک دلیل کی صورت میں استعمال کیا ہے ، کیونکہ '0' کے سوا ہر چیز کو منطقی 'سچ' سمجھا جاسکتا ہے۔

اس کا مطلب یہ ہے کہ ، جب 'لوپ' پر غور کرنا محض منطقی 'سچ' کے علاوہ کسی بھی چیز کے لئے ذمہ دار نہیں ہوگا ، جس کا مطلب یہ ہے کہ مخصوص پن غیر مخصوص مدت کے لئے مخصوص حالت سے منسلک ہوگا۔

جب تک ایم سی یو کو اپنے وی ڈی ڈی اور وی ایس ایس کے مابین اقتدار موصول ہوتا ہے تب تک ایل ای ڈی کو مستقل طور پر تفویض کردہ پن کے برابر ہی رہنا ہو گا۔

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

اگلے سبق کے ذریعہ ہم یہ سیکھیں گے کہ مذکورہ بالا ایل ای ڈی میں 'وقت' طول و عرض کس طرح شامل کرنا ہے ، اس طرح اس کو کچھ مخصوص شرح پر پلک جھپکانے کے طریقے بنائیں گے۔

دراصل ، مندرجہ بالا عمل میں ، ایل ای ڈی اصل میں پلک جھپک رہی ہے لیکن لوپ کی شرح اتنی تیز ہے کہ یہ تقریبا یلئڈی روشنی پر مستقل سوئچ کی طرح ہے۔

ہم دیکھیں گے کہ اس لوپ کو تاخیر کے ساتھ کس طرح شامل کیا جاسکتا ہے تاکہ اس تاخیر کی شرح پر ایل ای ڈی پلک جھپکاؤ بن سکے۔

اے وی آر مائکروکانٹرولر کا استعمال کرتے ہوئے ایل ای ڈی پلکنے کا طریقہ

آخری مباحثے میں ، ہم نے یہ سیکھا کہ مائکروقانونی کے ذریعہ ایل ای ڈی سوئچ کو کیسے بنایا جائے ، یہ ٹھیک تھا؟ اتنا نہیں ہو سکتا!

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

آئیے اس پر ایک نظر ڈالیں:

# شامل کریں

# شامل کریں

انٹ مین مین (باطل)

{

ڈی ڈی آر بی | = 1<< PINB0

جبکہ (1)

{

پورٹ بی ^ = 1<< PINB0

_ڈیلا_س (100)

}

}

اگر آپ مذکورہ بالا تاثرات میں استعمال ہونے والی ان عجیب علامتوں (اور ، ^ ، | وغیرہ) سے گھبرا رہے ہیں تو (اور وہاں موجود نہیں ہے لیکن اسی طرح کے دیگر کوڈوں میں بھی استعمال کیا جاسکتا ہے) ، یہاں آپ کو ان متعلقہ معلومات کے بارے میں جاننے کے لئے دلچسپی ہوگی۔ :

اس میں بہت سارے معیاری منطقی الگورتھم شامل ہیں جیسے کہ ، اور ، نہ ، اور XOR جو عام طور پر مذکورہ کوڈ کے ساتھ استعمال ہوتے ہیں۔

یہ منطقی فعالیت خاص طور پر ان کے تفویض کردہ سچائی جدولوں کے مطابق دو بٹس '1' اور '0' کا موازنہ کرتی ہے۔

ہمیں مندرجہ ذیل سا انتظامات کا تجزیہ کرکے ایک خیال ملے گا:

01001011 اور
10001101
برابر
00001001

مذکورہ بالا کوڈ میں & حوالہ دیتے ہیں جیسا کہ سی پروگرامنگ میں استعمال ہوتا ہے۔

قطاروں کو عمودی طور پر پڑھنا ، اس سے پتہ چلتا ہے کہ 0 اور 1 کے برابر 0 ، 1 اور 0 بھی 0 ، 1 اور 0 کے برابر 0 ، 1 اور 1 کے برابر ہے۔ 1 اس کو پڑھنا اتنا ہی آسان ہے جتنا کہ اتنا ہی آسان ہے۔ یہ ایک اینڈ آپریٹر کے ٹائچ ٹیبل کے مطابق ہیں۔

اگر ہم مندرجہ ذیل جدول کا جائزہ لیں تو ، یہ علامت '|' کی طرف اشارہ کرتا ہے 'یا' فعالیت ، '|' کے استعمال کی نشاندہی کرنا آپ کے کمپیوٹر کی بورڈ میں 'بیک اسپیس' کے بائیں طرف سے پایا جاسکتا ہے:

01001011 |
10001101
برابر
11001111

ایک او آر منطقی فعالیت کی یکساں طور پر یہ حقیقت ٹیبل اشارہ کرتی ہے کہ بٹس 0 یا 1 کے برابر 1 ، 1 یا 0 بھی 1 کے برابر ، 0 یا 0 0 کے مساوی ہیں ، جبکہ 1 یا 1 کے برابر 1 ہے۔

مندرجہ ذیل تھوڑا سا مرکب XOR منطق آپریٹر کے لئے ہے جس کی وضاحت oted کے ذریعہ کی گئی ہے اور اس کا مطالعہ اسی طرح کیا جاسکتا ہے جیسے ہم نے ، اور ، یا سچ جدولوں کے ساتھ کیا تھا:

01001011 ^
10001101
برابر
11000110

آئیے پہلے پروگرام کے ساتھ جاری رکھیں اور سیکھیں کہ اس میں درج ذیل لائن کیا معنی دیتی ہے:

# شامل کریں

ہمارے پچھلے سبق کے ذریعہ ہم جانتے ہیں کہ اظہار کا کام کس طرح ہوتا ہے ، لہذا ہم اس کا اعادہ نہیں کریں گے البتہ ایسا لگتا ہے کہ ان میں ایک # شامل 'جس کا انکشاف کیا جانا ضروری ہے۔

اس میں 'شامل کریں' میں تاخیر h ہمیں عمل آوری کے کچھ آسان طریقوں کی سہولت فراہم کرتی ہے۔

جیسا کہ نام سے پتہ چلتا ہے کہ تاخیر۔ ہمیں خاص پروگرام میں تاخیر دلانے کے قابل بناتی ہے۔

اگلے ایکسپریس انٹ مین (باطل) کو جاری بحث سے خارج کیا جاسکتا ہے کیوں کہ ہم پہلے ہی اپنی پوسٹوں میں اس کا احاطہ کر چکے ہیں۔

اگلا بدلا DDRB آتا ہے۔

مندرجہ ذیل میں پچھلی شکل دکھائی گئی ہے جو پن کو تفویض کرنے کا بہتر طریقہ نہیں ہے کیونکہ 0 سے 7 تک کے تمام پنوں کو ان پٹ تشکیل دینے کے لئے تبدیل کیا گیا تھا۔ لیکن ذرا ذرا سوچئے کہ اگر ہم کسی لمبا لمحہ پروگرام بنانا چاہیں تو ان پنوں کو کسی اور کام کی ضرورت ہو۔ مثال کے طور پر کسی آلات کے ریموٹ سوئچنگ کو لاگو کرنے کے لئے پن 2 کی ضرورت ہوسکتی ہے۔ اس صورت میں ہم آزمائشی اور غلطی سے ہی ان پٹ کی طرح تفویض کرنے کی تعریف نہیں کریں گے۔ اس کا مطلب ہو سکتا ہے کہ ریموٹ ٹرانسمیٹر سے آلات وصول کنندہ کو غلط جواب دیا جائے۔

DDRB = 0b00000001

ہم صرف ایک تھوڑا سا ، ہیٹ پن0 بٹ پر اثر انداز کرنا چاہتے ہیں ، اس پر نظر ڈالتے ہوئے 'یا' فعالیت کو بائنری ماسکنگ کے ذریعہ عمل میں لایا جاسکتا ہے۔

DDRB = DDRB | 0b00000001

یہاں اس نے 'OR' ماسک: 0b00000001 پر پردہ ڈالا ہے ، اگرچہ یہ بالکل مستند بائنری نمبر معلوم ہوتا ہے ، مثال کے طور پر پہلے DDRB: 0b01001010 ، پھر ماسکنگ کے ذریعے اس پر OR کا اطلاق دے سکتا ہے: 0b01001010 | 0b00000001 = 0b01001011۔

جس کا نتیجہ دیکھا جاسکتا ہے اس کا نتیجہ صرف اس پن کے ساتھ ہے ، جس کے بٹس بدل گئے ہیں!

مذکورہ بالا بیان کو C ++ کے ذریعے مزید دبانے سے یہ ملتا ہے:

ڈی ڈی آر بی | = 0b00000001

تاہم ہمیں معلوم ہوا ہے کہ دیئے گئے پروگرام میں اور بھی بہت کچھ ہے۔ اگرچہ یہ کافی حد تک جائز اور واضح معلوم ہوسکتا ہے ہمیں io.h ہیڈر فائل سے کچھ بیانات سے فائدہ اٹھانا چاہئے خاص طور پر جب یہ ہماری سہولت کے لئے بنیادی طور پر تشکیل دیا گیا ہو۔

لہذا اگر 'DDRB | = 1<< PINBO, why it’s like that?

1<< PINBO is implemented for applying the masking effect. The “1” indicates what may be introduced inside the mask, while the < < is simply the left shift functionality. It executes exactly as it’s named, and PINBO is the number of locations that the “1” would sequence across the left hand side. To be precise PINBO may be equivalent of a 0.

لہذا ہم 0b00000000 کے ساتھ شروع کرتے ہیں ، اور 0b0000001 تیار کرنے کے لئے ایک '1' لگاتے ہیں اور پھر ہم اسے بائیں 0 پوزیشنوں میں منتقل کرتے ہیں ، جو اوپر کی طرح بالکل ایک جیسی 0b00000001 دیتا ہے۔

اب ، اگر فرض کریں کہ یہ PINB4 ہے تو ، بیان 1 کے طور پر ظاہر کیا جاسکتا ہے<< PINB4. I this case the “1” would be pushed to the left 4 locations producing: 0b00010000.

خبردار ہم ایک صفر انڈیکس پر کام کر رہے ہیں مطلب یہ ہے کہ '1' کے بعد چار زیرو ہیں۔

اب 'جبکہ' لوپ پر آگے بڑھتے ہوئے ہمیں اس سے پہلے 'لامحدود لوپ' پر نوٹس ملا تھا۔ لیکن شاید اب ہم یہ چاہتے ہیں کہ مائکروکینٹرلر مطلوبہ سزائے موت پر عملدرآمد کرے۔ ممکن ہے کہ دیئے گئے لوپ کے اندر ہی یہ ممکن ہوسکے۔ یہ وہ لوپ ہے جہاں مخصوص ترتیب کو بار بار دہرایا جاتا ہے۔

اگر پھانسی سے پہلے اس پر عمل درآمد کرایا جاتا تو ، اس پر عمل درآمد صرف ایک بار ہوتا۔

تاہم ، غیر یقینی طور پر ایل ای ڈی پلک جھپکیاں بنانے کے ل it ، لوپ میں باری باری PINB0 کو آن / آف سوئچ کرنے کی ضرورت ہوگی۔ یہاں ہمیں تاخیر کا تعارف بھی ملتا ہے ، جس کے بغیر ایل ای ڈی کو ٹمٹمانا ناممکن ہوگا۔ لیکن یہ ایل ای ڈی کو تیز رفتار شرح پر پلک جھپکنے پر مجبور کردے گا کہ ننگی آنکھوں سے پہچاننا مشکل ہے ، ہماری آنکھوں سے پہچاننے کے ل it اسے تھوڑا سا آہستہ کرنے کی ضرورت ہوگی۔

ہم بائنری نمبر میں کسی خاص بٹ کی ترتیب کے طریقہ کار سے آگاہ ہیں ، لیکن اس بات کا یقین نہیں ہے کہ اگر ابھی تک یہ ایک '1' ہے تو مخصوص بٹ '0' کو استعمال کرنے کا طریقہ کار ہے۔

مندرجہ ذیل پروگرام کو ایسا کرتے دیکھا جاسکتا ہے لیکن ہمیں یہ بھی معلوم ہوگا کہ یہ پروگرام میں نظر نہیں آتا ہے۔

ابتدائی دو بیانات تھوڑا سا '1' (5V ، ایل ای ڈی لائٹس) میں تبدیل کردیتے ہیں ، پھر 100 ایم ایس کے لئے ایک وقفہ متعارف کرایا جاتا ہے۔

اگلے دو لائنوں میں PINB0 بٹ کو '0' (صفر وولٹیج ، ایل ای ڈی بند) میں بدل جاتا ہے ، لیکن افسوس اور موازنہ بٹ سے '0' پر عمل نہیں کر پائے گا ، لیکن اگر ہم '~' استعمال نہیں کرتے ہیں تو بائنری ماسک کے لئے یہ تمام 0s کو 1s میں تبدیل کرسکتا ہے اور اس کے برعکس۔

اس سے ہم صرف PINB0 بٹ پر اثر انداز ہوسکیں گے اور اسے '0' پر پلٹیں گے۔ قوسین کو ماسکنگ کی پھانسی پر قابو پانے کے لئے شامل کیا گیا تھا تاکہ پورے ماسک کے لئے نہیں آپریشن کا اطلاق کیا جاسکے اور نہ ہی بائیں شفٹ سے پہلے '1' سے زیادہ '<<”.

پورٹ بی | = 1<< PINB0
_ڈیلا_س (100)
پورٹ بی اور = ~ (1<< PINB0)
_ڈیلا_س (100)

آن آف تاخیر یا مساوی مدت کی تشکیل کے ل we ، ہم پچھلی چار لائنوں کو دو سے کم کر سکتے ہیں اور اپنے فائدہ میں XOR فعالیت کو لاگو کرسکتے ہیں۔ اس کو XOR پر عمل درآمد کرنا لازمی ہے اگر اس کے 0 اور اس کے برعکس ہونے کی صورت میں 1 کو تفویض کردہ پن کو تفویض کیا جائے۔ یہ عملدرآمد صرف PINB0 پر اثر انداز ہوگا۔ جیسا کہ اوقات کمانڈ کا اطلاق ہوتا ہے ، اس سے تھوڑا سا موجودہ منطق کے مخالف ہوجاتا ہے۔

پورٹ بی ^ = 1<< PINB0
_ڈیلا_س (100)

کیا! آپ کے ایل ای ڈی اب مقررہ شرح کے مطابق پلک جھپکتے ہوں گے… .اچھا ، ایسا نہیں تھا؟




پچھلا: ایک سے زیادہ ایپلائینسز ریموٹ کنٹرول سرکٹ اگلا: اے سی فیز ، غیر جانبدار ، ارتھ فالٹ اشارے سرکٹ