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

درس ۹۸-۶: بازی LED الاکلنگی با آردوینو

درس ۹۸-۶: بازی LED الاکلنگی با آردوینو

پروژه LED الاکلنگی یک تمرین کلاسیک مبتدی است که یکی از مهم‌ترین مفاهیم برنامه‌نویسی آردوینو را آموزش می‌دهد: ایجاد تناوب دو خروجی در یک ریتم زمان‌بندی‌شده. تنها با استفاده از دو LED، دو مقاومت و چند سیم جامپر، مداری خواهید ساخت که در آن یک LED سبز و یک LED قرمز به‌نوبت روشن می‌شوند و حرکت بالا و پایین الاکلنگ زمین بازی را شبیه‌سازی می‌کنند. این ساخت ساده است، اما بلوک‌های اصلی سازنده — تعریف پایه‌ها، ثابت‌های زمان‌بندی و فراخوانی‌های متوالی digitalWrite() — را معرفی می‌کند که تقریباً در هر اسکچ آردوینویی که می‌نویسید ظاهر می‌شوند.

two LEDs with resistor on breadboard connected to Arduino
two LEDs with resistor on breadboard connected to Arduino

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

  • چراغ‌های نشانگر متناوب — یک جفت «ایمن / هشدار» روی یک پنل کنترل که به‌طور متناوب جابه‌جا می‌شوند.
  • شبیه‌سازی تقاطع راه‌آهن — دو لامپ که با نزدیک شدن قطار به‌صورت متناوب چشمک می‌زنند.
  • تابلوی جهت دو خطه — نمایشگر فلش «از این طرف برو / از آن طرف برو» برای یک راهرو یا پارکینگ.
  • تزئینات تعطیلات — LEDهای قرمز و سبز که برای یک جلوه چشمک‌زن جشن، جای خود را عوض می‌کنند.
  • پایه یادگیری — مهارت‌های زمان‌بندی و توالی در اینجا همان مهارت‌هایی هستند که بعداً برای چراغ‌های راهنمایی، چراغ‌های عابر پیاده و انیمیشن‌های چند LED استفاده خواهید کرد.

نحوه کار جلوه الاکلنگی

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

مقاومت مهم است. یک LED کوچک معمولی تقریباً 2 V ولتاژ و حدود 10 mA جریان می‌خواهد. اگر آردوینو شما 5 V تأمین کند، 3 V باقی‌مانده باید توسط مقاومت افت کند. با استفاده از قانون اهم، R = V / I = 3 V / 0.01 A = 300 Ω. هر مقداری از حدود 300 Ω تا 1000 Ω کار خواهد کرد — مقادیر بالاتر به‌سادگی LED را کم‌نورتر می‌کنند (در ویدیو در 03:49).

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

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

  • 1 × برد آردوینو (Uno، Nano، Mega یا مشابه)
  • 2 × LED — یکی قرمز، یکی سبز (هر دو رنگی کار می‌کند)
  • 2 × مقاومت، 300 Ω تا 1000 Ω (220 Ω یا 330 Ω انتخاب‌های رایجی هستند)
  • 1 × بردبورد
  • سیم‌های جامپر (سیم‌های دوپونت)
  • کابل USB برای برنامه‌ریزی و برق

همین است — بدون دکمه فشاری، بدون پتانسیومتر، بدون حساس(حس کننده). این عمداً کم‌ترین فهرست قطعات ممکن است تا بتوانید کاملاً روی منطق شِفر (کود) تمرکز کنید.

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

Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw

سیم‌کشی متقارن و آسان برای دنبال کردن است. هر دو LED را در بردبورد قرار دهید. آند (پایه بلندتر) LED سبز را به پایه 2 آردوینو و آند LED قرمز را به پایه 3 آردوینو متصل کنید. هر کاتد (پایه کوتاه‌تر) به یک سر مقاومت خودش متصل می‌شود و سر دیگر هر دو مقاومت به یک ریل مشترک می‌پیوندد که به پایه GND آردوینو می‌رود (در ویدیو در 27:45).

از آنجا که هر دو LED ریل زمین مشترک دارند، فقط یک سیم زمین از بردبورد به آردوینو نیاز است. دو سیم سیگنال — یکی به پایه 2، یکی به پایه 3 — تنها اتصالاتی هستند که بین دو LED تغییر می‌کنند.

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

اسکچ عمداً کوتاه است تا هر خط معنادار باشد. در اینجا بخش‌هایی که واقعاً می‌خواهید تنظیم کنید آورده شده است:

تعریف پایه‌ها

const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED

این دو ثابت به آردوینو می‌گویند که LEDها به کدام پایه‌ها متصل هستند. اگر LEDهای خود را به پایه‌های دیگری سیم‌کشی کرده‌اید — مثلاً پایه 8 و پایه 9 — این تنها جایی است که باید تغییر دهید. کلمه کلیدی const به این معناست که مقدار برای طول عمر برنامه ثابت است و نمی‌تواند بعداً به‌طور تصادفی بازنویسی شود.

ثابت زمان‌بندی

const int ON_TIME = 500;

این مقدار واحد کنترل می‌کند که هر LED چه مدت روشن بماند، بر حسب میلی‌ثانیه. مقدار پیش‌فرض 500 یعنی هر LED به مدت نیم ثانیه روشن است، بنابراین یک چرخه کامل سبز-سپس-قرمز یک ثانیه طول می‌کشد. آن را به 200 کاهش دهید برای چشمک‌زدن سریع، یا آن را به 1000 افزایش دهید برای ریتمی آهسته و deliberate یک ثانیه به ازای هر LED (در ویدیو در 30:17). چون هر دو LED این ثابت را به اشتراک می‌گذارند، همیشه همگام می‌مانند — الاکلنگ متعادل باقی می‌ماند.

راه‌اندازی

در داخل setup()، دو پایه با pinMode() به عنوان خروجی تعریف می‌شوند، و نمایشگر مسلسل با نرخ 9600 باد شروع می‌شود تا بتوانید پیام‌های وضعیت LED را که رد می‌شوند تماشا کنید. این فقط یک بار، هنگام روشن شدن برد، اجرا می‌شود.

حلقه

تابع loop() جایی است که الاکلنگ اتفاق می‌افتد. چهار عمل را به ترتیب انجام می‌دهد: LED سبز را روشن می‌کند، ON_TIME میلی‌ثانیه صبر می‌کند، آن را خاموش می‌کند، سپس همین کار را برای LED قرمز انجام می‌دهد. وقتی حلقه به پایان می‌رسد، به طور خودکار از ابتدا شروع می‌شود — این تمام رفتار "الاکلنگ" است. هیچ متغیر وضعیتی و هیچ شرطی برای بررسی وجود ندارد، زیرا الگو کاملاً ترتیبی است.

پروژه زنده و نمایش

پس از آپلود شِفر (کود)، خواهید دید که LED سبز به مدت نیم ثانیه روشن می‌شود، سپس LED قرمز، سپس دوباره سبز، بی‌پایان. باز کردن نمایشگر مسلسل (ابزارها → نمایشگر مسلسل، یا Ctrl+Shift+M) نشان می‌دهد "Green LED ON" و "Red LED ON" هنگام اجرای الگو چاپ می‌شوند، که روشی handy برای تأیید مطابقت زمان‌بندی با آنچه تنظیم کرده‌اید است.

سعی کنید ON_TIME را به 200 تغییر دهید و دوباره آپلود کنید — LEDها به طور قابل توجهی سریع‌تر جابجا می‌شوند. آن را به 1000 تنظیم کنید و الاکلنگ به یک تناوب آهسته و deliberate تبدیل می‌شود. همچنین می‌توانید آردوینو را از USB جدا کنید و آن را با باتری یا آداپتور 5 V تغذیه کنید؛ اسکچ به طور یکسان اجرا می‌شود زیرا قبلاً در حافظه برد ذخیره شده است.

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

فصل‌ها

  • [00:00] مروری بر 10 پروژه LED آردوینو
  • [01:22] معرفی دوره گام به گام آردوینو
  • [02:29] درک LEDها: نماد، آند و کاتد
  • [03:49] محاسبه مقاومت سری LED با قانون اهم
  • [27:32] معرفی پروژه LED الاکلنگی
  • [27:45] نمودار سیم‌کشی برای پروژه الاکلنگی
  • [28:28] توضیح شِفر (کود) الاکلنگی
  • [30:06] نمایش الاکلنگ با زمان‌بندی‌های مختلف
  • [30:47] مروری بر پروژه نور متحرک
  • [36:41] نور متحرک کنترل‌شده توسط دکمه فشاری
  • [42:25] نوار ولتاژ LED با پتانسیومتر
  • [49:25] پروژه چراغ راهنمایی آردوینو

تصاویر

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
330_ohm_resistor
330_ohm_resistor
دو LED با مقاومت روی بردبورد متصل به آردوینو
دو LED با مقاومت روی بردبورد متصل به آردوینو
938-Lessson 98-LED-6: Arduino code two LED, See-saw
زبان: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

فایل‌ها📁

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

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