نخستین مدار خارجی — LED روی بردبورد
نخستین مدار خارجی خود را روی برد سرهمبندی میسازید؛ قطبیت LED، انتخاب مقاومت با فرمول رسمی، سیمکشی گامبهگام و چشمکزنکردن LED خارجی با پین ۸.
آنچه در این درس میآموزید
- قطبیت LED را با پایهٔ بلند و کوتاه تشخیص دهید و بدانید چرا جهت اتصال مهم است
- ساختار برد سرهمبندی و سیمهای رابط را برای ساختن مدار بهکار بگیرید
- مقدار مقاومت محدودکنندهٔ جریان را با فرمول رسمی حساب کنید
- LED خارجی را به پین ۸ سیمکشی کنید و با همان توابع Blink چشمکزنش کنید
فهرست مطالب
LED داخلی برد را چشمکزن کردید، اما برنامهٔ واقعی باید چیزهای بیرون از برد را کنترل کند. در این درس نخستین مدار خارجی خود را میسازید: یک LED و یک مقاومت روی «برد سرهمبندی» (Breadboard)، وصلشده به پین ۸ آردوینو. کد تقریباً همان کد درس قبل است؛ تازگی کار در سختافزار است — تشخیص پایههای LED، حسابکردن مقاومت و سیمکشی درست. این مدار پایهٔ تقریباً همهٔ پروژههای بعدی این دوره است.
ابزارهای مورد نیاز
| قطعه | مقدار / مشخصات | تعداد |
|---|---|---|
| برد آردوینو Uno | ATmega328P | ۱ |
| LED استاندارد ۵ میلیمتری | هر رنگ؛ ولتاژ مستقیم حدود ۲ ولت | ۱ |
| مقاومت (Resistor) | ۲۲۰ اهم (نوارهای رنگی: قرمز، قرمز، قهوهای) | ۱ |
| برد سرهمبندی | حداقل ۱۷۰ سوراخ | ۱ |
| سیم رابط (Jumper Wire) | نری به نری | ۳ |
| کابل USB | برای آپلود و تغذیه | ۱ |
LED را بشناسید: آند و کاتد
LED مخفف «دیود نورانی» (Light Emitting Diode) است و دیود مثل دریچهٔ یکطرفه رفتار میکند: جریان فقط در یک جهت از آن عبور میکند. به همین دلیل LED «قطبدار» است و دو پایهٔ آن نام دارند:
- آند (Anode) — پایهٔ مثبت؛ پایهٔ بلندتر. جریان از این سمت وارد LED میشود.
- کاتد (Cathode) — پایهٔ منفی؛ پایهٔ کوتاهتر. کنار آن، لبهٔ بدنهٔ LED هم یک بریدگی کوچک دارد تا اگر پایهها بریده شده باشند، باز هم کاتد را بشناسید.
اگر LED برعکس وصل شود نمیسوزد، فقط روشن نمیشود؛ پس اگر مدار سالم بود ولی LED خاموش ماند، اول قطبیت را برعکس کنید.
برد سرهمبندی چطور کار میکند؟
برد سرهمبندی بردی سوراخدار است که برای ساختن مدار بدون لحیم بهکار میرود و قطعهها فقط فشاریده میشوند. زیر هر سوراخ یک کلیپ فلزی هست و سوراخها بیدلیل کنار هم نیستند؛ اتصالهای داخلی دارد:
- ردیفهای کناری (Rail) — دو ردیف طولی در دو لبهٔ برد که با خط قرمز (مثبت) و آبی (زمین) مشخصاند. هر ردیف در طول کل برد یکقطعهٔ متصل است؛ معمولاً ۵ ولت را به ریل قرمز و GND را به ریل آبی میدهیم تا هر قطعهای به آن دسترسی داشته باشد.
- ستونهای میانی (Terminal Strip) — ناحیهٔ اصلی برد. در هر ستون، پنج سوراخِ همسوی یک سمت، بههم متصلاند و شیار میانی وسط، دو سمت را از هم جدا میکند. پایههای یک قطعه را در دو سمت شیار میزنیم تا به هم اتصال کوتاه ندهند.
پس برای وصلکردن دو سیم به هم، هر دو را در یک ستون فشار میدهید؛ نه در دو ستون جدا. سیمهای رابط هم فقط سیمهایی با سر پیندارند که آردوینو، بردبورد و قطعهها را به هم میرسانند.
انتخاب مقاومت با فرمول رسمی
مقاومت (Resistor) جریان را محدود میکند. برای حسابکردن مقدارش، طبق قانون اهم، مقاومت لازم برابر است با:
سه چیز را جایگذاری میکنیم: ولتاژ تغذیه برابر ۵ ولت (خروجی پین آردوینو)، افت ولتاژ مستقیم LED برابر ولت (برای LEDهای معمولی قرمز)، و جریان هدف آمپر یعنی ۱۰ میلیآمپر که برای LED و برای پین آردوینو مقدار امن و کافی است:
مقاومت ۳۰۰ اهم استاندارد نیست؛ نزدیکترین مقدار رایجِ پایینتر ۲۲۰ اهم است که جریان را حدود ۱۳٫۶ میلیآمپر میکند — هم برای LED روشن است و هم کاملاً امن. پس ۲۲۰ اهم انتخاب ماست.
سیمکشی مدار
قبل از سیمکشی، کابل USB را از برد بکشید تا برد بیبرق باشد. جدول زیر کل مدار را میسازد:
| از | به | توضیح |
|---|---|---|
| پین GND آردوینو | ریل زمین (آبی) بردبورد | زمین مشترک مدار |
| پین ۸ آردوینو | یک پایهٔ مقاومت ۲۲۰ اهم | خروجی برنامه |
| پایهٔ دیگر مقاومت | آند LED (پایهٔ بلند) | محدودکنندهٔ جریان، همان ستون بردبورد |
| کاتد LED (پایهٔ کوتاه) | ریل زمین (آبی) بردبورد | مسیر بازگشت جریان |
گامبهگام: مقاومت را طوری فشار دهید که یک پایه در یک ستونِ ناحیهٔ اصلی و پایهٔ دیگر در ستون کناری باشد؛ آند LED را در همان ستون دوم بزنید تا با مقاومت متصل شود؛ کاتد را به ریل آبی بزنید؛ دو سیم رابط هم پین ۸ و پین GND آردوینو را به بردبورد برسانند. مقاومت را میتوانید قبل از آند هم بگذارید (بین پین ۸ و آند) یا بعد از کاتد؛ جای مقاومت در مدار سری فرقی در نتیجه ندارد، مهم این است که در مسیر باشد.
اسکچ چشمکزن LED خارجی
این اسکچ را بنویسید و آپلود کنید:
const int LED_PIN = 8; // The external LED is connected to pin 8
void setup() {
pinMode(LED_PIN, OUTPUT); // Set pin 8 as an output
}
void loop() {
digitalWrite(LED_PIN, HIGH); // Turn the external LED on
delay(1000); // Keep it on for one second
digitalWrite(LED_PIN, LOW); // Turn the external LED off
delay(1000); // Keep it off for one second
}توضیح خطبهخط:
const int LED_PIN = 8;— شمارهٔ پین را در یک ثابت با نام گویا نگه میداریم؛ اگر روزی LED را به پین دیگری بردادیم، فقط همین یک خط عوض میشود. ثابتها را در درسهای برنامهنویسی کامل میخوانید.pinMode(LED_PIN, OUTPUT)— پین ۸ را درsetup()خروجی معرفی میکند؛ بدون این خط پین بهطور پیشفرض ورودی است و LED روشن نمیشود.digitalWrite(LED_PIN, HIGH)— پین ۸ به ۵ ولت میرود؛ جریان از پین، مقاومت، آند تا کاتد و زمین جاری میشود و LED روشن میشود.- دو خط بعدی با
delay(1000)مدت روشنماندن را یک ثانیه میکنند. digitalWrite(LED_PIN, LOW)— پین صفر ولت میشود و اختلاف ولتاژ صفر است؛ پس جریان قطع و LED خاموش میشود.delay(1000)دوم، مدت خاموشی را تعیین میکند و بعدloop()از اول اجرا میشود.
نتیجهٔ فیزیکی: LED روی بردبورد باید دقیقاً مثل LED داخلیِ درس قبل، هر ثانیه یک بار روشن و خاموش شود — اینبار با مداری که خودتان ساختهاید.
اشتباهات رایج و عیبیابی
| نشانه | علت رایج | راهحل |
|---|---|---|
| LED اصلاً روشن نمیشود | قطبیت برعکس است یا پایهها در ستونهای اشتباه بردبورد هستند | آند (پایهٔ بلند) باید سمت مقاومت و کاتد سمت زمین باشد؛ سیمکشی را ردیفبهردیف با جدول بالا چک کنید و مطمئن شوید هر اتصال واقعاً در یک ستون است |
| LED همیشه روشن است و خاموش نمیشود | اتصال کوتاه: دو پایهٔ LED در یک ستوناند یا سیم GND بهجای پین ۸ به ریل وصل شده | کابل USB را بکشید؛ پایههای LED را به دو سمت شیار میانی ببرید و سیمها را از پینهای آردوینو دوباره چک کنید |
| نور LED بسیار کم است | مقاومت با مقدار خیلی بالا (مثلاً ۱۰ هزار اهم بهجای ۲۲۰ اهم) در مدار است | نوارهای رنگی مقاومت را چک کنید و ۲۲۰ اهم بگذارید |
| LED داخلی برد میزند ولی LED خارجی نه | کد هنوز LED_BUILTIN را کنترل میکند یا سیم پین ۸ جدا افتاده |
اسکچ بالا را با LED_PIN = 8 آپلود کنید و سیم پین ۸ را جا بزنید |
تمرینها
تمرین
تمرین ۱ — چشمک دو برابر سریعتر روی پین ۹
LED را از پین ۸ به پین ۹ منتقل کنید و اسکچ را طوری تغییر دهید که LED در هر دوره ۵۰۰ میلیثانیه روشن و ۵۰۰ میلیثانیه خاموش بماند. کدام دو چیز را عوض میکنید؟
نمایش راهحل
دو تغییر لازم است: سیمکشی و کد. در سیمکشی فقط سیمِ رابطِ سمت آردوینو را از پین ۸ به پین ۹ میبرید؛ مقاومت و LED سر جایشان میمانند. در کد هم مقدار ثابت و هر دو delay عوض میشود:
const int LED_PIN = 9; // The external LED moved to pin 9
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}پس از آپلود، LED باید دو برابر سریعتر از قبل بزند. توجه کنید که pinMode در setup() حالا پین ۹ را خروجی میکند؛ اگر فقط سیم را جابهجا میکردید و LED_PIN را عوض نمیکردید، LED خاموش میماند.
:::
خلاصه
- LED قطبدار است: پایهٔ بلند آند (مثبت) و پایهٔ کوتاه کاتد (منفی)؛ برعکس شود روشن نمیشود.
- برد سرهمبندی در هر ستون پنج سوراخ متصل دارد و ریلهای لبه برای ۵ ولت و زمین است.
- مقاومت محدودکننده با فرمول حساب میشود؛ برای LED با ۵ ولت، ۲۲۰ اهم انتخاب استاندارد است.
- جریان مجاز هر پین ۲۰ میلیآمپر است و حد مطلق ۴۰ میلیآمپر؛ LED بدون مقاومت ممنوع.
- همین توابع
pinModeوdigitalWriteبرای هر خروجی دیجیتال دیگری هم بهکار میروند.
مدار شما کار میکند، اما چشمکزن همچنان کدِ تکراری با مقادیر ثابت است. برای نوشتن برنامههای واقعی باید متغیر، نوع داده و ثابت را درست بهکار ببرید — موضوع درس بعدی.