راه اندازی LED RGB با آردوینو
هدف اصلی پروژه کنترل LED RGB با آردوینو ایجاد یک سیستم قابل برنامهریزی و کنترلی برای تولید نور و رنگهای متنوع و واکنشهای نوری مختلف است. این پروژه امکان کنترل دقیق و سفارشی رنگ LED RGB را فراهم میکند. شما می توانید از طریق ورودیهای مختلفی مانند دکمهها، حسگرها یا ارتباطات بیسیم این کارها را انجام دهید.
شما می توانید از پروژه راه اندازی LED RGB با آردوینو برای ایجاد نمایش رنگی زیبا، نمایش وضعیتهای مختلف، استفاده در پروژههای هنری یا تزیینی و … استفاده کنید.
پیش از مطالعه پروژه راه اندازی LED RGB با آردوینو، بهتر است برای آشنایی با تکنولوژیRGB،لینک مرتبط با مدل رنگی آرجیبی رو مطالعه کنید!
پایه های LED RGB
همانطور که میدانید LED RGB (Light Emitting Diode RGB ) قابلیت تولید رنگهای مختلف را دارد و RGB در اصل به معنای (قرمز(R)- سبز(G)- آبی(B)) است. علاوه بر شما می توانید از LED RGBبرای تولید رنگهایی که از ترکیب این سه رنگ به وجود می آیند، استفاده کنید.
LED RGB های معمولاً در 2 نوع کاتد مشترک (Common Cathode) و آند مشترک (Common Anode) تولید می شوند و دارای چهار پایه به شرح زیر هستند:
- پایهٔ قرمز (R): این پایه معمولاً به کلید “R” متصل میشود و برای کنترل رنگ قرمز LED مورد استفاده قرار میگیرد.
- پایهٔ سبز (G): این پایه معمولاً به کلید “G” متصل میشود و برای کنترل رنگ سبز LED مورد استفاده قرار میگیرد.
- پایهٔ آبی (B): این پایه معمولاً به کلید “B” متصل میشود و برای کنترل رنگ آبی LED مورد استفاده قرار میگیرد.
- پایهٔ مشترک (Common): این پایه به کلید “C” متصل میشود و به عنوان مشترک برای تمام رنگها عمل میکند. اگر LED RGB شما دارای کاتد مشترک باشد، این پایه به کاتد مشترک و اگر دارای آند مشترک باشد، به آند مشترک متصل میشود.
برای کنترل رنگ LED RGB، شما نیاز دارید از طریق پایه های PWM آردوینو ولتاژ متناسب را به هر یک از پایههای رنگ (قرمز، سبز، و آبی) اعمال کنید. با ترکیب مختلف ولتاژ بر روی این پایهها، میتوانید رنگهای مختلف را ایجاد کنید
نکته : اگر به جای استفاده از پایه های PWM از پین های دیجیتال استفاده کنیم، فقط میتوانیم پایه های کنترل رنگ LED RGB را 0 و 1کنیم، با این کار LED RGB تنها می توانید 4رنگ(قرمز(R)- سبز(G)- آبی(B)) و سفید را بسازیم.
خب حالا که تا حدودی با LED RGB آشنا شدید بریم بستن مدار و نوشتن کدهای پروژه کنترل LED RGB با آردوینو.
لیست قطعات کنترل LED RGB با آردوینو
شماتیک مدار کنترل LED RGB با آردوینو
برای نمایش بهتر نور LED در برنامه پروتئوس از مقاومت 100 اهم استفاده شده است!
اگر دوست دارید مدار بالا شبیه سازی کنید میتوانید کتابخانه پروتئوس آردوینو Uno از قسمت زیر تهییه کنید.
دستورات پروژه کنترل LED RGB با آردوینو
بعد از یادگیری نحوه سیم کشی مدار در برنامه پروتئوس، نوبت میرسه به نوشتن کد های برنامه کنترل LED RGB با آردوینو، در ابتدا من سورس کامل برنامه براتون میزارم و در ادامه توضیحات خط به خط خدمتتون میدم.
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(255, 0, 0); // (R, G, B)
delay(1000);
setColor(0, 255, 0); // (R, G, B)
delay(1000);
setColor(0, 0, 255); // (R, G, B)
delay(1000);
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}
همونطور که قبلا قول دادیم، در ادامه آموزش قصد داریم تک تک دستورات رو بطور کامل شرح میدم خدمتتون.
قسمت ابتدایی برنامه پیش از تابع void setup :
در این قسمت پایههایی که به هر یک از پین های LED RGB متصل شده است را مشخص میکنیم.
int redPin = 11; // پایه رنگ قرمز
int greenPin = 10; // پایه رنگ سبز
int bluePin = 9; // پایه رنگ آبی
دستورات تابع void setup :
void setup() {
مشخص کردن وضعیت پایه های متصل به پین های LED RGB به عنوان خروجی
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
دستورات حلقه void loop :
void loop() {
فراخوانی تابع setColor و مقدار دهی آن برای تنظیم رنگ LED RGB به قرمز
setColor(255, 0, 0); // (R, G, B)
// تاخیر 1 ثانیه
delay(1000);
فراخوانی تابع setColor و مقدار دهی آن برای تنظیم رنگ LED RGB به سبز
setColor(0, 255, 0); // (R, G, B)
// تاخیر 1 ثانیه
delay(1000);
فراخوانی تابع setColor و مقدار دهی آن برای تنظیم رنگ LED RGB به آبی
setColor(0, 0, 255); // (R, G, B)
// تاخیر 1 ثانیه
delay(1000);
}
دستورات تابع setColor
در تابع setColor برای تنظیم رنگ LED RGB از سه آرگمان استفاده میکنیم. این آرگمانها به ترتیب میزان شدت نور رنگهای قرمز (R)، سبز (G)، و آبی (B) را تنظیم میکنند.
اگر با ساختار تابع آشنایی ندارید می توانید در قسمت “برای مطالعه بیشتر” با ساختار تابع آشنا بشید.
تابع تنظیم رنگ LED
void setColor(int redValue, int greenValue, int blueValue) {
این آرگمان میزان شدت رنگ قرمز (R) را تعیین میکند. مقدار این آرگمان باید بین 0 و 255 باشد، که 0 به معنای خاموش بودن رنگ قرمز و 255 به معنای شدت بیشینه آن میباشد.
analogWrite(redPin, redValue);
این آرگمان میزان شدت رنگ سبز (G) را تعیین میکند. مقدار این آرگمان نیز باید بین 0 و 255 باشد، که 0 به معنای خاموش بودن رنگ سبز و 255 به معنای شدت بیشینه آن است.
analogWrite(greenPin, greenValue);
این آرگمان میزان شدت رنگ آبی (B) را تعیین میکند. مقدار این آرگمان همچنین باید بین 0 و 255 باشد، که 0 به معنای خاموش بودن رنگ آبی و 255 به معنای شدت بیشینه آن است.
analogWrite(bluePin, blueValue);
با ترکیب مختصات مقداری از این آرگمانها، میتوانید رنگ دلخواهتان را ایجاد کنید. . برای مثال :
- تولید رنگ سفید :
ترکیب دقیق تمامی مقادیر قرمز، سبز و آبی به تساوی (255,255,255) رنگ سفید را ایجاد میکند.
- تولید رنگ بنفش :
بنفش یک رنگ ترکیبی از قرمز و آبی است و برای تولید آن شما میتوانید رنگ ها را با نسبت (255,0,255)با یکدیگر ترکیب کنید.
برای مطالعه بیشتر …
مفهوم تابع برنامه نویسی
استفاده از توابع در برنامهنویسی، ساختار برنامه را به قسمتهای مستقل کوچکتری تقسیم می شود، در نتیجه اعمال تغییرات و دیباگ دستورات ساده تر می شود. در ادامه به علل و دلایل مهم استفاده از توابع در برنامهنویسی اشاره میکنم:
- تقسیم و ترتیب منطقی کد: توابع به برنامهنویس اجازه میدهند که کد را به بخشهای کوچکتر تقسیم کنند. این تقسیم بندی منطقی و سازمانیافته به برنامهنویس کمک میکند تا کد را بهتر مدیریت کند و درک و تعمیر آن را آسانتر کند.
- بازیابی و استفاده مجدد: با تعریف توابع، میتوانید قسمتهای مختلف کد را به عنوان یک واحد مجزا ایجاد کنید. این کمک میکند تا بتوانید آن قسمتها را بازیابی کنید و در بخشهای دیگر از برنامه مجدداً استفاده کنید.
- خوانایی کد: توابع باعث افزایش خوانایی کد میشوند. به جای نوشتن کد به صورت خط به خط در مکانهای مختلف برنامه، میتوانید از توابع با نامهای مناسب استفاده کنید. این امر به برنامهنویسان دیگر کمک میکند تا کد شما را به راحتی درک کنند.
- مدیریت پیچیدگی: توابع به کاهش پیچیدگی برنامه کمک میکنند. برنامهنویس میتواند وظایف مختلف را در توابع جداگانه تعریف کرده و به این ترتیب پیچیدگی کل برنامه را کاهش دهد.
- تعامل و همکاری: با توابع، اعضای تیم برنامهنویسی میتوانند به صورت مستقل روی بخشهای خاص کد کار کنند و سپس این بخشها را به صورت یکپارچه در کنار هم قرار دهند. این امر تعامل و همکاری در تیمهای بزرگ و پروژههای بزرگ را تسهیل میکند.
- فرار از پیچیدگی: با توابع، میتوانید جزئیات پیچیده را درون توابع پنهان کنید و تمرکز خود را بر روی عملکرد کلی برنامه قرار دهید. این امر به کاهش خطاها و بهبود کیفیت کد کمک میکند.
- تعریف واسطها: توابع میتوانند به عنوان واسطها بین بخشهای مختلف برنامه عمل کنند. این امکان را فراهم میکند که بخشهای مختلف برنامه بدون وابستگی مستقیم به یکدیگر کار کنند.
- استفاده از اصول DRY و: KISS توابع به اجرای اصول DRY (Don’t Repeat Yourself) و KISS (Keep It Simple, Stupid) کمک میکنند. با تعریف توابع، میتوانید کدهای تکراری را به یک جا منتقل کنید و کد را سادهتر نگه دارید.
به طور کلی، توابع به برنامهنویسان امکان مدیریت و ترتیب بهتر کد، افزایش خوانایی و قابلیتهای استفاده مجدد کد را میدهند و برای توسعه و نگهداری برنامهها بسیار حیاتی هستند.
آشنایی با ساختار توابع
ساختار توابع در آردوینو، مشابه ساختار توابع در زبانهای برنامهنویسی C و C++ است و هر تابعی معمولاً شامل این عناصر است:
[نوع بازگشتی] [نام تابع]([پارامترها]) {
// بدنه تابع
// عبارات و دستورات تابع
return [مقدار بازگشتی];
{
- نوع بازگشتی : این بخش نوع دادهای است که تابع برمیگرداند.
نکته : اگر تابع هیچ مقداری برنگرداند، از void استفاده میشود. به عبارت دیگر، اگر تابع صرفاً عملیاتی را انجام دهد و مقداری نداشته باشد، از void استفاده میشود.
- نام تابع : نامی که به تابع اختصاص داده میشود. این نام باید منحصر به فرد باشد و اغلب باید توصیف کننده عملکرد تابع باشد.
- پارامترها : این بخش حاوی پارامترهای تابع است. پارامترها متغیرهایی هستند که به تابع ارسال میشوند و در داخل تابع مورد استفاده قرار میگیرند. هر پارامتر شامل نوع داده و نام آن است.
- بدنه تابع: این بخش شامل تعدادی عبارت و دستورات است که عملکرد تابع را تشکیل میدهند. این بخش درون آکولادها {} قرار میگیرد.
- Return : اگر تابع مقداری را برمیگرداند، از دستور return برای ارسال مقدار بازگشتی به خارج از تابع استفاده میشود. این بخش اختیاری است و برای توابعی که مقدار بازگشتی ندارند یا از نوع void هستند، استفاده نمیشود.
در آردوینو، میتوانید توابعی با این ساختار تعریف کنید و سپس از آنها در برنامههای خود استفاده کنید. این امر به شما این امکان را میدهد که برنامههایتان را به بخشهای کوچکتر و قابل مدیریت تقسیم کنید و کدتان را بهبود بخشید.
در این آموزش طریقه روشن کردن LED RGB را فهمیدیم از این روش شما می توانید رنگ های مختلفی ایجاد کنید شما می توانید
از این پروژه در آموزش های بعد که ما در مورد WIFI صحبت می کنیم از راه دور با گوشی LED ها را کنترل کنید و برای خود رنگ بسازید
اگر سوالی در مورد کد ها یا بستن مدار داشتید میتونید در بخش پرسش پاسخ همین آمورش بنویسید ما هم سریع ترین زمان ممکن به شما پاسخ خواهیم داد
امیدوارم از آموزش کنترل LED RGB با آردوینو لذت برده باشید و به کمک اون بتونید رنگ دلخواهتون رو با RGB بسازید ????
_________ _________
باکس دانلود
راهنمای دانلود :
- برای دانلود فایل های پیوستی ابتدا در حساب کاربری خود ورود یا ثبت نام کنید.
- در صورت عدم دانلود فایل پیوست شده می توانید در قسمت گزارش خرابی لینک دلیل عدم دانلود را شرح دهید و از ما امتیاز دریافت کنید .
- تمامی فایل های پیوست شده متعلق به سایت ربات افزار می باشد و نشر آن به هر نحوه، قانونی و شرعی اشکال دارد.