سبق 98-3: Arduino کے ساتھ پش بٹن کا استعمال کرتے ہوئے ٹوگل LED کو آن/آف کیسے کریں
پش بٹن ہر جگہ ہوتے ہیں — ریموٹ، آلات اور کنٹرول پینلز میں — اور جس لمحے ایک بٹن کو ایک سے زیادہ کام کرنے پڑتے ہیں، آپ کو ٹوگل منطق کی ضرورت ہوتی ہے۔ یہ پروجیکٹ آپ کو دکھاتا ہے کہ ایک پش بٹن کو کیسے بنایا جائے جو پہلے دبانے پر ایل ای ڈی کو آن کرے اور اگلے دبانے پر آف کر دے، تاکہ روشنی بالکل وہیں رہے جہاں آپ نے چھوڑی تھی۔ یہ "ایک بار دبائیں تو لاک ہو جائے، دوبارہ دبائیں تو چھوڑ دے" رویہ تقریباً ہر مینو بٹن، پاور سوئچ اور موڈ سلیکٹر کی بنیاد ہے جو آپ کبھی بنائیں گے۔
ایک بار جب آپ ٹوگل سمجھ لیں، تو وہی کوڈ پیٹرن حقیقی ہارڈ ویئر پر بھی لاگو ہوتا ہے۔ آپ اسے ان کاموں کے لیے استعمال کر سکتے ہیں:
- ایک ریلے کو سوئچ کرنا جو ایک پینل بٹن سے اے سی لیمپ یا ڈیسک لائٹ کو کنٹرول کرتا ہے۔
- ایک موٹر یا پمپ کو دو کے بجائے ایک بٹن سے شروع اور بند کرنا۔
- کسی ڈیوائس پر آپریٹنگ موڈز کے درمیان گھومنا (مثال کے طور پر، سلو / فاسٹ / آف)۔
- ایک لیچنگ الارم بنانا جو اس وقت تک آن رہے جب تک کوئی اسے تسلیم نہ کرے۔
- ایک آڈیو پروجیکٹ کے لیے میوٹ بٹن بنانا جو اپنی حالت یاد رکھتا ہے۔
- بیٹری سے چلنے والے گیجٹ کے لیے سافٹ پاور سوئچ کا کام کرنا، مکینیکل سوئچ کی جگہ لے کر۔
انسٹرکٹر ویڈیو میں اس نکتے کی براہ راست نشاندہی کرتا ہے (ویڈیو میں 19:52 پر): یہ پروجیکٹ واقعی ایل ای ڈی کے بارے میں نہیں ہے — یہ ٹوگل تکنیک کے بارے میں ہے، جسے آپ ریلے، موٹر ڈرائیور، یا کسی بھی دوسرے آؤٹ پٹ پر لاگو کر سکتے ہیں۔
ہارڈ ویئر اور اجزاء
پرزوں کی فہرست جان بوجھ کر بہت کم ہے، لہذا یہ ایک بہترین پروجیکٹ ہے اگر آپ ابھی شروع کر رہے ہیں۔ آپ کو ضرورت ہے:
- ایک آرڈوینو بورڈ — Uno، Nano، یا Mega سب کام کرتے ہیں۔
- ایک ایل ای ڈی، 3 mm یا 5 mm، کوئی بھی رنگ۔
- ایل ای ڈی کے لیے ایک ریزسٹر، 200 Ω سے 1000 Ω تک کوئی بھی۔ ٹرانسکرپٹ اس کی وجہ بیان کرتا ہے (ویڈیو میں 03:49 پر): ایک ایل ای ڈی تقریباً 2 V گرتا ہے اور تقریباً 10 mA لیتا ہے، لہذا 5 V سپلائی کے ساتھ باقی 3 V کو ریزسٹر کے ذریعے گرانا ضروری ہے۔ اوہم کا قانون 3 V ÷ 0.01 A = 300 Ω دیتا ہے، اور 300 Ω سے لے کر 1000 Ω تک کچھ بھی کام کرے گا — زیادہ اقدار صرف ایل ای ڈی کو مدھم کر دیتی ہیں۔
- ایک پش بٹن سوئچ۔ ویڈیو میں چھوٹی چار پن والی ٹیکٹائل قسم اور لمبی پن والا ورژن دونوں دکھائے گئے ہیں (ویڈیو میں 12:43 پر)۔ اگر آپ کے پاس پش بٹن نہیں ہے، تو ایک عام سوئچ بھی کام کرتا ہے — بس وہ دو ٹرمینلز تلاش کریں جو سرکٹ کو بناتے اور توڑتے ہیں۔
- ایک بریڈ بورڈ اور کچھ ڈوپونٹ جمپر تاروں۔
ویڈیو سے ایک عملی مشورہ (ویڈیو میں 07:50 پر): چار پن والے ٹیکٹائل بٹن میں اندرونی طور پر جڑے پنوں کے دو جوڑے ہوتے ہیں۔ کنٹینیوٹی موڈ میں ملٹی میٹر استعمال کریں تاکہ معلوم ہو سکے کہ کون سے دو پن ایک ساتھ بیپ کرتے ہیں — وہ سوئچ کا ایک طرف ہیں۔ ایک طرف کو ان پٹ پن سے اور دوسری طرف کو گراؤنڈ سے جوڑیں۔
وائرنگ گائیڈ
وائرنگ سادہ ایل ای ڈی اور پش بٹن سرکٹس جیسی ہی ہے، جس میں بٹن اوپر شامل کیا گیا ہے۔ ایل ای ڈی کا اینوڈ (لمبی ٹانگ) پن 3 سے جاتا ہے، اور اس کا کیتھوڈ (چھوٹی ٹانگ، باڈی کے فلیٹ حصے پر) ریزسٹر کے ذریعے گراؤنڈ سے جڑتا ہے۔ پش بٹن پن 2 اور گراؤنڈ کے درمیان جڑتا ہے — اور کچھ ضروری نہیں، کیونکہ کوڈ آرڈوینو کے اندرونی پل اپ ریزسٹر کو فعال کرتا ہے۔
یہ اندرونی پل اپ سمجھنے کے قابل ہے: اس کے بغیر، ایک فلوٹنگ ان پٹ پن بے ترتیب شور پڑھے گا۔ INPUT_PULLUP کو فعال کرنے سے پن 5 V پر رہتا ہے جب بٹن کھلا ہو، اور بٹن دبانے سے یہ 0 V پر آ جاتا ہے۔ یہی وجہ ہے کہ کوڈ LOW ریڈنگ کو "دبایا گیا" سمجھتا ہے — منطق ایک سادہ سوئچ ٹو گراؤنڈ کے مقابلے میں الٹی ہے جس میں بیرونی ریزسٹر ہو۔
کوڈ کی وضاحت
مکمل اسکیچ اس مضمون کے نیچے دستیاب ہے۔ یہاں ہم ان حصوں پر توجہ دیں گے جو آپ واقعی تبدیل کرنا چاہیں گے۔
فائل کے اوپری حصے میں، دو پن اسائنمنٹس کو کانسٹنٹ کے طور پر بیان کیا گیا ہے۔ اگر آپ اپنی تاریں مختلف پنوں پر منتقل کرتے ہیں، تو یہ واحد جگہ ہے جہاں آپ کو ترمیم کرنی ہوگی:
const int pushButtonPin = 2;//define a pin number for push button
const int LEDPin = 3;//define a pin that is connected to LED
اس کے بعد تین اسٹیٹ ویری ایبلز آتے ہیں۔ آپ کو عام طور پر انہیں تبدیل کرنے کی ضرورت نہیں ہوتی، لیکن یہ جاننا مددگار ہے کہ وہ کیا کرتے ہیں:
int pushButtonStatus = 0; // push value from pin 2
int lightStatus = 0;//light status
int pushed = 0;//push statuspushButtonStatus ہر بار لوپ سے گزرتے وقت بٹن پن کی خام ریڈنگ کو محفوظ کرتا ہے۔ lightStatus یاد رکھتا ہے کہ پچھلی بار بٹن پن نے کیا پڑھا تھا، اسی طرح اسکیچ نئے دباؤ کے لمحے کا پتہ لگاتا ہے بجائے مسلسل ردعمل ظاہر کرنے کے۔ pushed اصل ٹوگل فلیگ ہے — یہ 0 اور 1 کے درمیان پلٹتی ہے اور فیصلہ کرتی ہے کہ LED آن ہونی چاہیے یا آف۔
ٹوگل خود ایک صاف ستھری ریاضی کی چال سے کیا جاتا ہے (ویڈیو میں 18:30 پر)۔ فلیگ کو ایک سے تفریق کرنے سے یہ الٹ جاتی ہے: 1 - 0 سے 1 ملتا ہے، اور 1 - 1 سے 0۔ تو ایک ہی لائن ہر بار نیا دباؤ محسوس ہونے پر حالت پلٹ دیتی ہے:
pushed = 1-pushed;//toggle the pushed value
delay(100);//give some time for finger to press
100 ms کی تاخیر اس لیے ہے تاکہ آپ کی انگلی بٹن سے ہٹ جائے۔ اس کے بغیر، ایک جسمانی دباؤ کئی بار شمار ہو سکتا ہے۔ اگر آپ کا بٹن ناقابلِ بھروسہ محسوس ہو یا آپ کی انگلی کانپے، تو اس ویلیو کو بڑھا دیں (ویڈیو میں 40:39 پر)۔
وہ شرط جو ٹوگل کو متحرک کرتی ہے پورے اسکیچ کی کلید ہے۔ یہ صرف اس وقت فعال ہوتی ہے جب بٹن نہ دبا ہوا ہو (HIGH، پل-اپ کی وجہ سے) اور پچھلی ریڈنگ LOW تھی — یعنی بٹن ابھی دباؤ کے بعد چھوڑا گیا تھا:
if(pushButtonStatus == HIGH && lightStatus == LOW){
pushed = 1-pushed;//toggle the pushed value
delay(100);//give some time for finger to press
}
آخر میں، LED کو ٹوگل فلیگ سے چلایا جاتا ہے، اور موجودہ بٹن ریڈنگ اگلے موازنے کے لیے محفوظ کر لی جاتی ہے:
lightStatus = pushButtonStatus;
if(pushed == HIGH){
Serial.println("Light ON");
digitalWrite(LEDPin, HIGH); //turn the LED ON
}else{
Serial.println("Light OFF");
digitalWrite(LEDPin, LOW);//turn the LED OFF
}
آپ 9600 baud پر سیریل مانیٹر بھی کھول سکتے ہیں تاکہ بٹن دباتے وقت "Light ON" اور "Light OFF" پیغامات دیکھ سکیں۔
لائیو مظاہرہ
ویڈیو میں (19:41 پر) آپ عمل میں رویہ دیکھ سکتے ہیں: پہلا دباؤ LED کو آن کرتا ہے اور انگلی ہٹانے کے بعد بھی یہ آن رہتی ہے۔ اگلا دباؤ اسے آف کرتا ہے، اور یہ آف رہتی ہے۔ بٹن کو دبا کر رکھنے کی ضرورت نہیں، اور یہی اس پروجیکٹ اور Lesson 98-2: How to Turn On and Off an LED Using a Push Button with Arduino میں بتائے گئے آسان "دبا کر روشن رکھیں" ورژن کے درمیان فرق ہے۔
ویڈیو یہ بھی بتاتی ہے کہ آپ LED کی جگہ ریلے ماجیول لگا سکتے ہیں تاکہ مینز سے چلنے والے آلات کو سوئچ کریں، یا موٹر ڈرائیور لگا سکتے ہیں تاکہ موٹر شروع اور بند کریں۔ ٹوگل منطق تبدیل نہیں ہوتی — صرف آؤٹ پٹ ڈیوائس بدلتی ہے۔
اسی ویڈیو میں دکھائی گئی دیگر تبدیلیاں — LED کو فیڈ کرنا، سی سا پیٹرن، واکنگ لائٹ، وولٹیج بار میٹر، اور ٹریفک لائٹ — ہر ایک اپنے الگ ٹیوٹوریلز میں شامل ہیں، جو نیچے لنک کیے گئے ہیں۔
اس ویڈیو سے متعلقہ پروجیکٹس
- Lesson 98-1: How to Turn On and Off an LED with Arduino
- Lesson 98-2: How to Turn On and Off an LED Using a Push Button with Arduino
- Lesson 98-4: Fading an LED Light Using Arduino: Brightness Control
- Lesson 98-5: Fade Light When a Button Is Pressed Using Arduino
- Lesson 98-6: Seesaw LED Game with Arduino
- Lesson 98-7: Walking Light Using Arduino and 5 LEDs
- Lesson 98-8: Walking Light with Push Button and LEDs with Arduino
- Lesson 98-9: LED Voltage Level Meter Using Arduino or walking light with potentiometer
- Lesson 98-10: Arduino Traffic Light
ابواب
- [00:00] 10 LED پروجیکٹس کا جائزہ
- [01:00] Arduino مرحلہ وار کورس کا تعارف
- [02:29] LED بنیادی باتیں: علامت، اینوڈ، کیتھوڈ، اور ریزسٹر کا حساب
- [05:53] پروجیکٹ 1: LED کو آن اور آف کرنا
- [12:43] پروجیکٹ 2: پش بٹن LED کو کنٹرول کرتا ہے
- [17:13] پروجیکٹ 3: پش بٹن LED کو آن اور آف ٹوگل کرتا ہے
- [20:12] پروجیکٹ 4: LED کو فیڈ کرنا
- [23:20] پروجیکٹ 5: پش بٹن کے ساتھ LED کو فیڈ کرنا
- [27:32] پروجیکٹ 6: دو LEDs کے ساتھ سی سا
- [30:47] پروجیکٹ 7: پانچ LEDs کے ساتھ واکنگ لائٹ
- [36:41] پروجیکٹ 8: پش بٹن سے آگے بڑھنے والی واکنگ لائٹ
- [42:25] پروجیکٹ 9: پوٹینشیومیٹر کے ساتھ LED وولٹیج لیول میٹر
- [49:25] پروجیکٹ 10: Arduino ٹریفک لائٹ
This code has not been parsed yet. Please return to the admin panel to parse it.
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزونSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
ایمیزون
-
ایمیزون
-
ایمیزون
وسائل اور حوالہ جات
-
دستاویزاتDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
باہرونی
-
باہرونی
-
باہرونی
فائلیں📁
آرڈوینو لائبریریاں (زپ)
-
SunFounder کا 3-in-1 اسمارٹ کار لرننگ کٹ سورس کوڈ
3in1-kit-main-v2.zip12.80 MB
صارف کا دستی کتاب
-
سن فاؤنڈر 3-ان-1 آردوینو اسمارٹ کار اسمبلی دستییہ دستاویز سن فاؤنڈر 3-ان-1 آردوینو اسمارٹ کار کی مرحلہ وار اسمبلی دکھاتی ہے
SunFounder_car_assembly_manual.pdf1.20 MB