شِفر (کود) جستجو

درس ۹۸-۱۰: چراغ راهنمایی آردوینو

درس ۹۸-۱۰: چراغ راهنمایی آردوینو

چراغ‌های راهنما یکی از آن سیستم‌های روزمره‌ای هستند که به‌ندرت به آن‌ها فکر می‌کنیم — تا زمانی که خودمان یکی بسازیم. در این پروژه، شما از یک آردوینو برای شبیه‌سازی یک توالی واقعی چراغ راهنما استفاده خواهید کرد: سبز روشن، سپس زرد، سپس قرمز، هر کدام برای مدت زمان قابل تنظیم خودش، و این چرخه بی‌پایان تکرار می‌شود. این یک پروژه عالی برای مبتدیان است زیرا منطق زمان‌بندی ترتیبی، کنترل چند خروجی، و رابطه بین آنچه در شِفر (کود) می‌نویسید و آنچه در دنیای فیزیکی می‌بینید را آموزش می‌دهد.

چراغ راهنما در زندگی واقعی با سه رنگ

فراتر از نمایش کلاسی، منطق زمان‌بندی که در اینجا یاد می‌گیرید همه‌جا ظاهر می‌شود:

  • ساخت یک مدل واقع‌گرایانه چراغ راهنما برای راه‌آهن مدل یا دیوراما
  • ایجاد یک سیستم نشانگر زمان‌بندی‌شده برای کارگاه یا گاراژ (مثلاً سیگنال‌های «ورود ایمن است» / «صبر کنید»)
  • یادگیری پایه‌ای برای سیگنال‌های عبور عابر پیاده با فازهای فعال‌شده با دکمه
  • نمونه‌سازی اولیه یک توالی ریلی زمان‌بندی‌شده برای وظایف صنعتی یا اتوماسیون خانگی
  • آموزش ترتیب‌دهی، زمان‌بندی و الکترونیک به کودکان با یک شیء آشنا و قابل‌شناسایی

بهترین بخش: پس از آپلود، کل مجموعه به‌صورت مستقل کار می‌کند. شما یک‌بار آردوینو را از کامپیوتر خود برنامه‌ریزی می‌کنید، سپس آن را با باتری یا آداپتور تغذیه می‌کنید و برای همیشه کار می‌کند — بدون نیاز به کامپیوتر (در ویدیو در 12:27).

red, green and yellow leds on bread board for traffic light project
ال‌ای‌دی‌های قرمز، سبز و زرد روی بردبورد برای پروژه چراغ راهنما

چراغ راهنما چگونه کار می‌کند

یک چراغ راهنما در واقع فقط یک توالی زمان‌بندی‌شده از سه خروجی است. آردوینو هر بار یک ال‌ای‌دی را روشن می‌کند، تعداد مشخصی ثانیه صبر می‌کند، آن را خاموش می‌کند و به بعدی می‌رود. سپس چرخه تکرار می‌شود. در زمان‌بندی مثال ویدیو، سبز به مدت 3 ثانیه روشن می‌ماند، زرد 1 ثانیه، و قرمز 3 ثانیه — اما همه اینها در شِفر (کود) قابل تنظیم هستند (در ویدیو در 49:44).

traffic light timing: red light
زمان‌بندی چراغ راهنما: چراغ قرمز
traffic light timing: yellow light
زمان‌بندی چراغ راهنما: چراغ زرد
traffic light timing: green light
زمان‌بندی چراغ راهنما: چراغ سبز

دلیل واقع‌گرایانه به نظر رسیدن این توالی این است که مدت زمان‌ها جریان ترافیک دنیای واقعی را بازتاب می‌دهند: سبز و قرمز طولانی‌تر هستند زیرا وسایل نقلیه به زمان نیاز دارند تا از تقاطع عبور کنند، در حالی که زرد کوتاه است زیرا فقط یک هشدار انتقالی است. می‌توانید اینها را برای مطابقت با هر سناریویی که می‌خواهید تنظیم کنید.

سخت‌افزار و قطعات

فهرست قطعات این پروژه حداقلی است:

  • 1 × برد آردوینو (Uno، Nano، یا Mega — هر چیزی با حداقل 3 پایه دیجیتال)
  • 3 × ال‌ای‌دی (قرمز، زرد/نارنجی، و سبز — رنگ‌های مختلف اثر را واضح می‌کنند)
  • 3 × مقاومت (300 Ω تا 1 kΩ خوب کار می‌کند؛ ویدیو از 1 kΩ استفاده می‌کند)
  • 1 × بردبورد
  • سیم‌های جامپر
  • اختیاری: یک باتری لیتیوم-یون یا آداپتور برق 5 ولت برای اجرای مستقل آن

ویدیو توصیه می‌کند از سه ال‌ای‌دی با رنگ‌های متمایز استفاده کنید تا اثر چراغ راهنما فوراً قابل مشاهده باشد — در غیر این صورت باید آنها را برچسب‌گذاری کنید (در ویدیو در 02:04).

درک محدودسازی جریان ال‌ای‌دی

هر ال‌ای‌دی به یک مقاومت محدودکننده جریان به‌صورت سری نیاز دارد. دلیلش این است: یک ال‌ای‌دی ولتاژ رو به جلوی تقریباً ثابتی دارد (معمولاً حدود 2 ولت برای ال‌ای‌دی‌های استاندارد 5 میلی‌متری)، و اگر آن را مستقیماً به 5 ولت وصل کنید، جریان به‌شدت افزایش می‌یابد و آن را نابود می‌کند. مقاومت ولتاژ اضافی را جذب می‌کند.

با استفاده از قانون اهم، اگر ال‌ای‌دی 2 ولت افت کند و منبع 5 ولت باشد، آنگاه 3 ولت باید در سراسر مقاومت افت کند. با جریان هدف حدود 10 میلی‌آمپر، مقدار مقاومت تقریباً 300 Ω می‌شود (در ویدیو در 04:41). در عمل، هر چیزی از 300 Ω تا 1 kΩ کار می‌کند — مقادیر بالاتر فقط ال‌ای‌دی را کم‌نورتر می‌کنند.

راهنمای سیم‌کشی

Schematic of Arduino traffic light
شماتیک چراغ راهنمای آردوینو
Arduino LED traffic lights wiring
سیم‌کشی چراغ‌های راهنمای ال‌ای‌دی آردوینو

هر ال‌ای‌دی به‌طور یکسان سیم‌کشی می‌شود: آند (پایه بلندتر) به یک پایه دیجیتال آردوینو وصل می‌شود، و کاتد (پایه کوتاه‌تر، سمت صاف بدنه ال‌ای‌دی) از طریق یک مقاومت به زمین وصل می‌شود.

در سیم‌کشی ویدیو، ال‌ای‌دی قرمز به پایه 2، ال‌ای‌دی زرد/نارنجی به پایه 3، و ال‌ای‌دی سبز به پایه 4 وصل می‌شود (در ویدیو در 50:50). هر سه مقاومت یک ریل زمین مشترک روی بردبورد دارند. ترتیب رنگ‌ها روی بردبورد مهم نیست — آنچه مهم است این است که شماره پایه‌های شِفر (کود) شما با پایه‌هایی که واقعاً استفاده کرده‌اید مطابقت داشته باشد.

یک نکته کاربردی از ویدیو: مقاومت می‌تواند در هر دو طرف LED قرار بگیرد. می‌توانید آن را بین پایه آردوینو و آند LED قرار دهید، یا بین کاتد LED و زمین — از نظر الکتریکی یکسان است (در ویدیو در 51:52).

توضیح شِفر (کود)

برنامه کامل در زیر مقاله موجود است. در اینجا روی بخش‌هایی تمرکز می‌کنیم که می‌خواهید سفارشی‌سازی کنید.

در بالای اسکچ، سه تعریف پایه هر LED را به یک پایه دیجیتال نگاشت می‌کند. اگر LEDهای خود را به پایه‌های متفاوتی سیم‌کشی کرده‌اید، این مقادیر را تغییر دهید:

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

در ادامه ثابت‌های زمان‌بندی می‌آیند. این‌ها کنترل می‌کنند که هر چراغ چه مدت روشن بماند، بر حسب میلی‌ثانیه. ویدیو به طور پیش‌فرض از 5000 میلی‌ثانیه برای سبز، 1000 میلی‌ثانیه برای زرد و 5000 میلی‌ثانیه برای قرمز استفاده می‌کند — اما در حین نمایش این مقادیر به 3 ثانیه / 1 ثانیه / 3 ثانیه و بعداً به 10 ثانیه / 3 ثانیه / 10 ثانیه تغییر یافتند (در ویدیو در 56:27):

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

برای تغییر ریتم چراغ راهنمایی خود، فقط این سه مقدار را ویرایش کنید. یک تقاطع آهسته و واقع‌گرایانه می‌خواهید؟ 10000، 3000، 10000 را امتحان کنید. یک نمایش سریع می‌خواهید؟ 1000، 300، 1000 را امتحان کنید.

در داخل loop()، توالی ساده است: سبز را روشن کن، صبر کن، سبز را خاموش کن؛ زرد را روشن کن، صبر کن، زرد را خاموش کن؛ قرمز را روشن کن، صبر کن، قرمز را خاموش کن؛ سپس به سبز برگرد. نمایشگر مسلسل هر تغییر وضعیت را چاپ می‌کند تا بتوانید تأیید کنید که زمان‌بندی با آنچه انتظار دارید مطابقت دارد.

نمایش زنده

پس از آپلود شِفر (کود)، آردوینو چرخه را به تنهایی اجرا می‌کند. در ویدیو، ابتدا LED سبز روشن می‌شود، سپس پس از مدت زمانش زرد به طور مختصر روشن می‌شود، سپس قرمز، و چرخه بلافاصله دوباره شروع می‌شود (در ویدیو در 55:20).

نمایشگر مسلسل این را به صورت متنی منعکس می‌کند — "green LED on"، "green off"، "yellow on" و به همین ترتیب — که راه عالی برای تأیید کارکرد مقادیر زمان‌بندی شما همانطور که intended است می‌باشد. وقتی آماده اجرای آن بدون اتصال هستید، USB را جدا کنید و یک باتری لیتیوم-یون یا آداپتور 5 ولت وصل کنید؛ آردوینو بدون کامپیوتر به چرخه ادامه می‌دهد (در ویدیو در 56:11).

پروژه‌های مرتبط از این ویدیو

فصل‌ها

  • [00:00] مروری بر 10 پروژه LED آردوینو
  • [01:22] معرفی دوره گام به گام آردوینو
  • [02:29] LED چیست: نماد، آند و کاتد
  • [03:49] محاسبه مقاومت محدودکننده جریان LED
  • [49:25] معرفی پروژه چراغ راهنمایی
  • [49:44] توضیح زمان‌بندی چراغ راهنمایی
  • [50:34] نمودار سیم‌کشی چراغ راهنمایی
  • [52:13] توضیح شِفر (کود) چراغ راهنمایی
  • [54:32] نمایش زنده با نمایشگر مسلسل
  • [55:30] تغییر مقادیر زمان‌بندی
  • [56:11] اجرای چراغ راهنمایی با باتری

تصاویر

traffic light timing: green light
traffic light timing: green light
traffic light timing: yellow light
traffic light timing: yellow light
traffic light timing: red light
traffic light timing: red light
Schematic of Arduino traffic light
Schematic of Arduino traffic light
traffic_lights
traffic_lights
Arduino LED traffic lights wiring
Arduino LED traffic lights wiring
red, green and yellow leds on bread board for traffic light project
red, green and yellow leds on bread board for traffic light project
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.

مواردی که ممکن است به آن‌ها نیاز داشته باشید

فایل‌ها📁

کتابخانه‌های آردوینو (zip)

راهنمای کاربر