- ابزارآلات و آهنربا
-
ابزارآلات
- ابزار اندازه گیری (مولتیمتر، کولیس و . . .)
- ابزار سوراخکاری (مته، سه نظام، چهار نظام، پنج نظام و . . .)
- ابزار و تجهیزات کار (پیچ گوشتی، انبردست، سیمچین، پنس و . . .)
- برد بورد، فیبر خام و سوراخدار (فیبر مدار چاپی و PCB)
- پیچ و اسپیسر (پیچ و مهره رباتیک و اسپیسر پلاستیکی و فلزی)
- سیم و کابل (سیم افشان، فلت، باندی، کابل شارژ، پرینتر، و . . .)
- لحیمکاری (هویه، نوک هویه، پایه هویه، سیم لحیم، روغن لحیم و . . . )
- منبع تغذیه، باتری و جاباتری (باتری قلمی، نیم قلمی، کتابی و . . . )
-
ابزارآلات
- برد هوشمند
- پرینتر سه بعدی
- رباتیک و پروازی
- ماژول
- قطعات الکترونیک
- کیت الکترونیکی و انواع جعبه
- موتور
- اصناف مختلف
آموزش کامل ساخت کنترل RGB LED با شاسی فشاری
ارسال توسط
فروشگاه بهنام رباتیک
در تاریخ 2023/04/11
دیدگاهها برای آموزش کامل ساخت کنترل RGB LED با شاسی فشاری بسته هستند
در این مطلب از بلاگ بهنام رباتیک میخواهیم شما را با نحوه ساخت کنترل RGB LED با آردوینو و شاسی فشاری آشنا کنیم؛ پس با ما همراه باشید.
فهرست مطالب
قطعات مورد نیاز برای پروژه ساخت کنترل RGB LED با آردوینو
سیمکشی مدار پروژه ساخت کنترل RGB LED با آردوینو
همانطور که میدانید، بلندترین پایه RGB LED که همان پایه مشترک اتصال به زمین (GND) بود را میبایست به اتصال به زمین برد بورد (GND) وصل کرد.
نحوه سیمکشی این مدار بر اساس LED کاتد مشترک صورت گرفته است. بر این اساس، چنانچه شما یک LED آند مشترک دارید، توجه داشته باشید که باید پایه دوم یا مشترک LEDها را به پایه منبع تغذیه 5 ولت متصل نمایید. دقت کنید که با استفاده از LED آند مشترک، چرخش رنگهای ماژول LED RGB معکوس خواهد شد.
کدنویسی پروژه ساخت کنترل RGB LED با آردوینو
کدهایی که در ادامه نوشته شده را باید در برنامه آردوینو بارگذاری کنید.
/*
Adafruit Arduino - Lesson 7. RGB Fader
*/
int redLEDPin = 11;
int greenLEDPin = 10;
int blueLEDPin = 9;
int redSwitchPin = 7;
int greenSwitchPin = 6;
int blueSwitchPin = 5;
int red = 0;
int blue = 0;
int green = 0;
void setup()
{
pinMode(redLEDPin, OUTPUT);
pinMode(greenLEDPin, OUTPUT);
pinMode(blueLEDPin, OUTPUT);
pinMode(redSwitchPin, INPUT_PULLUP);
pinMode(greenSwitchPin, INPUT_PULLUP);
pinMode(blueSwitchPin, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(redSwitchPin) == LOW)
{
red ++;
if (red > 255) red = 0;
}
if (digitalRead(greenSwitchPin) == LOW)
{
green ++;
if (green > 255) green = 0;
}
if (digitalRead(blueSwitchPin) == LOW)
{
blue ++;
if (blue > 255) blue = 0;
}
analogWrite(redLEDPin, red);
analogWrite(greenLEDPin, green);
analogWrite(blueLEDPin, blue);
delay(10);
}
ترکیب رنگها در پروژه ساخت کنترل RGB LED با آردوینو
در ابتدا بایستی تمامی LEDها خاموش شوند. چنانچه شما یکی از دکمهها را فشار دادید و نگه داشتید، آنگاه رنگ متناسب با LED روشنتر میشود. دکمه بالا رنگ قرمز، دکمه وسط رنگ سبز و دکمه پایین رنگ آبی را کنترل میکنند.
شما میتوانید زمانی که نور یک رنگ از LED به مقدار مناسبی رسید، دکمه مربوط به رنگ دیگری را فشار دهید تا با رنگ قبلی ترکیب شود. به این ترتیب قادر خواهید بود شاهد ترکیب رنگهای مختلفی باشید.
در این میان، اگر میخواهید که هر برنامهای را از اول شروع کنید، کافیست دکمه ریست آردوینو را فشار دهید. این دکمه به رنگ قرمز و در کنار درگاه USB قرار دارد.
در این پروژه سه پایه خروجی داریم که دیود نورانی را کنترل میکنند. این سه پایه خروجی، PWM آردوینو هستند که با کنترل توان خروجی آنها میزان رنگ LEDها کنترل خواهد شد.
این پایهها به وسیله مقاومت داخلی پولآپ دائماً دارای مقدار HIGH هستند. البته وقتی یکی از دکمهها فشار داده میشود، پایه مربوط به خود را به مقدار LOW میرساند. این مقدار ناشی از اتصال کوتاه کلید با زمین خواهد بود.
تعریف پایه LEDها و متغیرها در پروژه ساخت کنترل RGB LED با آردوینو
پس از معرفی پایههای مربوط به دکمهها و LEDها، نوبت به معرفی سه متغیر red، blue و green میرسد.
int red = 0;
int blue = 0;
int green = 0;
این متغیرها برای نگه داشتن آخرین مقادیر شدت روشنایی هر رنگ از LED به کار میروند. این یعنی اگر مقدار رنگ قرمز 0 بود، قسمت قرمز رنگ LED خاموش خواهد شد و اگر مقدار آن به 255 رسید، میزان روشنایی نیز به بیشترین مقدار خود میرسد.
تابع حلقه به دو قسمت تقسیم میشود؛ قسمت اول هر دکمه را بررسی کرده و با توجه به آن، مقادیر سه متغیر green، red و blue را تغییر میدهد. توجه کنید که همه دکمهها شبیه به هم عمل میکنند با این تفاوت که هر کدام مربوط به یکی از سه رنگ میباشد.
if (digitalRead(redSwitchPin) == LOW)
{
red ++;
if (red > 255) red = 0;
}
توضیحات کد پروژه ساخت کنترل RGB LED با آردوینو
اولین جمله شرطی، شرایط پایه مربوط به دکمه قرمز را چک میکند که میتواند به دو حالت منطقی 0 یا 1 باشد. اگر دکمه فشرده نبود، به علت وجود مقاومت پولآپ مقدار پایه برابر 5 ولت یا همان 1 منطقی خواهد بود و اگر دکمه فشار داده شود، مقدار به 0 خواهد رسید که ناشی از اتصال کوتاه شدن پایه به زمین خواهد بود.
در زمانی که مقدار پایه 0 یا همان LOW است، وارد زیرمجموعه شرط اول خواهیم شد که در این صورت متغیر red اضافه میگردد.
در اینجا باید کمی با احتیاط پیش رفت زیرا نهایت مقدار قابلقبول برای PWM برابر با عدد 255 است بنابراین حتماً میبایست محدودیت ایجاد شود تا مقدار متغیر از حد خاصی فراتر نرود. بدین منظور، در خط بعد با یک جمله شرطی دیگر این محدودیت را اعمال میکنیم تا در صورت افزایش متغیر از 255، ریست و 0 شود و فرآیند دوباره آغاز گردد.
قسمت دوم تابع حلقه، به دستور analogWrite مربوط میشود که مقادیر متغیرهای سه رنگ را به آنالوگ تبدیل و به پایههای LED منتقل میکند.
analogWrite(redLEDPin, red);
analogWrite(greenLEDPin, green);
analogWrite(blueLEDPin, blue);
در نهایت، تابع نیز یک تأخیر تلقی خواهد شد تا تغییر رنگهای LED با سرعت قابلکنترلی انجام شود.
علت گذاشتن تأخیر در کدهای پروژه ساخت کنترل RGB LED با آردوینو
سعی کنید دستور تأخیر در پایان برنامه را حذف کنید. برای انجام این کار میتوانید دستور نامبرده را به کامنت تغییر دهید.
analogWrite(blueLEDPin, blue);
// delay(10);
}
این روش بسیار کارآمد خواهد بود. توجه داشته باشید که اگر زمانی به این دستور نیاز داشتید، نیازی نیست دوباره آن را بنویسید زیرا فقط کافی است // را از ابتدای آن حذف کنید.
بدون دستور تأخیر متوجه خواهید شد که هر وقت دستتان را از روی دکمه بردارید، میزان روشنایی کاملاً تصادفی انتخاب میشود زیرا چرخش بین مقادیر روشنایی رنگها آنقدر سریع است که نمیتوانید آن را کنترل کنید.
روش دیگر این است که طرز کار مدار را به شکلی تنظیم کنید که کنترل LEDها مانند چراغهای راهنمایی و رانندگی صورت پذیرد تا دکمه بالایی رنگ LED را سبز، دکمه وسط آن را نارنجی و دکمه پایین آن را قرمز کند.