سبق 7/31-2: ریڈ سوئچ کا استعمال کرتے ہوئے مقناطیسی میدان کا پتہ لگانا | سن فاؤنڈر کٹ
مقناطیسی میدان کا پتہ لگانا Arduino پر ڈیجیٹل ان پٹس کے ساتھ شروع کرنے کے سب سے آسان اور تسلی بخش طریقوں میں سے ایک ہے۔ اس پروجیکٹ میں آپ reed switch — ایک چھوٹا شیشے میں بند سوئچ جو مقناطیس قریب آنے پر اپنے کنٹیکٹس بند کر دیتا ہے — استعمال کرتے ہوئے مقناطیسی میدان کا detector بنائیں گے۔ چونکہ reed switch بالکل push button کی طرح برتاؤ کرتا ہے (یہ یا تو کھلا ہوتا ہے یا بند)، یہ digitalRead() فنکشن کا بہترین تعارف ہے، اور یہ آپ کو یہ بھی سکھاتا ہے کہ pull-down resistor کیوں اہم ہے اور Arduino کا built-in input pull-up اسے مکمل طور پر کیسے بدل سکتا ہے۔
ایک بار جب یہ کام کرنے لگے، تو یہی سرکٹ بہت سے حقیقی دنیا کے پروجیکٹس کا مرکز بن جاتا ہے۔ یہاں کچھ عملی آئیڈیاز ہیں جو آپ آزما سکتے ہیں:
- دروازے اور کھڑکی کا الارم — reed switch کو فریم پر اور ایک چھوٹا مقناطیس دروازے پر لگائیں؛ مقناطیس کے ہٹتے ہی Arduino "open" رپورٹ کرتا ہے۔
- نان کنٹیکٹ ٹیکومیٹر — گھومتے پہیے پر ایک مقناطیس چپکائیں اور RPM ناپنے کے لیے پلسز گنیں۔
- پانی یا گیس میٹر ریڈر — بہت سے یوٹیلیٹی میٹرز میں مقناطیسی پلس آؤٹ پٹ ہوتا ہے جسے reed switch پکڑ کر لاگ کر سکتا ہے۔
- لیپ ٹاپ کا ڈھکن / انکلوژر سینسر — ڈھکن بند ہونے کا پتہ لگائیں تاکہ سلیپ یا اسٹیٹس LED ٹرگر ہو۔
- سائیکل اسپیڈومیٹر — اسپوک پر مقناطیس اور فورک پر reed switch آپ کو پہیے کی ہر گردش پر ایک پلس دیتا ہے۔
- چھیڑ چھاڑ کی نشاندہی — ایک مقناطیس اور reed switch کی جوڑی کو انکلوژر کے اندر چھپائیں تاکہ آپ جان سکیں کہ اسے کھولا گیا ہے یا نہیں۔
Reed Switch کیسے کام کرتا ہے
Reed switch ایک چھوٹا شیشے کا کیپسول ہے جس میں دو پتلی فیرو میگنیٹک بلیڈز ہوتی ہیں (ویڈیو میں 12:38 پر)۔ مقناطیسی میدان کی موجودگی میں بلیڈز ایک دوسرے کی طرف کھنچتی اور چھو کر سرکٹ بند کر دیتی ہیں۔ مقناطیس ہٹانے پر بلیڈز الگ ہو کر سرکٹ دوبارہ کھول دیتی ہیں۔ یہی پورا اصول ہے — یہ ایک ایسا سوئچ ہے جس میں کوئی حرکت کرنے والا بٹن نہیں، انگلی سے دبانے سے کوئی گھسائی نہیں، اور جس چیز کو آپ سینس کر رہے ہیں اس سے جسمانی رابطے کی ضرورت نہیں۔
آپ اس برتاؤ کی تصدیق multimeter کے continuity موڈ میں کر سکتے ہیں (ویڈیو میں 13:59 پر): قریب کوئی مقناطیس نہ ہو تو میٹر کھلا سرکٹ دکھاتا ہے، اور جیسے ہی مقناطیس قریب آتا ہے buzzer بجتا ہے اور میٹر بند سرکٹ پڑھتا ہے۔ چونکہ سوئچ برقی طور پر push button کے عین مطابق ہے، Arduino کا کوڈ اور وائرنگ کسی بھی دوسرے ڈیجیٹل ان پٹ کی طرح ہی ہوتی ہے۔
ڈیجیٹل ان پٹس اور Pull Resistors کی وضاحت
Arduino کسی ڈیجیٹل پن کو یا تو HIGH یا LOW پڑھتا ہے۔ 5 V بورڈ پر، تقریباً 2.2 V سے اوپر کچھ بھی HIGH سمجھا جاتا ہے اور تقریباً 1.5 V سے نیچے کچھ بھی LOW (ویڈیو میں 01:49 پر)۔ مسئلہ یہ ہے کہ پن اور 5 V کے درمیان براہ راست جڑا سوئچ، سوئچ کھلے ہونے پر پن کو floating چھوڑ دیتا ہے — یہ کسی چیز سے جڑا نہیں ہوتا، اس لیے یہ شور پکڑتا ہے اور بے ترتیب ویلیوز رپورٹ کرتا ہے۔
اسی لیے resistor استعمال کیا جاتا ہے۔ دو ترتیبیں یکساں طور پر کام کرتی ہیں:
- پل ڈاؤن: پن سے گراؤنڈ تک 10 kΩ ریزسٹر۔ جب سوئچ کھلا ہو تو پن LOW پڑھتا ہے اور جب سوئچ پن کو 5 V سے جوڑتا ہے تو HIGH پڑھتا ہے۔
- پل اپ: پن سے 5 V تک 10 kΩ ریزسٹر۔ جب سوئچ کھلا ہو تو پن HIGH پڑھتا ہے اور جب سوئچ پن کو گراؤنڈ سے جوڑتا ہے تو LOW پڑھتا ہے۔
آرڈوینو میں ایک اندرونی پل اپ ریزسٹر بھی ہے جسے سافٹ ویئر میں INPUT_PULLUP کے ذریعے فعال کیا جا سکتا ہے (ویڈیو میں 19:52 پر)۔ یہ بیرونی ریزسٹر کی ضرورت کو مکمل طور پر ختم کر دیتا ہے — پن بیکار حالت میں HIGH رہتا ہے، اور سوئچ کو گراؤنڈ سے بند کرنے پر یہ LOW ہو جاتا ہے۔ نقصان یہ ہے کہ منطق الٹ جاتی ہے: دبایا گیا (یا مقناطیس موجود) اب 1 کے بجائے 0 پڑھتا ہے۔
ہارڈویئر اور اجزاء
- آرڈوینو Uno (یا کوئی بھی مطابق بورڈ)
- ریڈ سوئچ ماجیول یا ننگا ریڈ سوئچ
- 10 kΩ ریزسٹر (صرف پل ڈاؤن ورژن کے لیے درکار)
- بریڈ بورڈ اور جمپر تاروں
- جانچ کے لیے ایک چھوٹا مقناطیس
- پروگرامنگ اور بجلی کے لیے USB کیبل
وائرنگ گائیڈ
ریڈ سوئچ بالکل پش بٹن کی طرح وائر کیا جاتا ہے۔ ریڈ سوئچ کی ایک ٹانگ 5 V سے جاتی ہے، دوسری ٹانگ آرڈوینو پن 2 اور 10 kΩ ریزسٹر کے ایک سرے سے جاتی ہے۔ ریزسٹر کا دوسرا سرا گراؤنڈ سے جاتا ہے (ویڈیو میں 14:40 پر)۔ یہ پل ڈاؤن ترتیب ہے، لہٰذا مقناطیس نہ ہونے پر پن LOW پڑھتا ہے اور جب مقناطیس سوئچ بند کرتا ہے تو HIGH پڑھتا ہے۔
بریڈ بورڈ پر، ریڈ سوئچ کو اس طرح رکھیں کہ اس کی دونوں ٹانگیں مختلف قطاروں میں ہوں، ریزسٹر کو ایک ٹانگ والی قطار سے نیچے گراؤنڈ ریل تک جوڑیں، دوسری ٹانگ سے سرخ تار 5 V ریل تک لے جائیں، اور ریڈ سوئچ اور ریزسٹر کے جنکشن سے سبز تار پن 2 تک لے جائیں (ویڈیو میں 15:53 پر)۔ کالا گراؤنڈ سے جاتا ہے، سرخ 5 V سے جاتا ہے، سبز پن 2 سے جاتا ہے — یہی رنگوں کا اصول پورے SunFounder کٹ میں استعمال ہوتا ہے۔
اگر آپ ریزسٹر چھوڑنا پسند کرتے ہیں، تو ریڈ سوئچ کی ایک ٹانگ پن 2 سے اور دوسری ٹانگ سیدھی گراؤنڈ سے جوڑیں، پھر کوڈ میں INPUT_PULLUP کو فعال کریں جیسا کہ نیچے بیان کیا گیا ہے۔
کوڈ کی وضاحت
اسکیچ جان بوجھ کر بہت چھوٹا ہے۔ ہر وہ چیز جسے آپ تبدیل کرنا چاہیں گے فائل کے اوپر دو جگہوں پر موجود ہے۔
int reedPin = 2;//the pin reed switch is connected to
void setup() {
Serial.begin(9600);
pinMode(reedPin, INPUT);
}
reedPin — اگر آپ نے ریڈ سوئچ کو کسی مختلف ڈیجیٹل پن سے وائر کیا ہے تو یہ نمبر تبدیل کریں۔ Uno پر کوئی بھی ڈیجیٹل پن کام کرتا ہے؛ یہاں پن 2 صرف اس لیے استعمال کیا گیا ہے کہ یہ بریڈ بورڈ پر آسان ہے۔
Serial.begin(9600) — سیریل مانیٹر کی رفتار مقرر کرتا ہے۔ اگر آپ یہ قدر تبدیل کرتے ہیں تو آپ کو سیریل مانیٹر ونڈو میں baud rate ڈراپ ڈاؤن بھی تبدیل کرنا ہوگا، ورنہ آپ کو بے معنی حروف نظر آئیں گے (ویڈیو میں 11:25 پر)۔
pinMode(reedPin, INPUT) — پن کو ہائی امپیڈینس ان پٹ کے طور پر ترتیب دیتا ہے تاکہ یہ ریڈ سوئچ اور ریزسٹر کے ذریعے مقرر کردہ وولٹیج کو محسوس کر سکے۔ اگر آپ اس کے بجائے اندرونی پل اپ استعمال کر رہے ہیں، تو اس لائن کو pinMode(reedPin, INPUT_PULLUP); میں تبدیل کریں اور یاد رکھیں کہ ریڈنگز الٹی ہوں گی۔
لوپ صرف پن پڑھتا ہے اور نتیجہ پرنٹ کرتا ہے:
void loop() {
Serial.println(digitalRead(reedPin));
delay(10);
}
digitalRead(reedPin) جب پن HIGH ہو تو 1 واپس کرتا ہے اور جب LOW ہو تو 0۔ چونکہ قدر سیدھی Serial.println() میں دی جاتی ہے، کسی درمیانی متغیر کی ضرورت نہیں — ریڈنگ براہ راست پرنٹ ہوتی ہے۔ پل ڈاؤن وائرنگ کے ساتھ، 0 کا مطلب ہے "کوئی مقناطیسی میدان نہیں" اور 1 کا مطلب ہے "مقناطیس کا پتہ چلا" (ویڈیو میں 18:31 پر)۔
delay(10) کنٹرول کرتا ہے کہ ریڈنگ کتنی بار پرنٹ ہوتی ہے۔ دس ملی سیکنڈ اتنا تیز ہے کہ جیسے ہی مقناطیس قریب آئے گا آپ قدر کو بدلتے دیکھیں گے۔ اگر آپ پرسکون ڈسپلے پسند کرتے ہیں تو آپ اسے 200 ms تک بڑھا سکتے ہیں، لیکن یاد رکھیں کہ یہ پتہ لگانے کو بھی سست کر دیتا ہے (ویڈیو میں 12:01 پر)۔
لائیو پروجیکٹ مظاہرہ
اسکیچ اپ لوڈ کرنے کے بعد، سیریل مانیٹر کھولیں اور baud rate کو 9600 پر سیٹ کریں۔ قریب کوئی مقناطیس نہ ہونے پر ونڈو صفر سے بھر جاتی ہے۔ ایک چھوٹا مقناطیس شیشے کے کیپسول کے قریب لائیں اور آؤٹ پٹ فوراً ایک پر سوئچ ہو جاتا ہے؛ مقناطیس کو دور کھینچیں اور یہ صفر پر واپس آ جاتا ہے (ویڈیو میں 17:04 پر)۔ ردعمل فوری ہے اور یہ کام کرتا ہے یہاں تک کہ جب مقناطیس سوئچ سے ایک یا دو سینٹی میٹر دور رکھا جائے۔
اگر آپ نے اس کے بجائے پل اپ ورژن بنایا ہے، تو منطق الٹ ہے: مانیٹر آرام کی حالت میں 1 دکھاتا ہے اور مقناطیس موجود ہونے پر 0 (ویڈیو میں 22:13 پر)۔ کسی بھی طرح، آپ کے پاس اب ایک قابل اعتماد، بغیر رابطے کا مقناطیسی میدان کا detector ہے جس کی قیمت تقریباً کچھ نہیں اور اسے اس مضمون کے اوپر دی گئی کسی بھی پروجیکٹ آئیڈیا میں شامل کیا جا سکتا ہے۔
اسی ڈیجیٹل ریڈ سبق کا پش بٹن ورژن الگ سے سبق 7/31: ڈیجیٹل ریڈ پش بٹن، مقناطیسی میدان کا پتہ لگانا SunFounder Kit | Robojax میں شامل ہے۔
اس ویڈیو سے متعلقہ منصوبے
ابواب
- [00:00] تعارف: ڈیجیٹل ریڈ کی دو مثالیں
- [01:33] ڈیجیٹل ریڈ اور HIGH/LOW کا مطلب کیا ہے
- [02:46] پش بٹن سوئچ کیسے کام کرتا ہے
- [03:25] پل اپ اور پل ڈاؤن ریزسٹر کا نظریہ
- [05:18] بریڈ بورڈ پر پش بٹن کی وائرنگ
- [08:21] بٹن اسکیچ کھولنا اور سمجھانا
- [10:55] بٹن کی مثال اپ لوڈ کرنا اور ٹیسٹ کرنا
- [12:38] ریڈ سوئچ کا تعارف اور ملٹی میٹر سے اس کی جانچ
- [14:40] ریڈ سوئچ کو پن 2 سے جوڑنا
- [16:46] مقناطیس سے ریڈ سوئچ کی جانچ
- [17:19] ریڈ سوئچ اسکیچ کی وضاحت
- [19:45] بیرونی ریزسٹر کے بغیر INPUT_PULLUP استعمال کرنا
تصاویر
/*
* Lesson 7/31-2: Digital read, working with reed switch
Download and resource page https://robojax.com/RJT590
watch video tutorial https://www.youtube.com/watch?v=yyJrqFKn-X4
* written/updated by Ahmad Shamshiri www.Robojax.com
* Dec 12, 2022
*
*/
int reedPin = 2;//the pin reed switch is connected to
void setup() {
Serial.begin(9600);
pinMode(reedPin, INPUT);
}
void loop() {
Serial.println(digitalRead(reedPin));
delay(10);
}
Common Course Links
Common Course Files
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزونBuy reed switch from Amazonamzn.to
-
ایمیزون
-
ایمیزونSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
ایمیزون
-
ایمیزون
-
ایمیزون
-
ایمیزون
-
ای بےBuy reed switch from eBayebay.us
-
علی ایکسپریسBuy reed switch from AliExpresss.click.aliexpress.com
وسائل اور حوالہ جات
-
دستاویزاتDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
باہرونیPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
فائلیں📁
آرڈوینو لائبریریاں (زپ)
-
SunFounder کا 3-in-1 اسمارٹ کار لرننگ کٹ سورس کوڈ
3in1-kit-main-v2.zip12.80 MB
صارف کا دستی کتاب
-
سن فاؤنڈر 3-ان-1 آردوینو اسمارٹ کار اسمبلی دستییہ دستاویز سن فاؤنڈر 3-ان-1 آردوینو اسمارٹ کار کی مرحلہ وار اسمبلی دکھاتی ہے
SunFounder_car_assembly_manual.pdf1.20 MB