آردوینوتوسعه دانشمقالات
موضوعات داغ

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

(روشن و خاموش کردن ال ای دی)

در این مقاله از مجموعه آموزش‌های پژوهشگران، به بررسی یکی از پروژه‌های پرکاربرد و پایه‌ای در حوزه میکروکنترلرها می‌پردازیم: پروژه آردوینو با LED. این پروژه به کاربران امکان می‌دهد با ارسال دستورات از طریق پورت سریال رایانه، وضعیت چند LED را تغییر دهند.

اگر به تازگی وارد دنیای آردوینو شده‌اید، این پروژه یکی از بهترین نقطه‌های شروع برای یادگیری مباحث پایه مثل برنامه‌نویسی پایه‌های دیجیتال، ارتباط سریال، و ساختارهای کنترلی در محیط Arduino IDE است.

هدف از اجرای پروژه

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

این نوع ارتباط ابتدایی‌ترین شکل از تعامل انسان و دستگاه (Human-Machine Interface) را نشان می‌دهد که پایه بسیاری از پروژه‌های پیشرفته‌تر مانند خانه هوشمند، سیستم‌های هشدار، نورپردازی هوشمند و… است.


قطعات مورد نیاز برای پروژه آردوینو با LED

برای اجرای این پروژه، به ابزارها و قطعات زیر نیاز دارید:

  • برد آردوینو (مدل UNO یا Nano)
  • سه عدد LED
  • سه عدد مقاومت ۲۲۰ اهم
  • کابل USB برای اتصال به رایانه
  • سیم جامپر
  • بردبورد برای مونتاژ بدون لحیم
پروژه آردوینو با LED
پروژه آردوینو با LED | آموزش کامل کنترل LED با پورت سریال ۱

شماتیک اتصال قطعات

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

پایه آردوینوعملکرد
D12کنترل LED اول
D11کنترل LED دوم
D10کنترل LED سوم

پروژه آردوینو با LED
پروژه آردوینو با LED | آموزش کامل کنترل 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;
    }
  }
}

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

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

تحلیل خط به خط کد

۱  تعریف متغیر دلخواه به عنوان بافر دریافت
اطلاعات
۲آغاز تابع setup
۳تعریف پایه ۱۲ به عنوان خروجی
۴تعریف پایه ۱۱ به عنوان خروجی
۵تعریف پایه ۱۰ به عنوان خروجی
۶راه اندازی ارتباط سریال سخت افزاری و تنظیم نرخ داده روی ۹۶۰۰
۷مشغول کردن برنامه تا هنگام راه اندازی کامل ارتباط سریال
۹آغاز تابع loop
۱۰تابعی جهت اطلاع از دریافت اطلاعات
۱۱اطلاعات دریافتی از پورت سریال را در داخل بافر دریافت اطلاعات
۱۲شروع عملیات انتخاب
۱۳درصورت دریافت کارکتر ۱ از پورت سریال پایه ۱۲ رو ۱ کن
۱۴درصورت دریافت کارکتر ۲ از پورت سریال پایه ۱۲ رو ۰ کن
۱۵درصورت دریافت کارکتر۳ از پورت سریال پایه ۱۱ رو ۱ کن
۱۶درصورت دریافت کارکتر ۴ از پورت سریال پایه ۱۱ رو ۰ کن
۱۷درصورت دریافت کارکتر ۵ از پورت سریال پایه ۱۰ رو ۱ کن
۱۸درصورت دریافت کارکتر۶ از پورت سریال پایه ۱۰ رو ۰ کن
۱۹درصورت دریافت کارکتر ۷ از پورت سریال پایه های ۱۰,۱۱,۱۲ رو ۱ کن
۲۰درصورت دریافت کارکتر ۸ از پورت سریال پایه های ۱۰,۱۱,۱۲ رو ۰ کن

بیشتر بدانید: راهنمای جامع آردوینو

بخش setup()

  • با استفاده از دستور pinMode() پایه‌های ۱۰، ۱۱ و ۱۲ به عنوان خروجی تعریف می‌شوند.
  • ارتباط سریال با نرخ ۹۶۰۰ بیت بر ثانیه راه‌اندازی می‌شود.
  • با دستور while (!Serial); برنامه تا شروع کامل ارتباط منتظر می‌ماند.

بخش loop()

  • با Serial.available() بررسی می‌شود که آیا داده‌ای از کامپیوتر به آردوینو ارسال شده است یا نه.
  • در صورت وجود داده، توسط Serial.read() آن را دریافت و ذخیره می‌کنیم.
  • با استفاده از switch، مقادیر مختلف بررسی شده و متناسب با آن، LED مربوطه روشن یا خاموش می‌شود.

اجرای عملی پروژه

برای اجرای این پروژه:

  1. مدار را طبق توضیحات بالا روی بردبورد ببندید.
  2. کد را در محیط Arduino IDE کپی کرده و روی برد آپلود کنید.
  3. در قسمت Serial Monitor، نرخ ارتباط را روی ۹۶۰۰ قرار دهید.
  4. اعداد ۱ تا ۸ را تایپ و ارسال کنید تا نتایج را مشاهده نمایید.

نکات تکمیلی برای توسعه پروژه آردوینو با LED

  • می‌توانید از نرم‌افزارهای اختصاصی مانند Processing یا Visual Studio برای ایجاد رابط گرافیکی جهت ارسال داده استفاده کنید.
  • با افزودن ماژول بلوتوث (مانند HC-05)، این پروژه را به کنترل بی‌سیم توسعه دهید.
  • استفاده از تایمر داخلی یا delay جهت افزودن افکت‌های نوری مانند چشمک‌زن نیز قابل پیاده‌سازی است.

جمع‌بندی

پروژه آردوینو با LED یک تمرین ساده ولی بسیار مفید برای یادگیری اصول ابتدایی میکروکنترلر، ارتباط سریال، و کار با پایه‌های دیجیتال است. این پروژه می‌تواند پایه‌ای برای بسیاری از پروژه‌های بزرگ‌تر در حوزه اتوماسیون و اینترنت اشیاء باشد.

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

برای دنبال کردن اینستاگرام ما کلیک کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا