کوڈ تلاش کریں

سبق 98-3: Arduino کے ساتھ پش بٹن کا استعمال کرتے ہوئے ٹوگل LED کو آن/آف کیسے کریں

سبق 98-3: Arduino کے ساتھ پش بٹن کا استعمال کرتے ہوئے ٹوگل LED کو آن/آف کیسے کریں

پش بٹن ہر جگہ ہوتے ہیں — ریموٹ، آلات اور کنٹرول پینلز میں — اور جس لمحے ایک بٹن کو ایک سے زیادہ کام کرنے پڑتے ہیں، آپ کو ٹوگل منطق کی ضرورت ہوتی ہے۔ یہ پروجیکٹ آپ کو دکھاتا ہے کہ ایک پش بٹن کو کیسے بنایا جائے جو پہلے دبانے پر ایل ای ڈی کو آن کرے اور اگلے دبانے پر آف کر دے، تاکہ روشنی بالکل وہیں رہے جہاں آپ نے چھوڑی تھی۔ یہ "ایک بار دبائیں تو لاک ہو جائے، دوبارہ دبائیں تو چھوڑ دے" رویہ تقریباً ہر مینو بٹن، پاور سوئچ اور موڈ سلیکٹر کی بنیاد ہے جو آپ کبھی بنائیں گے۔

LED with resistor on breadboard connected to Arduino with a push button
بریڈ بورڈ پر ریزسٹر کے ساتھ ایل ای ڈی جو پش بٹن کے ساتھ آرڈوینو سے منسلک ہے

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

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

انسٹرکٹر ویڈیو میں اس نکتے کی براہ راست نشاندہی کرتا ہے (ویڈیو میں 19:52 پر): یہ پروجیکٹ واقعی ایل ای ڈی کے بارے میں نہیں ہے — یہ ٹوگل تکنیک کے بارے میں ہے، جسے آپ ریلے، موٹر ڈرائیور، یا کسی بھی دوسرے آؤٹ پٹ پر لاگو کر سکتے ہیں۔

ایل ای ڈی-5mm-گرین

ہارڈ ویئر اور اجزاء

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

  • ایک آرڈوینو بورڈ — 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 پر): چار پن والے ٹیکٹائل بٹن میں اندرونی طور پر جڑے پنوں کے دو جوڑے ہوتے ہیں۔ کنٹینیوٹی موڈ میں ملٹی میٹر استعمال کریں تاکہ معلوم ہو سکے کہ کون سے دو پن ایک ساتھ بیپ کرتے ہیں — وہ سوئچ کا ایک طرف ہیں۔ ایک طرف کو ان پٹ پن سے اور دوسری طرف کو گراؤنڈ سے جوڑیں۔

وائرنگ گائیڈ

Arduino schematic for LED with a push button switch
پش بٹن سوئچ کے ساتھ ایل ای ڈی کے لیے آرڈوینو اسکیمیٹک
Arduino wiring for LED with a push button switch
پش بٹن سوئچ کے ساتھ ایل ای ڈی کے لیے آرڈوینو وائرنگ

وائرنگ سادہ ایل ای ڈی اور پش بٹن سرکٹس جیسی ہی ہے، جس میں بٹن اوپر شامل کیا گیا ہے۔ ایل ای ڈی کا اینوڈ (لمبی ٹانگ) پن 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 status

pushButtonStatus ہر بار لوپ سے گزرتے وقت بٹن پن کی خام ریڈنگ کو محفوظ کرتا ہے۔ 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 کو فیڈ کرنا، سی سا پیٹرن، واکنگ لائٹ، وولٹیج بار میٹر، اور ٹریفک لائٹ — ہر ایک اپنے الگ ٹیوٹوریلز میں شامل ہیں، جو نیچے لنک کیے گئے ہیں۔

اس ویڈیو سے متعلقہ پروجیکٹس

ابواب

  • [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 ٹریفک لائٹ

تصاویر

push-button-and-finger
push-button-and-finger
Arduino schematic for LED
Arduino schematic for LED
Arduino wiring for LED with a push button switch
Arduino wiring for LED with a push button switch
Arduino schematic for LED with a push button switch
Arduino schematic for LED with a push button switch
LED-5mm-green
LED-5mm-green
بریڈ بورڈ پر ریزسٹر کے ساتھ ایل ای ڈی Arduino سے پش بٹن کے ساتھ منسلک
بریڈ بورڈ پر ریزسٹر کے ساتھ ایل ای ڈی Arduino سے پش بٹن کے ساتھ منسلک
935-Lessson 98-LED-3: Arduino code push button toggles LED ON/OFF
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

آپ کو جن چیزوں کی ضرورت ہو سکتی ہے

فائلیں📁

آرڈوینو لائبریریاں (زپ)

صارف کا دستی کتاب