- مطلوبہ مواد:
- ADC0804 سنگل چینل 8 بٹ ADC ماڈیول:
- سرکٹ ڈایاگرام اور وضاحت:
- راسبیری پائ پروگرامنگ:
- راسبیری پائی کا استعمال کرتے ہوئے LCD پر فلیکس سینسر کی قیمت دکھا رہا ہے:
راسبیری پائی ایک آر ایم آرکیٹیکچر پروسیسر پر مبنی بورڈ ہے جو الیکٹرانک انجینئرز اور شوق پرستوں کے لئے ڈیزائن کیا گیا ہے۔ PI ایک بہت قابل اعتماد پروجیکٹ ڈویلپمنٹ پلیٹ فارم ہے جو اب وہاں موجود ہے۔ اعلی پروسیسر کی رفتار اور 1 جی بی ریم کے ساتھ ، پی آئی بہت سارے ہائی پروفائل منصوبوں جیسے امیج پروسیسنگ اور انٹرنیٹ آف چیزوں کے ل. استعمال کیا جاسکتا ہے۔ بہت ساری ٹھنڈی چیزیں ہیں جو PI کے ساتھ کی جا سکتی ہیں ، لیکن ایک افسوسناک خصوصیت یہ ہے کہ اس میں انبلٹ ADC ماڈیول نہیں ہے۔
صرف ، اگر راسبیری پائ کو سینسروں کے ساتھ انٹرفیس کیا جاسکتا ہے تو ، یہ دنیا کے حقیقی پیرامیٹرز کے بارے میں جان سکتا ہے اور اس کے ساتھ تعامل کرسکتا ہے۔ وہاں موجود زیادہ تر سینسرز ینالاگ سینسر موجود ہیں لہذا ہمیں ان سینسروں کو انٹرفیس کرنے کے لئے بیرونی اے ڈی سی ماڈیول آئی سی کو راسبیری پائی کے ساتھ استعمال کرنا سیکھنا چاہئے۔ اس پروجیکٹ میں ہم سیکھیں گے کہ ہم کس طرح راسبیری پائی کے ذریعہ فلیکس سینسر کو انٹرفیس کرسکتے ہیں اور LCD اسکرین پر اس کی اقدار کو ظاہر کرسکتے ہیں۔
مطلوبہ مواد:
- راسبیری پائ (کوئی بھی ماڈل)
- ADC0804 IC
- 16 * 2 LCD ڈسپلے
- فلیکس سینسر
- مزاحم اور کیپسیٹرز
- بریڈ بورڈ یا پرف بورڈ۔
ADC0804 سنگل چینل 8 بٹ ADC ماڈیول:
اس سے پہلے کہ ہم مزید آگے بڑھیں ، آئیے ہم اس ADC0804 IC کے بارے میں اور راسبیری pi کے ساتھ اس کا استعمال کرنے کا طریقہ سیکھیں ۔ ADC0804 ایک واحد چینل 8 بٹ آایسی ہے ، مطلب یہ ایک بھی ADC ویلیو پڑھ سکتا ہے اور اسے 8 بٹ ڈیجیٹل ڈیٹا پر نقشہ بنا سکتا ہے۔ یہ 8 بٹ ڈیجیٹل ڈیٹا راسبیری پائی کے ذریعہ پڑھ سکتے ہیں ، اس طرح قیمت 0-255 ہوگی کیونکہ 2 ^ 8 256 ہے۔ جیسا کہ ذیل میں آایسی کے پن آؤٹ میں دکھایا گیا ہے ، پنوں کو ڈی بی 0 سے ڈی بی 7 ان ڈیجیٹل کو پڑھنے کے لئے استعمال کیا جاتا ہے اقدار
اب یہاں ایک اور اہم چیز یہ ہے کہ ، 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 دیکھیں گے۔ ADC کے بارے میں مزید معلومات یہاں حاصل کریں: ADC0804 کا تعارف۔
ذیل میں ADC0804 کا استعمال کرتے ہوئے اے ڈی سی ماڈیول کی تصویر ہے جو ہم نے پرفور بورڈ پر بنائی ہے۔
سرکٹ ڈایاگرام اور وضاحت:
راسبیری پائی کے ساتھ فلیکس سینسر کو انٹرفیس کرنے کے لئے مکمل سرکٹ ڈایاگرام ذیل میں دکھایا گیا ہے۔ اس کی وضاحت مندرجہ ذیل ہے۔
یہ رسبری پِی فلیکس سینسر سرکٹ بہت سی تاروں کے ساتھ تھوڑا سا پیچیدہ معلوم ہوسکتا ہے ، لیکن اگر آپ قریب سے دیکھیں تو زیادہ تر تاروں براہ راست ایل سی ڈی اور 8 بٹ ڈیٹا پن سے راسبیری پائی سے منسلک ہیں۔ مندرجہ ذیل ٹیبل رابطوں کو بنانے اور اس کی تصدیق کے دوران آپ کی مدد کرے گی۔
پن کا نام |
راسبیری پن نمبر |
راسبیری پائی GPIO نام |
LCD Vss |
پن 4 |
زمین |
LCD Vdd |
پن 6 |
Vcc (+ 5V) |
LCD Vee |
پن 4 |
زمین |
ایل سی ڈی |
پن 38 |
جی پی آئی او 20 |
LCD RW |
پن 39 |
زمین |
LCD E |
پن 40 |
جی پی آئی او 21 |
LCD D4 |
پن 3 |
جی پی آئی او 2 |
LCD D5 |
پن 5 |
جی پی آئی او 3 |
LCD D6 |
پن 7 |
جی پی آئی او 4 |
LCD D7 |
پن 11 |
جی پی آئی او 17 |
ADC0804 Vcc |
پن 2 |
Vcc (+ 5V) |
ADC0804 B0 |
پن 19 (5.1K کے ذریعے) |
جی پی آئی او 10 |
ADC0804 B1 |
پن 21 (5.1K کے ذریعے) |
جی پی آئی او 9 |
ADC0804 B2 |
پن 23 (5.1K کے ذریعے) |
جی پی آئی او 11 |
ADC0804 B3 |
پن 29 (5.1K کے ذریعے) |
جی پی آئی او 5 |
ADC0804 B4 |
پن 31 (5.1K کے ذریعے) |
جی پی آئی او 6 |
ADC0804 B5 |
پن 33 (5.1K کے ذریعے) |
جی پی آئی او 13 |
ADC0804 B6 |
پن 35 (5.1K کے ذریعے) |
جی پی آئی او 19 |
ADC0804 B7 |
پن 37 (5.1K کے ذریعے) |
جی پی آئی او 26 |
ADC0804 WR / INTR |
پن 15 |
جی پی آئی او 22 |
اس کے بعد سے آپ راسبیری پر موجود پن نمبروں کا تعین کرنے کے لئے مندرجہ ذیل تصویر کا استعمال کرسکتے ہیں۔
تمام ADC ماڈیولز کی طرح ، ADC0804 IC کو چلانے کے ل a بھی گھڑی کے سگنل کی ضرورت ہوتی ہے ، خوش قسمتی سے اس IC کا اندرونی گھڑی کا منبع ہے ، لہذا ہمیں صرف RC سرکٹ کو CLK in اور CLK R پنوں میں شامل کرنا ہے جیسا کہ سرکٹ میں دکھایا گیا ہے۔ ہم نے 10K اور 105pf کی قدر استعمال کی ہے ، لیکن ہم کسی بھی قدر کے قریب 1uf ، 0.1uf ، 0.01uf کو بھی کام کریں۔
پھر فلیکس سینسر سے مربوط ہونے کے لئے ہم نے 100K ریزسٹر کا استعمال کرتے ہوئے ایک ممکنہ ڈویائڈر سرکٹ کا استعمال کیا ہے۔ چونکہ فلیکس سینسر جھکا ہوا ہے اس کے پار مزاحمت مختلف ہوتی ہے اور اسی طرح مزاحم کے پار بھی ممکنہ ڈراپ ہوجاتا ہے۔ یہ قطرہ ADC0804 IC کے ذریعہ ماپا جاتا ہے اور اسی کے مطابق 8 بٹ ڈیٹا تیار کیا جاتا ہے۔
فلیکس سینسر سے متعلق دیگر منصوبوں کو چیک کریں:
- AVR مائکروکانٹرولر کے ساتھ فلیکس سینسر انٹرفیسنگ
- ارڈوینو پر مبنی اینگری برڈ گیم کنٹرولر فلیکس سینسر کا استعمال کرتے ہوئے
- امدادی موٹر کنٹرول فلکس سینسر کے ذریعہ
- ارڈینو کے استعمال سے انگلیوں کو تھپتھپا کر ٹن پیدا کرنا
راسبیری پائ پروگرامنگ:
ایک بار جب ہم رابطے کر لیتے ہیں تو ، ہمیں راسبیری پائی کا استعمال کرتے ہوئے ان 8 بٹس کی حیثیت کو پڑھنا چاہئے اور انھیں اعشاریہ میں تبدیل کرنا چاہئے تاکہ ہم ان کا استعمال کرسکیں۔ ایل سی ڈی اسکرین پر ایسا ہی کرنے اور اس کے نتیجے میں ہونے والی اقدار کو ظاہر کرنے کا پروگرام اس صفحے کے آخر میں دیا گیا ہے۔ مزید یہ کہ اس کوڈ کو ذیل میں چھوٹے جنک میں سمجھایا گیا ہے۔
ہمیں LCD کو پائ کے ساتھ انٹرفیس کرنے کے لئے LCD لائبریری کی ضرورت ہے ۔ اس کے ل we ہم شبھم کی تیار کردہ لائبریری کا استعمال کرتے ہیں جو ہمیں 16 * 2 LCD ڈسپلے کو چار وائر موڈ میں پائ کے ساتھ انٹرفیس کرنے میں مدد فراہم کرے گا۔ نیز ہمیں وقت اور پائ GPIO پنوں کا استعمال کرنے کے لئے لائبریریوں کی ضرورت ہے۔
نوٹ : lcd.py کو یہاں سے ڈاؤن لوڈ کیا جائے ، اور اسی ڈائرکٹری میں رکھا جائے جہاں یہ پروگرام محفوظ ہوا ہے۔ تبھی کوڈ مرتب ہوگا۔
درآمد lcd # LCD لائبریری کی طرف سے [email protected] درآمد کا وقت درآمد کریں # درآمدی وقت درآمد RPI.GPIO کو بطور GPIO #GPIO صرف GPIO کے طور پر دوبارہ پیش کیا جائے گا۔
LCD پن کی تعریف کے طور پر ذیل میں دکھایا گیا متغیر کو تفویض کر رہے ہیں. نوٹ کریں کہ یہ نمبر GPIO پن نمبر ہیں نہ کہ اصل پن نمبرز۔ آپ GPIO نمبروں کو پن نمبروں کے ساتھ موازنہ کرنے کے لئے مندرجہ بالا جدول استعمال کرسکتے ہیں۔ سرنی بائنری میں تمام ڈیٹا پن نمبر شامل ہوں گے اور سرنی بٹس تمام GPIO پنوں کے نتیجے میں آنے والی قیمت کو محفوظ کریں گی۔
# LCD پن کی تعریفیں D4 = 2 D5 = 3 D6 = 4 D7 = 17 RS = 20 EN = 21 ثنائیوں = (10،9،11،5،6،13،19،26) # پن نمبروں کا ارای DB0- سے منسلک ہوتا ہے DB7 بٹس = 8 بٹ ڈیٹا کی # قیمت کے نتائج
اب ، ہمیں ان پٹ اور آؤٹ پٹ پنوں کی وضاحت کرنی ہوگی ۔ سات ڈیٹا پن ان پٹ ہوں گے اور ٹرگر پن (RST اور INTR) آؤٹ پٹ پن ہوں گے۔ ہم ان پٹ پن سے 8 بٹ ڈیٹا کی اقدار صرف اس صورت میں پڑھ سکتے ہیں جب ہم ڈیٹا شیٹ کے مطابق کسی خاص وقت کے لئے آؤٹ پٹ پن کو زیادہ تر متحرک کریں۔ چونکہ ہم نے بائنری صفوں میں بائنری پنوں کا اعلان کیا ہے لہذا ہم اعلان کے لئے لوپ کے لئے ایک استعمال کرسکتے ہیں جیسا کہ ذیل میں دکھایا گیا ہے۔
بائنریوں میں ثنائی کے لئے: GPIO.setup (بائنری ، GPIO.IN) # تمام بائنری پن ان پٹ ہیں # ٹرگر پن GPIO.setup (22 ، GPIO.OUT) #WR اور INTR پن ہیں آؤٹ پٹ
اب LCD لائبریری کے کمانڈز کا استعمال کرتے ہوئے ہم LCD ماڈیول کو ابتدا کرسکتے ہیں اور جیسا کہ ذیل میں دکھایا گیا ہے ایک چھوٹا انٹرو میسج ڈسپلے کرسکتے ہیں ۔
mylcd = lcd.lcd () mylcd.begin (D4، D5، D6، D7، RS، EN) #Intro پیغام mylcd.Press ("فلیکس سینسر کے ساتھ") mylcd.setCursor (2،1) mylcd.Press ("راسبیری پائ ") ٹائم۔ نیند (2) مائیل سی ڈی سیریل ()
لامحدود جبکہ لوپ کے اندر ، ہم بائنری اقدار کو اعشاریہ میں تبدیل کرنے اور ایل سی ڈی پر نتیجہ کو اپ ڈیٹ کرنا شروع کرتے ہیں۔ جیسا کہ پہلے کہا گیا تھا کہ ADC کی اقدار کو پڑھنے سے پہلے ہمیں ADC کے تبادلوں کو فعال کرنے کے ل the کسی خاص وقت کے لئے ٹرگر پن کو اونچا بنانا چاہئے ۔ یہ مندرجہ ذیل لائنوں کا استعمال کرتے ہوئے کیا جاتا ہے۔
جی پی آئی او آؤٹ پٹ (22 ، 1) # ٹرگر ٹائم آن ٹر نیند (0.1) جی پی آئی او آؤٹ پٹ (22 ، 0) # ٹرگر آف ٹرگر
اب ، ہمیں 8 ڈیٹا پنوں کو پڑھنا چاہئے اور بٹس سرنی میں نتیجہ کو اپ ڈیٹ کرنا چاہئے ۔ ایسا کرنے کے ل we ، ہم ہر ان پٹ پن کو سچ اور غلط کے ساتھ موازنہ کرنے کے لئے ایک لوپ کا استعمال کرتے ہیں ۔ اگر سچ ہے تو متعلقہ بٹس سرنی 1 کے بطور بنائے جائیں گے اور اسے 0 کی طرح بنایا جائے گا۔ یہ 8 بٹ کے اعداد و شمار کو 0 اور 1 کو پڑھے جانے والے اقدار سے متعلق بنایا جائے گا۔
# ان پٹ پڑھیں اور اپ ڈیٹ کے نتیجے میں رینج میں بٹ سرنی میں نتیجہ (8): اگر (GPIO.input (بائنری) == سچ): بٹس = 1 اگر (GPIO.input (بائنری) == غلط): بٹس = 0
ایک بار جب ہم بٹس صف کو اپ ڈیٹ کر لیتے ہیں تو ہمیں اس سرنی کو اعشاریہ قدر میں تبدیل کرنا چاہئے ۔ یہ اعشاریہ تبدیلی سے لے جانے کے لئے ثنائی کے سوا کچھ نہیں ہے۔ 8 بٹ بائنری ڈیٹا کے لئے 2 ^ 8 256 ہے۔ لہذا ہمیں 0 سے 255 تک اعشاریہ اعداد و شمار ملیں گے۔ ازگر میں آپریٹر "**" کسی بھی قیمت کی طاقت تلاش کرنے کے لئے استعمال ہوتا ہے۔ چونکہ بٹس کا آغاز MSB سے ہوتا ہے لہذا ہم اسے 2 ^ (7-پوزیشن) کے ساتھ ضرب دیتے ہیں۔ اس طرح ہم تمام بائنری اقدار کو اعشاریہ ڈیٹا میں تبدیل کرسکتے ہیں اور پھر اسے LCD پر ڈسپلے کرسکتے ہیں
# میں حد اطلاق میں بٹ سرنی کا استعمال کرتے ہوئے اعشاریہ قدر (8) حساب کریں: اعشاریہ = اعشاریہ + (بٹس * (2 ** (7-i)))
ایک بار جب ہم اعشاریہ قدر جان لیں تو وولٹیج کی قیمت کا حساب لگانا آسان ہے ۔ ہمیں اسے صرف 19.63 کے ساتھ ضرب کرنا ہے۔ کیونکہ ایک 8 بٹ 5VADC کے لئے ہر تھوڑا سا 19.3 ملی وولٹ کا مشابہ ہے۔ نتیجے میں وولٹیج کی قیمت وولٹیج کی وہ قیمت ہے جو ADC0804 IC کے پنوں Vin + اور Vin- کے اس پار ظاہر ہوئی ہے۔
# کیلکولیٹ وولٹیج کی قیمت وولٹیج = اعشاریہ * 19.63 * 0.001 # ایک یونٹ 19.3mV ہے
وولٹیج کی قدر کا استعمال کرتے ہوئے ہم یہ طے کرسکتے ہیں کہ فلیکس سینسر کس طرح جھکا ہے اور کس سمت میں جھکا ہوا ہے۔ مندرجہ ذیل لائنوں میں میں نے LCD اسکرین پر فلیکس سینسر کی پوزیشن کی نشاندہی کرنے کے لئے وولٹیج کی پہلے سے طے شدہ اقدار کے ساتھ پڑھنے والی وولٹیج کی قدروں کا موازنہ کیا ہے ۔
# سینسر mylcd.setCursor کی وولٹیج اور ڈسپلے کی حیثیت کا موازنہ کریں (1،1) اگر (وولٹیج> 3.8): mylcd.Press ("جھکا ہوا فارورڈ") ایلیف (وولٹیج <3.5): mylcd.Press ("جھکا پیچھے") اور: mylcd.Press ("مستحکم")
اسی طرح آپ کسی بھی کام کو انجام دینے کے لئے وولٹیج کی قیمت کا استعمال کرسکتے ہیں جس کی آپ راسبیری پیئ انجام دینے کی خواہش کرتے ہیں۔
راسبیری پائی کا استعمال کرتے ہوئے LCD پر فلیکس سینسر کی قیمت دکھا رہا ہے:
منصوبے پر کام کرنا بہت آسان ہے۔ لیکن یہ یقینی بنائیں کہ آپ نے lcd.py ہیڈر فائل ڈاؤن لوڈ کی ہے اور اسے اسی ڈائرکٹری میں رکھا ہے جہاں آپ کا موجودہ پروگرام موجود ہے۔ پھر کنکشن کو سرکٹ آریگرام میں روٹی بورڈ یا پرف بورڈ کا استعمال کرتے ہوئے دکھایا جائے اور اپنے پی آئی پر مندرجہ ذیل پروگرام چلائیں اور آپ کو کام کرنا چاہئے۔ آپ کو سیٹ اپ کو کچھ اس طرح نظر آنا چاہئے۔
جیسا کہ دکھایا گیا ہے LCD اعشاریہ قدر ، وولٹیج کی قیمت اور سینسر کی پوزیشن کو ظاہر کرے گا ۔ صرف سینسر کو آگے یا پیچھے موڑ دیں اور آپ کو وولٹیج اور اعشاریہ قیمت کو مختلف ہوتے ہوئے دیکھنے کے قابل ہونا چاہئے ، اس کے ساتھ ہی ایک اسٹیٹس ٹیکسٹ بھی دکھایا جائے گا۔ آپ کسی بھی سینسر کو مربوط کرسکتے ہیں اور اس میں مختلف وولٹیج کو متنوع دیکھتے ہو۔
ٹیوٹوریل کا مکمل کام نیچے دی گئی ویڈیو پر پایا جاسکتا ہے ۔ امید ہے کہ آپ کو پروجیکٹ سمجھ گیا ہوگا اور اسی طرح کی کچھ چیزیں بنانے میں خوشی محسوس ہوگی۔ اگر آپ کو کوئی شک ہے تو ، انھیں کمنٹ سیکشن یا فورمز پر چھوڑیں اور میں ان کے جوابات دینے کی پوری کوشش کروں گا۔