کوڈ تلاش کریں

سبق 98-10: آرڈوینو ٹریفک لائٹ

سبق 98-10: آرڈوینو ٹریفک لائٹ

ٹریفک لائٹس ان روزمرہ نظاموں میں سے ایک ہیں جن کے بارے میں ہم شاذ و نادر ہی سوچتے ہیں — جب تک کہ ہم خود ایک نہ بنائیں۔ اس پروجیکٹ میں، آپ ایک حقیقی ٹریفک لائٹ کی ترتیب کی نقل کرنے کے لیے Arduino استعمال کریں گے: سبز آن، پھر پیلا، پھر سرخ، ہر ایک اپنی قابل ترتیب مدت کے لیے، لامحدود طور پر دہرائی جاتی ہے۔ یہ ایک بہترین ابتدائی پروجیکٹ ہے کیونکہ یہ ترتیبی وقت کی منطق، کثیر آؤٹ پٹ کنٹرول، اور آپ کے کوڈ میں لکھی گئی چیز اور جسمانی دنیا میں نظر آنے والی چیز کے درمیان تعلق سکھاتا ہے۔

حقیقی زندگی میں تین رنگوں کے ساتھ ٹریفک لائٹ

کلاس روم کے مظاہرے سے ہٹ کر، آپ یہاں جو وقت کی منطق سیکھتے ہیں وہ ہر جگہ نظر آتی ہے:

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

سب سے اچھی بات: اپ لوڈ ہونے کے بعد پوری چیز خود مختار طور پر چلتی ہے۔ آپ اپنے کمپیوٹر سے ایک بار Arduino پروگرام کرتے ہیں، پھر اسے بیٹری یا اڈاپٹر سے پاور دیتے ہیں اور یہ ہمیشہ کام کرتا ہے — PC کی ضرورت نہیں (ویڈیو میں 12:27 پر)۔

red, green and yellow leds on bread board for traffic light project
ٹریفک لائٹ پروجیکٹ کے لیے بریڈ بورڈ پر سرخ، سبز اور پیلی LEDs

ٹریفک لائٹ کیسے کام کرتی ہے

ٹریفک لائٹ دراصل تین آؤٹ پٹس کی وقت بندھی ترتیب ہے۔ Arduino ایک وقت میں ایک LED آن کرتا ہے، مقررہ تعداد میں سیکنڈ انتظار کرتا ہے، اسے بند کرتا ہے، اور اگلے پر چلا جاتا ہے۔ پھر یہ چکر دہرایا جاتا ہے۔ ویڈیو کی مثال کے وقت میں، سبز 3 سیکنڈ تک آن رہتی ہے، پیلی 1 سیکنڈ، اور سرخ 3 سیکنڈ — لیکن یہ سب کوڈ میں قابل ایڈجسٹ ہیں (ویڈیو میں 49:44 پر)۔

traffic light timing: red light
ٹریفک لائٹ کا وقت: سرخ روشنی
traffic light timing: yellow light
ٹریفک لائٹ کا وقت: پیلی روشنی
traffic light timing: green light
ٹریفک لائٹ کا وقت: سبز روشنی

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

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

اس پروجیکٹ کے پرزوں کی فہرست بہت کم ہے:

  • 1 × Arduino بورڈ (Uno، Nano، یا Mega — کوئی بھی جس میں کم از کم 3 ڈیجیٹل پن ہوں)
  • 3 × LEDs (سرخ، پیلا/نارنجی، اور سبز — مختلف رنگ اثر کو واضح کرتے ہیں)
  • 3 × ریزسٹر (300 Ω سے 1 kΩ اچھی طرح کام کرتے ہیں؛ ویڈیو میں 1 kΩ استعمال ہوا ہے)
  • 1 × بریڈ بورڈ
  • جمپر تاروں
  • اختیاری: خود مختار طور پر چلانے کے لیے لیتھیم آئن بیٹری یا 5 V پاور اڈاپٹر

ویڈیو تین واضح طور پر رنگین LEDs استعمال کرنے کی سفارش کرتی ہے تاکہ ٹریفک لائٹ کا اثر فوراً نظر آئے — ورنہ آپ کو ان پر لیبل لگانا پڑے گا (ویڈیو میں 02:04 پر)۔

LED کرنٹ کی حد بندی کو سمجھنا

ہر LED کو سیریز میں کرنٹ محدود کرنے والے ریزسٹر کی ضرورت ہوتی ہے۔ اس کی وجہ یہ ہے: ایک LED کا فارورڈ وولٹیج تقریباً مقرر ہوتا ہے (عام طور پر معیاری 5 mm LEDs کے لیے تقریباً 2 V)، اور اگر آپ اسے براہ راست 5 V سے جوڑیں تو کرنٹ بڑھ جائے گا اور اسے تباہ کر دے گا۔ ریزسٹر اضافی وولٹیج جذب کرتا ہے۔

اوہم کے قانون کا استعمال کرتے ہوئے، اگر LED 2 V گرائے اور سپلائی 5 V ہو، تو 3 V ریزسٹر کے پار گرنا چاہیے۔ تقریباً 10 mA کے ہدف کرنٹ کے ساتھ، ریزسٹر کی قیمت تقریباً 300 Ω بنتی ہے (ویڈیو میں 04:41 پر)۔ عملی طور پر، 300 Ω سے لے کر 1 kΩ تک کچھ بھی کام کرے گا — زیادہ قیمتیں صرف LED کو مدھم کر دیتی ہیں۔

وائرنگ گائیڈ

Schematic of Arduino traffic light
Arduino ٹریفک لائٹ کا اسکیمیٹک
Arduino LED traffic lights wiring
Arduino LED ٹریفک لائٹس کی وائرنگ

ہر LED ایک جیسی وائر کی جاتی ہے: انوڈ (لمبی ٹانگ) Arduino ڈیجیٹل پن سے جڑتی ہے، اور کیتھوڈ (چھوٹی ٹانگ، LED باڈی کا چپٹا رخ) ریزسٹر کے ذریعے گراؤنڈ سے جڑتی ہے۔

ویڈیو کی وائرنگ میں، سرخ LED پن 2 سے جڑتی ہے، پیلی/نارنجی LED پن 3 سے، اور سبز LED پن 4 سے (ویڈیو میں 50:50 پر)۔ تینوں ریزسٹر بریڈ بورڈ پر مشترکہ گراؤنڈ ریل شیئر کرتے ہیں۔ بریڈ بورڈ پر رنگوں کی ترتیب اہم نہیں — اہم یہ ہے کہ آپ کے کوڈ میں پن نمبر ان پنوں سے مماثل ہوں جو آپ نے واقعی استعمال کیے ہیں۔

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

کوڈ کی وضاحت

مکمل پروگرام مضمون کے نیچے دستیاب ہے۔ یہاں ہم ان حصوں پر توجہ دیں گے جنہیں آپ اپنی مرضی کے مطابق بنانا چاہیں گے۔

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

const int greenLED = 4;
const int yellowLED = 3;
const int redLED = 2;

اس کے بعد ٹائمنگ کنسٹنٹس آتے ہیں۔ یہ کنٹرول کرتے ہیں کہ ہر لائٹ کتنی دیر تک آن رہتی ہے، ملی سیکنڈز میں۔ ویڈیو میں بطور ڈیفالٹ سبز کے لیے 5000 ms، پیلی کے لیے 1000 ms، اور سرخ کے لیے 5000 ms استعمال ہوتا ہے — لیکن ڈیمو کے دوران انہیں 3 s / 1 s / 3 s، اور بعد میں 10 s / 3 s / 10 s میں تبدیل کیا گیا (ویڈیو میں 56:27 پر):

const int greenOnTime = 5000;
const int yellowOnTime = 1000;
const int redOnTime = 5000;

اپنی ٹریفک لائٹ کی تال تبدیل کرنے کے لیے، صرف ان تین اقدار میں ترمیم کریں۔ ایک سست، حقیقت پسندانہ چوراہا چاہتے ہیں؟ 10000، 3000، 10000 آزمائیں۔ تیز ڈیمو چاہتے ہیں؟ 1000، 300، 1000 آزمائیں۔

loop() کے اندر، ترتیب سیدھی ہے: سبز آن کریں، انتظار کریں، سبز آف کریں؛ پیلی آن کریں، انتظار کریں، پیلی آف کریں؛ سرخ آن کریں، انتظار کریں، سرخ آف کریں؛ پھر دوبارہ سبز پر لوپ کریں۔ سیریل مانیٹر ہر حالت کی تبدیلی کو پرنٹ کرتا ہے تاکہ آپ تصدیق کر سکیں کہ ٹائمنگ آپ کی توقع کے مطابق ہے۔

لائیو مظاہرہ

کوڈ اپ لوڈ ہونے کے بعد، آردوینو خود بخود یہ چکر چلاتا ہے۔ ویڈیو میں، سبز ایل ای ڈی پہلے روشن ہوتی ہے، پھر اس کی مدت کے بعد پیلی مختصراً آن ہوتی ہے، پھر سرخ، اور چکر فوراً دوبارہ شروع ہو جاتا ہے (ویڈیو میں 55:20 پر)۔

سیریل مانیٹر اسے متن میں ظاہر کرتا ہے — "green LED on"، "green off"، "yellow on"، وغیرہ — جو یہ تصدیق کرنے کا بہترین طریقہ ہے کہ آپ کی ٹائمنگ اقدار مطلوبہ طریقے سے کام کر رہی ہیں۔ جب آپ اسے بغیر تار کے چلانے کے لیے تیار ہوں، تو USB منقطع کریں اور لیتھیم آئن بیٹری یا 5 V اڈاپٹر جوڑیں؛ آردوینو کمپیوٹر کے بغیر چکر چلاتا رہے گا (ویڈیو میں 56:11 پر)۔

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

ابواب

  • [00:00] 10 آردوینو ایل ای ڈی پروجیکٹس کا جائزہ
  • [01:22] آردوینو مرحلہ وار کورس کا تعارف
  • [02:29] ایل ای ڈی کیا ہے: علامت، اینوڈ، اور کیتھوڈ
  • [03:49] ایل ای ڈی کرنٹ محدود کرنے والے ریزسٹر کا حساب لگانا
  • [49:25] ٹریفک لائٹ پروجیکٹ کا تعارف
  • [49:44] ٹریفک لائٹ ٹائمنگ کی وضاحت
  • [50:34] ٹریفک لائٹ کے لیے وائرنگ ڈایاگرام
  • [52:13] ٹریفک لائٹ کے کوڈ کی وضاحت
  • [54:32] سیریل مانیٹر کے ساتھ لائیو مظاہرہ
  • [55:30] ٹائمنگ اقدار کو تبدیل کرنا
  • [56:11] بیٹری پاور پر ٹریفک لائٹ چلانا

تصاویر

traffic light timing: green light
traffic light timing: green light
ٹریفک لائٹ ٹائمنگ: پیلی روشنی
ٹریفک لائٹ ٹائمنگ: پیلی روشنی
ٹریفک لائٹ ٹائمنگ: سرخ روشنی
ٹریفک لائٹ ٹائمنگ: سرخ روشنی
Arduino ٹریفک لائٹ کا اسکیمیٹک
Arduino ٹریفک لائٹ کا اسکیمیٹک
traffic_lights
traffic_lights
Arduino ایل ای ڈی ٹریفک لائٹس کی وائرنگ
Arduino ایل ای ڈی ٹریفک لائٹس کی وائرنگ
ٹریفک لائٹ پروجیکٹ کے لیے بریڈ بورڈ پر سرخ، سبز اور پیلی ایل ای ڈی
ٹریفک لائٹ پروجیکٹ کے لیے بریڈ بورڈ پر سرخ، سبز اور پیلی ایل ای ڈی
942-Lessson 98-LED-10: Arduino code traffic light
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

فائلیں📁

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

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