درس ۹۸-۶: بازی LED الاکلنگی با آردوینو
پروژه LED الاکلنگی یک تمرین کلاسیک مبتدی است که یکی از مهمترین مفاهیم برنامهنویسی آردوینو را آموزش میدهد: ایجاد تناوب دو خروجی در یک ریتم زمانبندیشده. تنها با استفاده از دو LED، دو مقاومت و چند سیم جامپر، مداری خواهید ساخت که در آن یک LED سبز و یک LED قرمز بهنوبت روشن میشوند و حرکت بالا و پایین الاکلنگ زمین بازی را شبیهسازی میکنند. این ساخت ساده است، اما بلوکهای اصلی سازنده — تعریف پایهها، ثابتهای زمانبندی و فراخوانیهای متوالی digitalWrite() — را معرفی میکند که تقریباً در هر اسکچ آردوینویی که مینویسید ظاهر میشوند.
از آنجا که الگوی الاکلنگی در واقع فقط «یکی را روشن کن، خاموش کن، دیگری را روشن کن، خاموش کن، تکرار کن» است، همین ساختار به دهها کاربرد عملی گسترش مییابد. در اینجا چند ایده برای جرقه زدن به تخیل شما آورده شده است:
- چراغهای نشانگر متناوب — یک جفت «ایمن / هشدار» روی یک پنل کنترل که بهطور متناوب جابهجا میشوند.
- شبیهسازی تقاطع راهآهن — دو لامپ که با نزدیک شدن قطار بهصورت متناوب چشمک میزنند.
- تابلوی جهت دو خطه — نمایشگر فلش «از این طرف برو / از آن طرف برو» برای یک راهرو یا پارکینگ.
- تزئینات تعطیلات — 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 برای برنامهریزی و برق
همین است — بدون دکمه فشاری، بدون پتانسیومتر، بدون حساس(حس کننده). این عمداً کمترین فهرست قطعات ممکن است تا بتوانید کاملاً روی منطق شِفر (کود) تمرکز کنید.
راهنمای سیمکشی
سیمکشی متقارن و آسان برای دنبال کردن است. هر دو 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 تغذیه کنید؛ اسکچ به طور یکسان اجرا میشود زیرا قبلاً در حافظه برد ذخیره شده است.
پروژههای مرتبط از این ویدیو
- درس 98-1: چگونه یک LED را با آردوینو روشن و خاموش کنیم
- درس 98-2: چگونه یک LED را با استفاده از دکمه فشاری با آردوینو روشن و خاموش کنیم
- درس 98-3: چگونه یک LED تاگل را با استفاده از دکمه فشاری با آردوینو روشن/خاموش کنیم
- درس 98-4: محو کردن نور LED با استفاده از آردوینو: کنترل روشنایی
- درس 98-5: محو کردن نور هنگام فشردن دکمه با استفاده از آردوینو
- درس 98-7: نور متحرک با استفاده از آردوینو و 5 LED
- درس 98-8: نور متحرک با دکمه فشاری و LEDها با آردوینو
- درس 98-9: سطحسنج ولتاژ LED با استفاده از آردوینو یا نور متحرک با پتانسیومتر
- درس 98-10: چراغ راهنمایی آردوینو
فصلها
- [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] پروژه چراغ راهنمایی آردوینو
This code has not been parsed yet. Please return to the admin panel to parse it.
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازونSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
آمازون
-
آمازون
-
آمازون
منابع و مراجع
-
مستنداتمستندات برای کیت یادگیری ۳ در ۱ اینترنت اشیاء/ماشین هوشمند/سانفاندترdocs.sunfounder.com
-
خارجی
-
خارجی
فایلها📁
کتابخانههای آردوینو (zip)
-
شِفر (کود) منبع کیت یادگیری خودرو هوشمند ۳ در ۱ سانفاندرز
3in1-kit-main-v2.zip12.80 MB
راهنمای کاربر
-
راهنمای مونتاژ ماشین هوشمند 3-in-1 آردوینو SunFounderاین سند مونتاژ گام به گام ماشین هوشمند 3-in-1 آردوینو SunFounder را نشان میدهد
SunFounder_car_assembly_manual.pdf1.20 MB