پروژه آردوینو با LED | آموزش کامل کنترل LED با پورت سریال
(روشن و خاموش کردن ال ای دی)

در این مقاله از مجموعه آموزشهای پژوهشگران، به بررسی یکی از پروژههای پرکاربرد و پایهای در حوزه میکروکنترلرها میپردازیم: پروژه آردوینو با LED. این پروژه به کاربران امکان میدهد با ارسال دستورات از طریق پورت سریال رایانه، وضعیت چند LED را تغییر دهند.
اگر به تازگی وارد دنیای آردوینو شدهاید، این پروژه یکی از بهترین نقطههای شروع برای یادگیری مباحث پایه مثل برنامهنویسی پایههای دیجیتال، ارتباط سریال، و ساختارهای کنترلی در محیط Arduino IDE است.
فهرست محتوا
هدف از اجرای پروژه
هدف این پروژه، کنترل سه عدد LED با استفاده از دستورات ارسال شده از نرمافزار سریال مانیتور رایانه است. بهبیان ساده، کاربر با تایپ یک عدد از طریق پورت سریال، میتواند وضعیت LEDهای متصل به برد آردوینو را روشن یا خاموش کند.
این نوع ارتباط ابتداییترین شکل از تعامل انسان و دستگاه (Human-Machine Interface) را نشان میدهد که پایه بسیاری از پروژههای پیشرفتهتر مانند خانه هوشمند، سیستمهای هشدار، نورپردازی هوشمند و… است.
قطعات مورد نیاز برای پروژه آردوینو با LED
برای اجرای این پروژه، به ابزارها و قطعات زیر نیاز دارید:
- برد آردوینو (مدل UNO یا Nano)
- سه عدد LED
- سه عدد مقاومت ۲۲۰ اهم
- کابل USB برای اتصال به رایانه
- سیم جامپر
- بردبورد برای مونتاژ بدون لحیم

شماتیک اتصال قطعات
LEDها به پایههای دیجیتال ۱۰، ۱۱ و ۱۲ آردوینو متصل میشوند. پایه منفی هر LED به مقاومت ۲۲۰ اهم متصل شده و سپس به زمین (GND) وصل میشود. پایه مثبت نیز مستقیماً به پایه دیجیتال مربوطه متصل میشود.
پایه آردوینو | عملکرد |
---|---|
D12 | کنترل LED اول |
D11 | کنترل LED دوم |
D10 | کنترل LED سوم |

بیشتر بدانید: مقایسه رزبری پای و آردوینو
کد کامل پروژه آردوینو با LED
در ادامه، کد کامل پروژه آردوینو با LED ارائه شده است. این کد در محیط Arduino IDE نوشته شده و پس از آپلود روی برد، امکان کنترل LEDها از طریق سریال مانیتور را فراهم میکند.
cppCopyEditunsigned char serial_buffer;
void setup() {
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
Serial.begin(9600);
while (!Serial);
}
void loop() {
if (Serial.available()) {
serial_buffer = Serial.read();
switch (serial_buffer) {
case '1': digitalWrite(12, HIGH); Serial.println("LED 12 ON"); break;
case '2': digitalWrite(12, LOW); Serial.println("LED 12 OFF"); break;
case '3': digitalWrite(11, HIGH); Serial.println("LED 11 ON"); break;
case '4': digitalWrite(11, LOW); Serial.println("LED 11 OFF"); break;
case '5': digitalWrite(10, HIGH); Serial.println("LED 10 ON"); break;
case '6': digitalWrite(10, LOW); Serial.println("LED 10 OFF"); break;
case '7':
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
Serial.println("ALL LEDs ON");
break;
case '8':
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
Serial.println("ALL LEDs OFF");
break;
}
}
}
بیشتر بدانید: بسته آموزشی آردوینو

تحلیل خط به خط کد
۱ | تعریف متغیر دلخواه به عنوان بافر دریافت اطلاعات |
۲ | آغاز تابع setup |
۳ | تعریف پایه ۱۲ به عنوان خروجی |
۴ | تعریف پایه ۱۱ به عنوان خروجی |
۵ | تعریف پایه ۱۰ به عنوان خروجی |
۶ | راه اندازی ارتباط سریال سخت افزاری و تنظیم نرخ داده روی ۹۶۰۰ |
۷ | مشغول کردن برنامه تا هنگام راه اندازی کامل ارتباط سریال |
۹ | آغاز تابع loop |
۱۰ | تابعی جهت اطلاع از دریافت اطلاعات |
۱۱ | اطلاعات دریافتی از پورت سریال را در داخل بافر دریافت اطلاعات |
۱۲ | شروع عملیات انتخاب |
۱۳ | درصورت دریافت کارکتر ۱ از پورت سریال پایه ۱۲ رو ۱ کن |
۱۴ | درصورت دریافت کارکتر ۲ از پورت سریال پایه ۱۲ رو ۰ کن |
۱۵ | درصورت دریافت کارکتر۳ از پورت سریال پایه ۱۱ رو ۱ کن |
۱۶ | درصورت دریافت کارکتر ۴ از پورت سریال پایه ۱۱ رو ۰ کن |
۱۷ | درصورت دریافت کارکتر ۵ از پورت سریال پایه ۱۰ رو ۱ کن |
۱۸ | درصورت دریافت کارکتر۶ از پورت سریال پایه ۱۰ رو ۰ کن |
۱۹ | درصورت دریافت کارکتر ۷ از پورت سریال پایه های ۱۰,۱۱,۱۲ رو ۱ کن |
۲۰ | درصورت دریافت کارکتر ۸ از پورت سریال پایه های ۱۰,۱۱,۱۲ رو ۰ کن |
بیشتر بدانید: راهنمای جامع آردوینو
بخش setup()
- با استفاده از دستور
pinMode()
پایههای ۱۰، ۱۱ و ۱۲ به عنوان خروجی تعریف میشوند. - ارتباط سریال با نرخ ۹۶۰۰ بیت بر ثانیه راهاندازی میشود.
- با دستور
while (!Serial);
برنامه تا شروع کامل ارتباط منتظر میماند.
بخش loop()
- با
Serial.available()
بررسی میشود که آیا دادهای از کامپیوتر به آردوینو ارسال شده است یا نه. - در صورت وجود داده، توسط
Serial.read()
آن را دریافت و ذخیره میکنیم. - با استفاده از
switch
، مقادیر مختلف بررسی شده و متناسب با آن، LED مربوطه روشن یا خاموش میشود.
اجرای عملی پروژه
برای اجرای این پروژه:
- مدار را طبق توضیحات بالا روی بردبورد ببندید.
- کد را در محیط Arduino IDE کپی کرده و روی برد آپلود کنید.
- در قسمت Serial Monitor، نرخ ارتباط را روی ۹۶۰۰ قرار دهید.
- اعداد ۱ تا ۸ را تایپ و ارسال کنید تا نتایج را مشاهده نمایید.
نکات تکمیلی برای توسعه پروژه آردوینو با LED
- میتوانید از نرمافزارهای اختصاصی مانند Processing یا Visual Studio برای ایجاد رابط گرافیکی جهت ارسال داده استفاده کنید.
- با افزودن ماژول بلوتوث (مانند HC-05)، این پروژه را به کنترل بیسیم توسعه دهید.
- استفاده از تایمر داخلی یا delay جهت افزودن افکتهای نوری مانند چشمکزن نیز قابل پیادهسازی است.
جمعبندی
پروژه آردوینو با LED یک تمرین ساده ولی بسیار مفید برای یادگیری اصول ابتدایی میکروکنترلر، ارتباط سریال، و کار با پایههای دیجیتال است. این پروژه میتواند پایهای برای بسیاری از پروژههای بزرگتر در حوزه اتوماسیون و اینترنت اشیاء باشد.
در آموزشهای بعدی، به توسعه این پروژه با افزودن کنترل بیسیم، رابط کاربری و دیگر قابلیتهای هوشمند خواهیم پرداخت. همچنین برای تهیه تجهیزات مورد نیاز، میتوانید از منابع معتبر و تخصصی کمک بگیرید.
برای دنبال کردن اینستاگرام ما کلیک کنید.