کوڈ تلاش کریں

سبق 98-5: بٹن دبانے پر لائٹ کو فیڈ کرنا آردوینو کا استعمال کرتے ہوئے

سبق 98-5: بٹن دبانے پر لائٹ کو فیڈ کرنا آردوینو کا استعمال کرتے ہوئے

اس سبق میں آپ ایک ایسی لائٹ بنائیں گے جو کمانڈ پر مدھم ہو جاتی ہے: پش بٹن دبائیں اور ایل ای ڈی پوری چمک سے شروع ہو کر آہستہ آہستہ بند ہو جاتی ہے۔ یہ آرڈوینو میں ابتدائی افراد کے لیے سب سے مفید پیٹرنز میں سے ایک ہے کیونکہ یہ ایک ڈیجیٹل اِن پٹ (بٹن) کو پی ڈبلیو ایم اینالاگ آؤٹ پٹ (ایل ای ڈی کی چمک) کے ساتھ جوڑتا ہے، اور یہ آپ کو سکھاتا ہے کہ کسی چیز کو صرف آن اور آف کرنے کے بجائے تبدیلی کی رفتار اور ہمواری کو کیسے کنٹرول کیا جائے۔

بریڈ بورڈ پر ریزسٹر کے ساتھ ایل ای ڈی جو پش بٹن کے ساتھ آرڈوینو سے منسلک ہے
بریڈ بورڈ پر ریزسٹر کے ساتھ ایل ای ڈی جو پش بٹن کے ساتھ آرڈوینو سے منسلک ہے

مانگ پر مدھم ہونا حقیقی مصنوعات میں ہر جگہ نظر آتا ہے۔ یہاں کچھ عملی طریقے ہیں جن میں آپ یہاں سیکھی گئی چیزوں کو استعمال کر سکتے ہیں:

  • نرم بندش والی اشارے لائٹس — اس کے بجائے کہ لیمپ اچانک بند ہو جائے، جب آپ بٹن دباتے ہیں تو یہ نرمی سے مدھم ہو جاتی ہے، جو آلات اور تھری ڈی پرنٹڈ انکلوژرز پر کہیں زیادہ نکھرا ہوا لگتا ہے۔
  • نیند / اسٹینڈ بائی موڈ — ایک بٹن دبائیں اور ایک روشن اسٹیٹس ایل ای ڈی سیاہ ہو جاتی ہے تاکہ رات کو آپ کو disturb نہ کرے، جبکہ سرکٹ بجلی سے چلتا رہتا ہے۔
  • "فیڈ ٹو بلیک" اسٹیج یا ماڈل لائٹنگ — ایک ہی بٹن ایل ای ڈی اسٹرپ یا پینل کی ہموار مدھم ہونے کو متحرک کرتا ہے بجائے اچانک کٹ جانے کے۔
  • بیٹری بچانے والا فیڈ بیک — ایک لمحاتی بٹن دبانے سے آپ کو ایک روشن تصدیقی فلیش ملتی ہے جو مدھم ہو جاتی ہے، لہذا ایل ای ڈی صرف تھوڑی دیر کے لیے پوری طرح روشن رہتی ہے۔
  • انٹرایکٹو آرٹ اور پراپس — چھونے سے متحرک ہونے والا "سانس چھوڑنے" کا اثر، جو کاس پلے، ڈائیوراما، یا میوزیم ڈسپلے کے لیے مثالی ہے۔

بنیادی خیال سادہ ہے: بٹن آرڈوینو کو بتاتا ہے "ابھی مدھم ہونا شروع کرو،" اور آرڈوینو ایل ای ڈی کی چمک کو 255 (پوری) سے 0 (بند) تک چھوٹے قدموں میں کم کرتا ہے۔ چونکہ قدم چھوٹے ہیں اور تیزی سے ہوتے ہیں، آپ کی آنکھ اچانک چھلانگ کے بجائے ہموار مدھم ہونا دیکھتی ہے۔

اگر آپ نے پہلے کبھی ایل ای ڈی کو مدھم نہیں کیا، تو بنیادی چمک کا کنٹرول سبق 98-4: آرڈوینو استعمال کرتے ہوئے ایل ای ڈی لائٹ کو مدھم کرنا: چمک کا کنٹرول میں شامل ہے۔ یہ سبق براہ راست اس بنیاد پر ٹرگر کے طور پر پش بٹن شامل کر کے بنایا گیا ہے۔

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

330_ohm_resistor
330_ohm_resistor

یہ بہت کم لاگت والا بناؤ ہے — یہاں سب کچھ معیاری اسٹارٹر کٹ کا سامان ہے:

  • آرڈوینو بورڈ (اُنو، نینو، میگا، یا کوئی بھی مطابق بورڈ)
  • ایک ایل ای ڈی (5 ملی میٹر یا 3 ملی میٹر، کوئی بھی رنگ)
  • ایک پش بٹن سوئچ (لمحاتی، 4-پن ٹیکٹائل قسم اچھی طرح کام کرتی ہے)
  • ایل ای ڈی کے لیے ایک ریزسٹر — 200 Ω سے 1000 Ω تک کہیں بھی (کلاسک 220 Ω یا 330 Ω بہترین ہے)
  • بریڈ بورڈ اور ڈوپونٹ جمپر تاروں
  • پروگرامنگ کے لیے یو ایس بی کیبل (اور بیٹری یا 5 V اڈاپٹر اگر آپ چاہتے ہیں کہ یہ بغیر تار کے چلے)

ایل ای ڈی ریزسٹر پر ایک فوری نوٹ: ایل ای ڈی کو اس کے پار تقریباً 2 V اور تقریباً 10 mA کرنٹ کی ضرورت ہوتی ہے۔ 5 V سپلائی کے ساتھ، ریزسٹر کو باقی 3 V گرانا ہوتا ہے، لہذا اوہم کا قانون تقریباً 300 Ω دیتا ہے۔ 300 Ω سے لے کر 1000 Ω تک کچھ بھی کام کرے گا — زیادہ اقدار صرف ایل ای ڈی کو مدھم کر دیتی ہیں۔ ریزسٹر استعمال کرنا اختیاری نہیں ہے؛ اس کے بغیر ایل ای ڈی بہت زیادہ کرنٹ لے گی اور جل جائے گی۔

وائرنگ گائیڈ

پش بٹن سوئچ کے ساتھ ایل ای ڈی کے لیے آرڈوینو اسکیمیٹک
پش بٹن سوئچ کے ساتھ ایل ای ڈی کے لیے آرڈوینو اسکیمیٹک
پش بٹن سوئچ کے ساتھ ایل ای ڈی کے لیے آرڈوینو وائرنگ
پش بٹن سوئچ کے ساتھ ایل ای ڈی کے لیے آرڈوینو وائرنگ

وائرنگ جان بوجھ کر کم سے کم ہے۔ ایل ای ڈی کا اینوڈ (لمبی ٹانگ) ریزسٹر کے ذریعے ڈیجیٹل پن 3 سے جڑتا ہے، اور اس کا کیتھوڈ (چھوٹی ٹانگ، پیکج پر فلیٹ سائیڈ کے ساتھ) گراؤنڈ سے جاتا ہے۔ پش بٹن ڈیجیٹل پن 2 اور گراؤنڈ کے درمیان جڑتا ہے — کسی بیرونی پل-اپ ریزسٹر کی ضرورت نہیں کیونکہ کوڈ آرڈوینو کا اندرونی پل-اپ فعال کرتا ہے۔

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

پش بٹن کے لیے، اگر آپ 4-پن ٹیکٹائل سوئچ استعمال کر رہے ہیں، تو یاد رکھیں کہ پن اندرونی طور پر جوڑے ہوئے ہیں: چار پنوں میں سے دو ہمیشہ ایک ساتھ جڑے ہوتے ہیں۔ کنٹینیوٹی موڈ میں ملٹی میٹر استعمال کریں تاکہ ایک جوڑا تلاش کریں جو دبانے پر بیپ کرے، پھر ہر طرف سے ایک پن استعمال کریں۔ ایک طرف پن 2 سے جاتی ہے، دوسری گراؤنڈ سے۔

کوڈ کی وضاحت

اسکیچ مختصر ہے، اور تقریباً ہر وہ چیز جسے آپ تبدیل کرنا چاہیں گے اوپر چند لائنوں میں موجود ہے۔ یہاں صارف کے قابل ترتیب حصے ہیں:

const int pushButtonPin = 2;//وہ پن جس سے پش بٹن سوئچ منسلک ہے
const int LEDPin = 3;//وہ پن جس سے LED منسلک ہے
const int fadeAmount = 10;    // LED کو کتنے پوائنٹس تک فیڈ کرنا ہے
const int fadeSpeed = 5;//فیڈ کا وقت ملی سیکنڈز میں۔ قدر جتنی کم ہوگی، فیڈنگ اتنی ہی تیز ہوگی

pushButtonPin اور LEDPin صرف Arduino کو بتاتے ہیں کہ آپ نے چیزیں کون سے پنوں سے وائر کی ہیں۔ اگر آپ بٹن کو پن 4 پر یا LED کو پن 9 (PWM کے قابل پن) پر منتقل کریں، تو صرف ان دو نمبروں کو اپنی وائرنگ کے مطابق تبدیل کریں۔ نوٹ کریں کہ LED پن لازمی PWM کو سپورٹ کرے — Uno پر اس کا مطلب ہے پن 3، 5، 6، 9، 10، یا 11 — کیونکہ فیڈنگ کے لیے analogWrite() درکار ہے۔

fadeAmount کنٹرول کرتا ہے کہ ہر چمک کا قدم کتنا بڑا ہے۔ چمک 0 سے 255 تک چلتی ہے، لہٰذا fadeAmount 10 کا مطلب ہے کہ LED تقریباً 25 قدموں میں مدھم ہوتی ہے۔ بڑا نمبر فیڈ کو موٹا اور تیز بناتا ہے؛ چھوٹا نمبر اسے ہموار اور سست بناتا ہے۔

fadeSpeed ہر قدم کے درمیان ملی سیکنڈز میں تاخیر ہے۔ یہ اس بات کا واحد سب سے اہم کنٹرول ہے کہ اثر کیسا محسوس ہوتا ہے۔ 5 ms کی قدر تیز، پھرتیلی فیڈ دیتی ہے؛ 30 ms یا اس سے زیادہ کی قدر سست، پرتعیش مدھم روشنی دیتی ہے۔ fadeAmount کے ساتھ مل کر، یہ دو قدریں آپ کو فیڈ کو بالکل اسی انداز میں ڈھالنے دیتی ہیں جو آپ چاہتے ہیں۔

ایک اندرونی متغیر بھی ہے جس کے بارے میں جاننا مفید ہے:

int brightness = 255;    // LED کتنی روشن ہے
int pushButtonStatus = 0; // پن 2 سے پش ویلیو

brightness 255 سے شروع ہوتی ہے، یعنی جب بھی آپ بٹن دباتے ہیں LED مکمل چمک سے شروع ہوتی ہے۔ اگر آپ چاہتے ہیں کہ فیڈ کسی مدھم نقطے سے شروع ہو — مثلاً، آدھی چمک — تو اسے 128 کر دیں۔

منطق خود اس طرح کام کرتی ہے: لوپ بٹن کو پڑھتا ہے۔ اگر یہ دبایا گیا ہو (LOW، اندرونی پل-اپ کی وجہ سے)، تو ایک while لوپ اس وقت تک چلتا ہے جب تک brightness صفر سے اوپر ہو۔ اس لوپ کے اندر Arduino موجودہ brightness کو LED پر لکھتا ہے، fadeAmount کو تفریق کرتا ہے، fadeSpeed ملی سیکنڈز انتظار کرتا ہے، اور دہراتا ہے۔ جب بٹن نہ دبایا گیا ہو، تو LED کو صرف 0 پر لکھا جاتا ہے اور وہ بند رہتی ہے۔

ایک اہم تفصیل: اندرونی پل-اپ کا مطلب ہے کہ پن HIGH پڑھتا ہے جب بٹن نہ دبایا گیا ہو اور LOW جب یہ دبایا گیا ہو۔ اسی لیے کوڈ دبانے کا پتہ لگانے کے لیے LOW کی جانچ کرتا ہے۔ اگر آپ کبھی بیرونی پل-ڈاؤن ریزسٹر پر منتقل ہوں، تو آپ کو اس موازنے کو HIGH میں تبدیل کرنا ہوگا۔

لائیو پروجیکٹ اور مظاہرہ

ایک بار اپلوڈ ہونے کے بعد، رویہ فوری اور تسلی بخش ہوتا ہے۔ بٹن دبائیں اور LED مکمل چمک پر چلی جاتی ہے، پھر آپ کے کنٹرول کردہ عرصے میں نظر آنے والی مدھم روشنی سے بالکل ختم ہو جاتی ہے۔ بٹن چھوڑیں اور LED بند ہو جاتی ہے؛ دوبارہ دبائیں اور فیڈ مکمل چمک سے دوبارہ شروع ہوتی ہے۔

ویڈیو میں فیڈ کو کئی سیٹنگز پر دکھایا گیا ہے تاکہ آپ فرق سن اور دیکھ سکیں۔ fadeAmount = 20 کے ساتھ فیڈ تیز اور کھردری ہے — یہ چند نظر آنے والے قدموں میں صفر تک پہنچ جاتی ہے۔ fadeAmount = 10 پر آنا اسے کافی ہموار کر دیتا ہے، اور fadeAmount = 3 پر جانا فیڈ کو نمایاں طور پر طویل کر دیتا ہے اور یہ تقریباً مسلسل لگتی ہے۔ fadeSpeed قدر کا بھی اتنا ہی ڈرامائی اثر ہے: اسے 1 ms پر سیٹ کرنا فیڈ کو تقریباً فوری بنا دیتا ہے، جبکہ بڑی قدریں اسے لمبا کر دیتی ہیں۔

یہ تجربہ کریں: fadeAmount = 5 اور fadeSpeed = 30 سیٹ کریں۔ آپ کو ایک سست، نرم مدھم روشنی ملے گی جو سوتی ہوئی روشنی جیسی لگے گی۔ پھر سخت، تیز کٹ کے لیے fadeAmount = 50 اور fadeSpeed = 1 سیٹ کریں۔ کوئی بھی "غلط" نہیں — یہ مکمل طور پر اس موڈ کے بارے میں ہے جو آپ چاہتے ہیں۔

اسی بٹن کے ٹوگل رویے کا احاطہ الگ سے Lesson 98-3: How to Turn On/Off a Toggle LED Using a Push Button with Arduino میں کیا گیا ہے، اور سادہ دبائیں-تو-روشن ورژن Lesson 98-2: How to Turn On and Off an LED Using a Push Button with Arduino میں ہے۔

چونکہ فیڈ ایک لمحاتی رابطے سے شروع ہوتی ہے، یہی سرکٹ LED کے بجائے ریلے یا MOSFET چلانے کے لیے قدرتی طور پر موزوں ہے — آپ 12 V لیمپ، موٹر کے سافٹ-اسٹارٹ، یا ہیٹنگ عنصر کے وارم-اپ کو فیڈ کر سکتے ہیں۔ بٹن صرف ٹرگر ہے؛ آپ کیا فیڈ کرتے ہیں یہ آپ پر منحصر ہے۔

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

ابواب

  • [00:00] 10 ایل ای ڈی پروجیکٹس کا جائزہ
  • [01:00] آرڈوینو مرحلہ وار کورس کا تعارف
  • [02:29] ایل ای ڈی کی بنیادی باتیں: علامات، پولیرٹی، اور کرنٹ
  • [03:49] اوہم کے قانون سے ایل ای ڈی ریزسٹر کا حساب لگانا
  • [05:53] پروجیکٹ 1: ایل ای ڈی کو آن اور آف کرنا
  • [12:43] پروجیکٹ 2: پش بٹن کے ساتھ ایل ای ڈی
  • [17:13] پروجیکٹ 3: پش بٹن سے ایل ای ڈی کو ٹوگل کرنا
  • [20:12] پروجیکٹ 4: ایل ای ڈی کو فیڈ کرنا
  • [23:20] پروجیکٹ 5: پش بٹن کے ساتھ ایل ای ڈی کو فیڈ کرنا
  • [27:32] پروجیکٹ 6: سی سا ایل ای ڈی
  • [30:47] پروجیکٹ 7: واکنگ لائٹ
  • [36:41] پروجیکٹ 8: پش بٹن کے ساتھ واکنگ لائٹ
  • [42:25] پروجیکٹ 9: ایل ای ڈی وولٹیج لیول میٹر
  • [49:25] پروجیکٹ 10: آرڈوینو ٹریفک لائٹ

تصاویر

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
330_ohm_resistor
330_ohm_resistor
بریڈ بورڈ پر ریزسٹر کے ساتھ ایل ای ڈی Arduino سے پش بٹن کے ساتھ منسلک
بریڈ بورڈ پر ریزسٹر کے ساتھ ایل ای ڈی Arduino سے پش بٹن کے ساتھ منسلک
937-Lessson 98-LED-5: Arduino code to fade the LED when push button is pressed
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

فائلیں📁

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

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