کوڈ تلاش کریں

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

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

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

ایل ای ڈی-5mm-سبز

ایک بار جب آپ فیڈنگ کو سمجھ لیں، تو آپ اسے عملی تعمیرات کی ایک وسیع رینج پر لاگو کر سکتے ہیں:

  • کسی ڈیوائس پر "سانس لینے والا" اسٹیٹس انڈیکیٹر بنانا جو توجہ ہٹانے والے ٹمٹمانے کی بجائے نرمی سے دھڑکتا ہے
  • محیطی روشنی یا دن کے وقت کی بنیاد پر ایل ای ڈی نائٹ لائٹ کو خودکار طور پر مدھم کرنا
  • LCD یا OLED ڈسپلے پر بیک لائٹ کی چمک کو کنٹرول کرنا
  • چمک کی سطحوں کے درمیان ہموار منتقلی کے ساتھ موڈ لائٹنگ یا آرائشی لیمپ بنانا
  • ایک سست طلوع آفتاب الارم کلاک کی نقل کرنا جو آپ کو قدرتی طور پر جگانے کے لیے بتدریج روشن ہوتا ہے
  • چھوٹی DC موٹرز یا پنکھوں میں رفتار کا کنٹرول شامل کرنا (یہی PWM اصول لاگو ہوتا ہے)

یہ ٹیوٹوریل Robojax Arduino Step-by-Step کورس کا حصہ ہے، اور خاص طور پر 10 میں سے پروجیکٹ 4 کا احاطہ کرتا ہے: آرڈوینو کا استعمال کرتے ہوئے ایل ای ڈی لائٹ کو فیڈ کرنا۔ مکمل پروگرام مضمون کے نیچے ڈاؤن لوڈ کے لیے دستیاب ہے۔

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

330_ohm_resistor
330 اوہم 0.25 واٹ ریزسٹر

اس پروجیکٹ کے لیے پرزوں کی فہرست بہت کم ہے — اگر آپ نے پہلے کوئی آرڈوینو کا کام کیا ہے، تو آپ کے پاس غالباً پہلے سے ہی وہ سب کچھ موجود ہے جو آپ کو درکار ہے:

  • 1× آرڈوینو بورڈ (Uno، Nano، Mega، یا کوئی بھی مطابق بورڈ)
  • 1× ایل ای ڈی (5mm یا 3mm، کوئی بھی رنگ)
  • 1× ریزسٹر (200Ω سے 1000Ω — 300Ω سے 1kΩ کی رینج اچھی طرح کام کرتی ہے)
  • بریڈ بورڈ اور DuPont جمپر تاروں
  • پروگرامنگ اور پاور کے لیے USB کیبل

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

ریزسٹر کی قیمت کے لیے، ٹرانسکرپٹ (ویڈیو میں 03:49 پر) پر حساب کتاب بتاتا ہے: ایک عام ایل ای ڈی تقریباً 2V گرتی ہے اور اسے تقریباً 10mA کرنٹ کی ضرورت ہوتی ہے۔ 5V سپلائی کے ساتھ، باقی 3V ریزسٹر کے پار گرنا چاہیے، جس سے R = V/I = 3V / 0.01A = 300Ω ملتا ہے۔ عملی طور پر، 300Ω سے لے کر 1000Ω تک کچھ بھی کام کرے گا — زیادہ اقدار صرف مدھم ایل ای ڈی پیدا کرتی ہیں۔ فیڈنگ کے لیے، یہ دراصل ٹھیک ہے، کیونکہ آپ ویسے بھی چمک کو تبدیل کر رہے ہیں۔

وائرنگ گائیڈ

Arduino schematic for two LEDs see saw
دو ایل ای ڈیز سی سا کے لیے آرڈوینو اسکیمیٹک
Arduino wiring for two LEDs see saw
دو ایل ای ڈیز سی سا کے لیے آرڈوینو وائرنگ

وائرنگ اتنی ہی سادہ ہے جتنی ہو سکتی ہے۔ ایل ای ڈی کا اینوڈ ایک ریزسٹر کے ذریعے آرڈوینو پر PWM کے قابل پن سے جڑتا ہے — اس پروجیکٹ میں، پن 3۔ کیتھوڈ گراؤنڈ سے جڑتا ہے۔

خاص طور پر پن 3 کیوں؟ کیونکہ تمام آرڈوینو پن PWM کو سپورٹ نہیں کرتے۔ زیادہ تر آرڈوینو بورڈز پر، PWM کے قابل پن ٹلڈے علامت (~) سے نشان زد ہوتے ہیں — عام طور پر Uno پر پن 3، 5، 6، 9، 10، اور 11۔ اگر آپ غیر PWM پن استعمال کرتے ہیں، تو analogWrite() متغیر آؤٹ پٹ پیدا نہیں کرے گا؛ ایل ای ڈی صرف آن یا آف ہوگی۔

سرکٹ کو اس طرح جوڑیں:

  1. ایل ای ڈی کو بریڈ بورڈ میں داخل کریں، یہ نوٹ کرتے ہوئے کہ کون سی ٹانگ اینوڈ (لمبی) ہے اور کون سی کیتھوڈ (چھوٹی/فلیٹ سائیڈ) ہے۔
  2. ایل ای ڈی کے اینوڈ کو ریزسٹر کے ذریعے آرڈوینو پن 3 سے جوڑیں۔
  3. ایل ای ڈی کے کیتھوڈ کو آرڈوینو کے GND پن سے جوڑیں۔
  4. آرڈوینو کو USB کے ذریعے اپنے کمپیوٹر سے جوڑیں۔

کوڈ کی وضاحت

اس پروجیکٹ کا اسکیچ کلاسک آرڈوینو "Fade" مثال پر مبنی ہے، کچھ تبدیلیوں کے ساتھ۔ ہر لائن کی وضاحت کرنے کی بجائے، آئیے ان حصوں پر توجہ مرکوز کریں جنہیں آپ اپنے تجربات کے لیے ایڈجسٹ کرنا چاہیں گے۔

صارف کے قابل ترتیب متغیرات

کوڈ کے اوپری حصے میں، تین متغیرات پورے رویے کو کنٹرول کرتے ہیں:

int led = 3;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 3;    // how many points to fade the LED by
  • led — یہ بتاتا ہے کہ ایل ای ڈی کس پن سے منسلک ہے۔ ڈیفالٹ پن 3 ہے، لیکن آپ اسے کسی بھی PWM کے قابل پن میں تبدیل کر سکتے ہیں (آپ کے بورڈ پر ~ سے نشان زد)۔ اگر آپ ایل ای ڈی کو کسی مختلف پن پر منتقل کرتے ہیں، تو اس قدر کو اس کے مطابق اپ ڈیٹ کریں۔
  • brightness — یہ موجودہ چمک کی سطح ہے، جو 0 (بند) سے 255 (مکمل چمک) تک ہوتی ہے۔ کوڈ اسے 0 سے شروع کرتا ہے، لیکن آپ اسے اس رینج میں کہیں سے بھی شروع کر سکتے ہیں۔
  • fadeAmount — یہ تجربہ کرنے کے لیے سب سے دلچسپ ہے۔ یہ کنٹرول کرتا ہے کہ ہر چکر میں چمک کے کتنے "مراحل" طے ہوتے ہیں۔ 3 جیسی چھوٹی قدر ایک سست، بتدریج فیڈ پیدا کرتی ہے۔ 20 جیسی بڑی قدر ایل ای ڈی کو بہت تیزی سے فیڈ ان اور آؤٹ کرتی ہے۔ ٹرانسکرپٹ اس کا مظاہرہ (ویڈیو میں 22:37 پر) کرتا ہے — 5 سے 20 میں تبدیلی اثر کو ڈرامائی طور پر تیز کر دیتی ہے۔

فیڈنگ کیسے کام کرتی ہے

فیڈنگ کا بنیادی عمل loop() کے اندر دو لائنوں میں ہوتا ہے:

analogWrite(led, brightness);
brightness = brightness + fadeAmount;

لوپ کے ہر گزر میں، موجودہ چمک کی قدر analogWrite() استعمال کرتے ہوئے ایل ای ڈی پر لکھی جاتی ہے، پھر چمک کو fadeAmount سے بڑھایا جاتا ہے۔ analogWrite() فنکشن PWM استعمال کرتا ہے تاکہ اینالاگ وولٹیج کی نقل کی جا سکے — یہ پن کو تیزی سے آن اور آف کرتا ہے، اور آن ٹائم سے آف ٹائم کا تناسب محسوس ہونے والی چمک کا تعین کرتا ہے۔

جب چمک 0 یا 255 تک پہنچ جاتی ہے، تو کوڈ fadeAmount کی علامت پلٹ کر سمت تبدیل کر دیتا ہے:

if (brightness <= 0 || brightness >= 255) {
  fadeAmount = -fadeAmount;
}

یہی چیز ایل ای ڈی کو فیڈ ان، پھر فیڈ آؤٹ، پھر دوبارہ فیڈ ان کرتی ہے — ایک مسلسل سانس لینے کا چکر۔ لوپ کے آخر میں delay(30) اینیمیشن کی مجموعی رفتار کو کنٹرول کرتا ہے۔ کم تاخیر فیڈ کو تیز کرتی ہے؛ زیادہ تاخیر اسے سست کر دیتی ہے۔

قدروں کے ساتھ تجربہ کرنا

دو متغیرات آپ کو بصری اثر پر سب سے زیادہ کنٹرول دیتے ہیں:

  • fadeAmount بڑھائیں تیز، زیادہ ڈرامائی فیڈ کے لیے۔ 10 یا 20 آزمائیں۔
  • fadeAmount کم کریں سست، نرم سانس لینے کے اثر کے لیے۔ 1 یا 2 آزمائیں۔
  • delay() کی قدر ایڈجسٹ کریں رفتار تبدیل کرنے کے لیے۔ کم تاخیر پورے چکر کو تیز کرتی ہے؛ زیادہ تاخیر اسے لمبا کر دیتی ہے۔

چھوٹے fadeAmount کو مختصر تاخیر کے ساتھ ملانے سے انتہائی ہموار، تقریباً قدرتی فیڈ پیدا ہوتی ہے — محیطی روشنی کے لیے بہترین۔ بڑے fadeAmount کے ساتھ مختصر تاخیر تیز دھڑکنے کا اثر پیدا کرتی ہے۔

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

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

جب fadeAmount کو 20 میں تبدیل کیا جاتا ہے، تو ایل ای ڈی بہت تیزی سے فیڈ ان اور آؤٹ ہوتی ہے — تقریباً ٹمٹمانے کی طرح۔ جب اسے 3 پر سیٹ کیا جاتا ہے، تو فیڈ نمایاں طور پر زیادہ وقت لیتی ہے، جس سے ایک پرسکون، بتدریج منتقلی بنتی ہے۔ یہ ویڈیو میں (ویڈیو میں 23:02 پر) واضح طور پر دکھایا گیا ہے۔

اس پروجیکٹ کی خوبصورتی یہ ہے کہ آپ اپنے کوڈ کی تبدیلیوں کا اثر فوراً دیکھ سکتے ہیں — وائرنگ میں کوئی تبدیلی کی ضرورت نہیں، صرف متغیرات میں ترمیم کریں اور دوبارہ اپ لوڈ کریں۔ یہ قریبی فیڈ بیک لوپ اسے PWM اور ٹائمنگ کے باہمی تعامل کی سمجھ پیدا کرنے کا ایک بہترین طریقہ بناتا ہے۔

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

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

ابواب

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

تصاویر

Arduino wiring for LED  with resistor
Arduino wiring for LED with resistor
Arduino schematic for LED
Arduino schematic for LED
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
LED-5mm-green
LED-5mm-green
330_ohm_resistor
330_ohm_resistor
936-Lessson 98-LED-4: Arduino code to fade the LED light
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

فائلیں📁

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

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