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

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

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

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

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

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

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

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


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

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

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

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

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

پایه آردوینوعملکرد
D12کنترل LED اول
D11کنترل LED دوم
D10کنترل 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

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

1  تعریف متغیر دلخواه به عنوان بافر دریافت
اطلاعات
2آغاز تابع setup
3تعریف پایه 12 به عنوان خروجی
4تعریف پایه 11 به عنوان خروجی
5تعریف پایه 10 به عنوان خروجی
6راه اندازی ارتباط سریال سخت افزاری و تنظیم نرخ داده روی 9600
7مشغول کردن برنامه تا هنگام راه اندازی کامل ارتباط سریال
9آغاز تابع loop
10تابعی جهت اطلاع از دریافت اطلاعات
11اطلاعات دریافتی از پورت سریال را در داخل بافر دریافت اطلاعات
12شروع عملیات انتخاب
13درصورت دریافت کارکتر 1 از پورت سریال پایه 12 رو 1 کن
14درصورت دریافت کارکتر 2 از پورت سریال پایه 12 رو 0 کن
15درصورت دریافت کارکتر3 از پورت سریال پایه 11 رو 1 کن
16درصورت دریافت کارکتر 4 از پورت سریال پایه 11 رو 0 کن
17درصورت دریافت کارکتر 5 از پورت سریال پایه 10 رو 1 کن
18درصورت دریافت کارکتر6 از پورت سریال پایه 10 رو 0 کن
19درصورت دریافت کارکتر 7 از پورت سریال پایه های 10,11,12 رو 1 کن
20درصورت دریافت کارکتر 8 از پورت سریال پایه های 10,11,12 رو 0 کن

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

بخش setup()

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

بخش loop()

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

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

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

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

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

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

جمع‌بندی

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

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

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

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

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

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