- ADC0804 اور راسبیری پائ:
- LM35 درجہ حرارت سینسر:
- مطلوبہ اجزاء:
- سرکٹ اور ورکنگ وضاحت:
- پروگرامنگ کی وضاحت:
ہم نے اپنی رسبری پِی ٹیوٹوریل سیریز میں راسبیری پِی کے ساتھ انٹرفیسنگ کے تمام بنیادی اجزاء کو زیادہ تر احاطہ کیا ہے۔ ہم نے سب ٹیوٹوریلز کو آسان اور تفصیلی انداز میں کور کیا ہے ، تاکہ کوئی بھی ، چاہے اس نے راسبیری پائی کے ساتھ کام کیا ہے یا نہیں ، اس سیریز سے آسانی سے سیکھ سکتا ہے۔ اور تمام سبق حاصل کرنے کے بعد آپ راسبیری پائی کا استعمال کرتے ہوئے کچھ اعلی سطح کے منصوبے تیار کرسکیں گے۔
تو یہاں ہم پچھلے سبق کی بنیاد پر پہلی درخواست ڈیزائن کررہے ہیں۔ پہلی بنیادی ایپلی کیشن رسپبی پائی کے ذریعہ پڑھنے والے کمرے کا درجہ حرارت ہے ۔ اور آپ کمپیوٹر پر ریڈنگز کی نگرانی کرسکتے ہیں۔
جیسا کہ گذشتہ سبق میں گفتگو کی گئی ہے ، راسبیری پائ میں داخلی طور پر کوئی ADC چینل فراہم نہیں کیے گئے ہیں۔ لہذا اگر ہم کسی بھی مطابق سینسر کو انٹرفیس کرنا چاہتے ہیں تو ہمیں اے ڈی سی کنورژن یونٹ کی ضرورت ہے۔ اور ہمارے ایک سبق میں ہم نے مطابق قیمت کو پڑھنے کے لئے راسبیری پائی پر انٹرفیسڈ ADC0804 چپ رکھی ہے۔ لہذا اس کمرے کا درجہ حرارت تھرمامیٹر بنانے سے پہلے اس سے گزریں ۔
ADC0804 اور راسبیری پائ:
ADC0804 ایک چپ ہے جس کو ینالاگ سگنل کو 8 بٹ ڈیجیٹل ڈیٹا میں تبدیل کرنے کے لئے ڈیزائن کیا گیا ہے۔ یہ چپ ADC کی مقبول سیریز میں سے ایک ہے۔ یہ ایک 8 بٹ تبادلوں کا یونٹ ہے ، لہذا ہمارے پاس اقدار یا 0 سے 255 اقدار ہیں۔ اس چپ کی ریزرویشن ہماری ریفرنس وولٹیج کی بنیاد پر تبدیل ہوتی ہے جو ہم منتخب کرتے ہیں ، ہم اس کے بارے میں مزید بات کریں گے۔ ذیل میں ADC0804 کا پن آؤٹ ہے:
اب یہاں ایک اور اہم چیز یہ ہے کہ ، ADC0804 5V پر چلتا ہے اور لہذا یہ 5V منطق سگنل میں پیداوار فراہم کرتا ہے۔ 8 پن آؤٹ پٹ (8 بٹ کی نمائندگی کرتے ہوئے) میں ، ہر پن منطق '1 کی نمائندگی کرنے کے لئے + 5V آؤٹ پٹ فراہم کرتا ہے۔ تو مسئلہ یہ ہے کہ PI کی منطق + 3.3v کی ہے ، لہذا آپ PI کے + 3.3V GPIO پن کو + 5V منطق نہیں دے سکتے ہیں۔ اگر آپ PI کے کسی GPIO پن کو + 5V دیتے ہیں تو ، بورڈ خراب ہوجاتا ہے۔
تو +5V سے نیچے منطق کی سطح تک ، ہم وولٹیج ڈیوائڈر سرکٹ کا استعمال کریں گے۔ ہم نے وولٹیج ڈیوائڈر سرکٹ پر مزید وضاحت کے لئے پہلے اس پر غور کیا ہے۔ ہم جو کریں گے وہ یہ ہے کہ ، + 5V منطق کو 2 * 2.5V منطق میں تقسیم کرنے کے لئے ہم دو ریزسٹر استعمال کرتے ہیں۔ لہذا تقسیم کے بعد ہم پی آئی کو + 2.5 وی منطق دیں گے۔ لہذا ، جب بھی ADC0804 کے ذریعہ منطق '1' پیش کی جاتی ہے تو ہم + 5V کی بجائے PI GPIO پن میں + 2.5V دیکھیں گے۔
LM35 درجہ حرارت سینسر:
اب کے لئے کمرہ کی ریڈنگ درجہ حرارت ، ہم ایک سینسر کی ضرورت ہے. یہاں ہم LM35 درجہ حرارت سینسر استعمال کرنے جارہے ہیں ۔ درجہ حرارت عام طور پر "سینٹی گریڈ" یا "فارن ہائیٹ" میں ماپا جاتا ہے۔ "LM35" سینسر سینٹی گریڈ میں ڈگری حاصل کرتا ہے۔
جیسا کہ اعداد و شمار میں دکھایا گیا ہے ، LM35 ایک تین پن ٹرانجسٹر ہے جیسے آلہ۔ پنوں کی تعداد گنی گئی ہے ،
PIN1 = Vcc - پاور (+ 5V سے منسلک)
PIN2 = سگنل یا آؤٹ پٹ (ADC چپ سے منسلک)
PIN3 = گراؤنڈ (زمین سے جڑا ہوا)
یہ سینسر درجہ حرارت کی بنیاد پر ، پیداوار میں متغیر وولٹیج فراہم کرتا ہے۔ درجہ حرارت میں ہر +1 سینٹی گریڈ اضافے کے لئے آؤٹ پٹ پن پر + 10mV زیادہ وولٹیج ہوگی۔ لہذا اگر درجہ حرارت 0◦ سنٹی گریڈ ہے تو سینسر کی پیداوار 0V ہو گی ، اگر درجہ حرارت 10◦ سنٹی گریڈ ہے تو سینسر کی پیداوار + 100mV ہوگی ، اگر درجہ حرارت 25◦ سینٹی گریڈ ہے تو سینسر کی پیداوار + 250mV ہوگی۔
مطلوبہ اجزاء:
یہاں ہم راسبیری جیسی OS کے ساتھ راسبیری پائی 2 ماڈل بی استعمال کر رہے ہیں ۔ ہارڈویئر اور سافٹ ویئر کی تمام بنیادی ضروریات پر پہلے تبادلہ خیال کیا گیا ہے ، آپ اسے راسبیری پائی تعارف میں تلاش کرسکتے ہیں ، اس کے علاوہ بھی ہماری ضرورت ہے:
- منسلک پن
- 1 کریسٹر (17 ٹکڑے ٹکڑے)
- 10K برتن
- 0.1µF کاپاکیٹر
- 100µF کاپاکیٹر
- 1000µF کاپاکیٹر
- ADC0804 IC
- LM35 درجہ حرارت سینسر
- روٹی بورڈ
سرکٹ اور ورکنگ وضاحت:
راسبیری کو ADC0804 اور LM35 سے مربوط کرنے کے لئے جو رابطے کیے گئے ہیں ، وہ نیچے سرکٹ ڈایاگرام میں دکھائے گئے ہیں۔
LM35 آؤٹ پٹ میں بہت زیادہ وولٹیج میں اتار چڑھاو ہوتا ہے۔ لہذا 100uF کاپاکیسیٹر آؤٹ پٹ کو ہموار کرنے کے لئے استعمال کیا جاتا ہے ، جیسا کہ اعداد و شمار میں دکھایا گیا ہے۔
اے ڈی سی میں ہمیشہ بہت شور ہوتا ہے ، یہ شور کارکردگی کو بہت متاثر کرسکتا ہے ، لہذا ہم شور فلٹریشن کے لئے 0.1uF کاپاکیٹر استعمال کرتے ہیں ۔ اس کے بغیر آؤٹ پٹ میں بہت اتار چڑھاؤ ہو گا۔
چپ آر سی (ریزٹر-کیپسیسیٹر) آسکیلیٹر گھڑی پر کام کرتا ہے۔ جیسا کہ سرکٹ آریگرام میں دکھایا گیا ہے ، سی 2 اور آر 20 ایک گھڑی بناتے ہیں ۔ یہاں یاد رکھنے والی اہم بات یہ ہے کہ اے ڈی سی کے تبادلوں کی اعلی شرح کے ل cap سندیجک سی 2 کو کم قیمت میں تبدیل کیا جاسکتا ہے۔ تاہم تیز رفتار کے ساتھ درستگی میں کمی ہوگی۔ لہذا اگر ایپلی کیشن کو اعلی درستگی کی ضرورت ہو تو ، زیادہ قیمت والے کیپسیسیٹر کا انتخاب کریں اور تیز رفتار کے لئے کم قیمت والے کیپسیٹر کا انتخاب کریں۔
جیسا کہ پہلے بتایا گیا ہے کہ ایل ایم 35 ہر سنٹی گریڈ کے لئے + 10 ایم وی فراہم کرتا ہے۔ زیادہ سے زیادہ درجہ حرارت جو ایل ایم 35 کے ذریعہ ناپا جاسکتا ہے وہ 150º سنٹی گریڈ ہے۔ لہذا ہمارے پاس LM35 آؤٹ پٹ ٹرمینل میں زیادہ سے زیادہ 1.5V ہوگا۔ لیکن ADC0804 کا پہلے سے طے شدہ حوالہ وولٹیج + 5V ہے۔ لہذا اگر ہم اس حوالہ قیمت کو استعمال کرتے ہیں تو آؤٹ پٹ کی ریزولیوشن کم ہوگی کیونکہ ہم ڈیجیٹل آؤٹ پٹ رینج کا زیادہ سے زیادہ (5 / 1.5) 34٪ استعمال کرتے ہیں۔
خوش قسمتی سے ADC0804 میں ایڈجسٹ وریف پن (PIN9) ہے جیسا کہ اسے اوپر پن ڈایاگرام دکھایا گیا ہے۔ لہذا ہم چپ کے Vref کو + 2V پر سیٹ کریں گے۔ Vref + 2V ترتیب دینے کے ل we ، ہمیں PIN9 پر + 1V (VREF / 2) کا وولٹیج فراہم کرنے کی ضرورت ہے۔ یہاں ہم PIN9 پر + 1V پر وولٹیج کو ایڈجسٹ کرنے کے لئے 10K برتن استعمال کررہے ہیں۔ درست ولٹیج حاصل کرنے کے ل vol ولٹ میٹر کا استعمال کریں۔
ہم اس سے قبل کمرے کے درجہ حرارت کو ارڈینو کے ساتھ اور اے وی آر مائکروکانٹرولر کے ساتھ پڑھنے کے ل L LM35 درجہ حرارت سینسر کا استعمال کرتے ہیں۔ ارڈینو کا استعمال کرتے ہوئے نمی اور درجہ حرارت کی پیمائش بھی چیک کریں
پروگرامنگ کی وضاحت:
ایک بار جب ہر چیز سرکٹ ڈایاگرام کے مطابق جڑ جاتی ہے ، ہم PYHTON میں پروگرام لکھنے کے لئے PI آن کر سکتے ہیں ۔
ہم کچھ کمانڈوں کے بارے میں بات کریں گے جو ہم پی ایچ ٹیون پروگرام میں استعمال کرنے جارہے ہیں ،
ہم لائبریری سے GPIO فائل درآمد کرنے جارہے ہیں ، ذیل میں فنکشن ہمیں PI کے GPIO پنوں کو پروگرام کرنے کے قابل بناتا ہے۔ ہم "جی پی آئی او" کا نام بھی "آئی او" رکھ رہے ہیں ، لہذا پروگرام میں جب بھی ہم جی پی آئی او پنوں کا حوالہ دینا چاہیں تو ہم 'IO' کا لفظ استعمال کریں گے۔
RPI.GPIO کو بطور IO درآمد کریں
کبھی کبھی ، جب GPIO پن ، جسے ہم استعمال کرنے کی کوشش کر رہے ہیں ، شاید کچھ دوسرے کام انجام دے رہے ہوں۔ اس صورت میں ، ہم پروگرام کو چلاتے وقت انتباہات وصول کریں گے۔ ذیل میں کمان PI کو انتباہات کو نظر انداز کرنے اور پروگرام کے ساتھ آگے بڑھنے کے لئے کہتی ہے۔
IO.setwarnings (غلط)
ہم PI کے GPIO پنوں کو بورڈ میں پن نمبر کے ذریعہ یا ان کے فنکشن نمبر کے ذریعہ حوالہ دے سکتے ہیں۔ جیسے بورڈ پر 'PIN 29' 'GPIO5' ہے۔ تو ہم یہاں بتاتے ہیں یا تو ہم یہاں '29' یا '5' کے ذریعہ پن کی نمائندگی کریں گے۔
IO.setmode (IO.BCM)
ہم 8 پنوں کو ان پٹ کے بطور ترتیب دے رہے ہیں۔ ہم ان پنوں کے ذریعہ 8 بٹ ADC ڈیٹا کا پتہ لگائیں گے۔
IO.setup (4 ، IO.IN) IO.setup (17 ، IO.IN) IO.setup (27 ، IO.IN) IO.setup (22 ، IO.IN) IO.setup (5 ، IO.IN) IO.setup (6 ، IO.IN) IO.setup (13 ، IO.IN) IO.setup (19 ، IO.IN)
اگر منحنی خطوط وحدانی میں حالت درست ہو تو ، لوپ کے اندر بیانات ایک بار عمل میں آئیں گے۔ لہذا اگر GPIO پن 19 بلند ہوجاتا ہے ، تو IF لوپ کے اندر بیانات ایک بار عمل میں لائے جائیں گے۔ اگر GPIO پن 19 زیادہ نہیں جاتا ہے ، تو IF لوپ کے اندر بیانات پر عملدرآمد نہیں ہوگا۔
اگر (IO.input (19) == سچ ہے):
کمانڈ کے نیچے ہمیشہ کے لئے لوپ استعمال ہوتا ہے ، اس کمانڈ کے ساتھ اس لوپ کے اندر موجود بیانات کو مسلسل عمل میں لایا جائے گا۔
جبکہ 1:
کوڈ کی مزید وضاحت نیچے کوڈ سیکشن میں دی گئی ہے۔
پروگرام لکھنے کے بعد اب اس پر عمل درآمد کرنے کا وقت آگیا ہے۔ پروگرام پر عمل کرنے سے پہلے سرکٹ میں جو کچھ ہورہا ہے اسے بطور خلاصہ گفتگو کرنے دیتا ہے ۔ پہلا ایل ایم 35 سینسر کمرے کے درجہ حرارت کا پتہ لگاتا ہے اور اس کے آؤٹ پٹ پر ینالاگ وولٹیج فراہم کرتا ہے۔ یہ متغیر وولٹیج + 10mV فی ºC کے ساتھ درجہ حرارت کی یکجہتی کی نمائندگی کرتا ہے۔ یہ اشارہ ADC0804 چپ کو کھلایا جاتا ہے ، یہ چپ ینالاگ ویلیو کو 255/200 = 1.275 گنتی per10mv یا 1 ڈگری کے لئے 1.275 اکاؤنٹ کے ساتھ ڈیجیٹل ویلیو میں تبدیل کرتی ہے۔ یہ گنتی PI GPIO کے ذریعہ لی گئی ہے۔ پروگرام گنتی کو درجہ حرارت کی قیمت میں بدلتا ہے اور اسے اسکرین پر ظاہر کرتا ہے۔ پی آئی کے ذریعہ پڑھا ہوا عام درجہ حرارت نیچے دکھایا گیا ہے ،
لہذا ہم اس راسبیری پائے کا درجہ حرارت مانیٹر کرتے ہیں ۔