blog background header

در جریان اخبار، مقالات، رویدادها و اتفاقات باشید

۲۲ مهر ۱۴۰۲
   
آکادمی

پروژه تغییر رنگ ال ای دی (RGB LED) با آردوینو + کد برنامه‌ نویسی

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

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

 

انواع ال ای دی

کلمه ال ای دی LED مخفف Light-Emitting Diode یا دیود ساطع‌کننده نور است. ال ای دی انواع متفاوتی دارد:

  • ال‌ای‌دی معمولی یا پایه‌دار
  • ال‌ای‌دی اس ام دی (SMD LED) 
  • پاور ال‌ای‌دی (POWER LED)
  • ال‌ای‌دی پاور اس ام دی (SMD POWER LED)
  • ال‌ای‌دی COB 
  • ال‌ای‌دی MCOB

 

 

هر کدام از مدل‌های فوق را می‌توان در بوردهای خاصی استفاده کرد. فارغ از مدل، تمامی ال‌ای‌دی‌ها نوعی دیود هستند که خود نیز زیرمجموعه نیمه هادی‌ها است.

در این مقاله، ۱ پروژه کاربردی با ال‌ای‌دی پایه‌دار یا اصطلاحا DIP انجام خواهیم داد. سایر پروژه‌های مشابه را می‌توانید در دسته‌بندی الکترونیک پیدا کنید. 

 

RGB LED چیست؟

هر رنگی که در طبیعت می‌بینید حاصل ترکیب سه رنگ قرمز، سبز و آبی است. RGB مخفف سه رنگ قرمز (Red)، سبز (Green) و آبی (Blue) می‌باشد.  با تلفیق این سه رنگ با یکدیگر ۱۶ میلیون رنگ متفاوت به دست می‌آید. پس به وسیله ال ای دیRGB  می‌توانید 16 میلیون رنگ مختلف را توسط یک ال ای دی ایجاد کنید.

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

  • کاتد مشترک: در ال ای دی RGB کاتد مشترک، پایه مشترک بین سه پایه دیگر باید به منفی وصل شود.
  • آند مشترک: در ال ای دی RGB آند مشترک، پایه مشترک بین سه پایه دیگر باید به مثبت وصل شود.

برای تشخیص این که ال ای دی RGB شما از نوع کاتد مشترک است یا آند مشترک، اقدامات زیر را انجام دهید:

۱. مولتی‌متر را روی حالت Continuity یا بوق قرار دهید.

۲. پراب قرمز رنگ مولتی متر را به پایه بلند‌تر (پایه مشترک) و پراب مشکی مولتی متر را به یکی از سه پایه دیگر وصل کنید. اگر ال ای دی روشن شد، یعنی ال ای دی RGB آند مشترک است. در غیر این صورت ال ای دی RGB شما کاتد مشترک بوده و با وصل کردن پراب مشکی رنگ به پایه مشترک و پراب قرمز رنگ به یکی از سه پایه دیگر، ال ای دی شما روشن خواهد شد.

 

راه‌اندازی پروژه

در این پروژه قرار است یک ال ای دی RGB را راه‌اندازی کرده و برنامه‌ای بنویسیم که با فاصله یک ثانیه، سه رنگ مختلف را در ال ای دی ایجاد کند. هر رنگ در بازه بین ۰ تا ۲۵۵ تعریف می‌شود که با استفاده از سیگنال‌های PWM (با duty cycleهای بین ۰ تا ۲۵۵) می‌توان هر رنگ دلخواهی را با ال ای دی RGB ایجاد کرد.

برای راه‌اندازی پروژه RGB LED به قطعات زیر احتیاج دارید:

  • بورد آردوینو اونو (Arduino Uno)
  • یک عدد RGB LED کاتد مشترک
  • برد بورد (Breadboard)- (نوع آن مهم نیست)
  • سه عدد مقاومت ۲۲۰ اهم
  • سیم جامپر نری به نری

بستن مدار و اتصال به آردوینو

روش بستن مدار این پروژه مانند پروژه ال ای دی چشمک زن Blink LED و پروژه کنترل جریان (نور) ال ای دی Fade LED است. با این تفاوت که در اینجا انگار 3 ال ای دی داریم.

ابتدا ۴ پایه‌ LED را در ستون‌های مختلف قرار می‌دهیم. برای آشنایی با نحوه کار با برد بورد و اتصال قطعات به آن، مقاله «برد بورد چیست» را مطالعه کنید.

حالا یک سر هر سه مقاومت ۲۲۰ اهم را در ستون‌های سه پایه رنگ قرمز، سبز و آبی ال ای دی قرار می‌دهیم و سر دیگر مقاومت‌ها را با سه سیم جامپر به پین‌های 11، 12 و 13 آردوینو متصل می‌کنیم. (برای آشنایی با ساختار و پایه‌های آردوینو مقاله «آردوینو چیست» را مطالعه کنید.) – در این حالت فقط پین 11 از نوع PWM است. بهتر است دو پایه دیگر را نیز PWM انتخاب کنید. در آخر مقاله راجع به PWM توضیح داده شده است.

چون ال ای دی RGB ما از نوع کاتد مشترک است، باید پایه مشترک آن را با یک سیم جامپر به منفی یعنی پایه زمین یا GND آردوینو متصل ‌کنیم. 

به طور خلاصه و طبق شماتیک زیر، پایه‌های مثبت LEDها ابتدا به مقاومت و سپس به پین‌های 11، 12 و 13 آردوینو متصل شده و پایه مشترک ال ای دی به پین زمین (GND) آردوینو متصل شده است.

 

برنامه‌نویسی آردوینو در IDE

ابتدا وارد نرم‌افزار Arduino IDE شوید. می‌توانید این نرم افزار را از وبسایت آردوینو https://www.arduino.cc/ دانلود و نصب کنید.

نتیجه کد برنامه این پروژه به شکل زیر است که در ادامه به توضیح هر بخش می‌پردازیم:

 

برای دریافت کامل کد به گیت‌هاب تینگزپاد مراجعه کنید.

ابتدا پین شماره 11، 12 و 13 آردوینو را با داده int به متغیرهای greenPin ، bluePin و redPin اختصاص می‌دهیم. با این نامگذاری دیگر نیازی نیست که در طول برنامه، شماره پین آردوینو را تکرار کنیم و به جای شماره پین از متغیرهای متناظر استفاده خواهیم کرد.

 

 
حالا در تابع setup، متغیرهای greenPin ،redPin و bluePin را از طریق تابع ()pinMode و به صورت زیر به صورت خروجی تنظیم می‌کنیم؛ در قسمت اول دستور، پین مربوط به آردوینو و در قسمت دوم، حالت آن (Output) را قرار می‌دهیم.

کدهای درون تابع setup در طول اجرای برنامه، فقط یک بار اجرا می‌شوند.

 

 

در قسمت loop به تولید رنگ دلخواه خود می‌پردازیم. این کار از طریق دستور ()analogWrite  قابل انجام است.

از آن جایی که مقدار هر سه رنگ آبی، قرمز و سبز می‌تواند بین ۰ تا ۲۵۵ باشد. پس با استفاده از دستور ()analogWrite به هر کدام از پایه‌های قرمز، آبی و سبز مقداری بین ۰ تا ۲۵۵ را اختصاص می‌دهیم. در آخر هم با استفاده از دستور ()delay، یک ثانیه تاخیر را برای نمایش رنگ بعدی ایجاد می‌کنیم.

 

 

نکته: چون از دستور ()analogWrite استفاده کردیم، بهتر است که از پین‌های PWM آردوینو استفاده کنیم. اما در اینجا فقط پین 11 از نوع PWM است. با این حال در انتهای پروژه خواهیم دید که مدار به درستی کار می‌کند. دلیل این اتفاق این است که دستور ()analogWrite بر روی پایه دیجیتال به نحوی عمل می‌کند که اعداد بین 0 تا 127 را به عنوان خاموش و اعداد بین 128 تا 255 را به عنوان روشن فرض می‌کند. این کار باعث محدود شدن رنگ‌های قابل تولید توسط RGB LED خواهد شد؛ زیرا دو ال ای دی قرمز و سبز که به پایه  PWM متصل نیستند، فقط دو رنگ ثابت قرمز و سبز را تولید می‌کنند و مقدار آن‌ها کم و زیاد نمی‌شود.  

 

در ادامه برنامه برای تولید دو رنگ دیگر نیز به همین صورت عمل می‌کنیم. با این تفاوت که مقادیر ()analogWrite باید با یکدیگر متفاوت باشند.

 

 

در نهایت، برای تمیز کردن کد می‌توانید روی صفحه کلیک راست کرده و گزینه Format Document را انتخاب کنید.

حالا از نوار بالای نرم‌افزار، ابتدا روی آیکون تیک کلیک کنید تا آردوینو IDE کد شما را بررسی کند. در صورت نبودن خطا، باید در پایین صفحه اعلان Done Compiling به شما نمایش داده شود.

آردوینو را با کابل Type B به  USB به کامپیوتر خود وصل کنید و از نوار بالای نرم‌افزار، نام آردوینو خود را که توسط سیستم شناسایی شده است انتخاب کنید.

سپس روی آیکون فلش (آپلود) کلیک کنید تا کد فوق بر روی آردوینو اونو شما بارگذاری شود.

همانطور که می‌بینید، سه رنگ مختلف به فاصله ۱ ثانیه توسط ال ای دی RGB تولید می‌شوند.

راستی می‌دانستید که می‌توان همین پروژه را در بستر اینترنت برای کنترل و نظارت از راه دور نیز انجام داد؟ برای این کار پلتفرم اینترنت اشیا تینگزپاد با ابزارهای ساده و محیط تعاملی، بهترین انتخاب شما خواهد بود. پلتفرم اینترنت اشیا تینگزپاد یک فضای پردازش ابری جامع برای دریافت اطلاعات دستگاه، پردازش، ذخیره و نمایش گرافیکی داده شما در بستر اینترنت است. همین الآن حساب کاربری رایگان خود را ایجاد کرده و از ابزارهای رایگان پلتفرم استفاده کنید.

 

سیگنال PWM چیست؟

PWM مخفف Pulse Width Modulation است که در فارسی به آن سیگنال مدولاسیون پهنای باند گفته می‌شود. در این تکنیک، فرکانس ثابت است و پهنای پالس تغییر می‌کند. این مدولاسیون برای تولید سیگنال آنالوگ با استفاده از یک منبع دیجیتال مناسب می‌باشد.

یک سیگنال PWM شامل دو مولفه اساسی به نام‌ duty cycle و فرکانس است که رفتار سیگنال را مشخص می‌کنند.

  • دیوتی سایکل (duty cycle): دوره تناوب یک پالس شامل یک سیکل On (۵ ولت) و یک سیکل Off (صفر ولت) می‌باشد. حاصل تقسیم سیکل On بر روی دوره تناوب، duty cycle نامیده می‌شود.
  • فرکانس سیگنال: این مولفه مشخص می‌کند که PWM با چه سرعتی یک چرخه را طی خواهد ‌کرد؛ مثلاً فرکانس ۱۰۰۰ هرتز به معنی طی کردن ۱۰۰۰ چرخه در ثانیه می‌باشد. به عبارتی دیگر یعنی با چه سرعتی بین حالت‌های ON (بالا) و OFF (پایین) سوییچ می‌کند. با تکرار این الگوی ON-OFF در یک سرعت به اندازه کافی بالا و با یک duty cycle مشخص، میانگین خروجی به صورت یک ولتاژ آنالوگ ثابت نمایان می‌شود و ولتاژ مورد نیاز دستگاه‌ها را فراهم می‌کند.

آردوینو اونو (Arduino Uno) دارای ۶ کانال ۸ بیتی PWM می‌باشد. پین‌هایی با علامت «~» از PWM پشتیبانی می‌کنند. پین‌های PWM آردوینو اونو را می‌توانید در تصویر زیر ببینید:

امیدواریم که با طی کردن گام به گام مراحل فوق، موفق به ساخت پروژه شده باشید. در صورت بروز هرگونه مشکل:

۱. ابتدا از روی شماتیک پروژه نحوه بستن مدار خود و مخصوصا پین‌های آردوینو را بررسی کنید.

۲. مجددا کد خود را با دستورالعمل تطابق دهید. می‌توانید کد را از اینجا یا کانال تلگرام آکادمی تینگزپاد نیز کپی کنید.

۳. ویدیوی آموزشی پروژه را با دقت نگاه کنید.

۴. اگر هنوز هم با مشکل روبه‌رو هستید، به ما پیام دهید یا از طریق تلگرام مشکل خود را بیان کنید.

 

بعد از این پروژه چکار کنم؟

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

راجع به این موضوع بیشتر می‌دانید؟ محتوای خود را برای ما ارسال کنید تا آن را با نام خودتان منتشر کنیم.

برچسب‌های مرتبط

اینترنت اشیا