تغییر رنگ RGB LED با Arduino — راهنمای کاربردی
در این مطلب نحوه تولید رنگهای مختلف و دلخواه با استفاده از RGB LED و بردهای Arduino توضیح داده خواهد شد و در اصل با یک ویدیوی کوتاه به مبحث تغییر رنگ RGB LED با Arduino خواهیم پرداخت.
فیلم آموزشی تغییر رنگ RGB LED با Arduino
LEDهای RGB از سه LED با رنگهای اصلی قرمز، سبز و آبی ساخته شده است. شکل ۱ دیود سهرنگ و پایههای آن را نشان میدهد. کاتد همه دیودها به همدیگر متصل است و به زمین متصل میشود و سه پایه دیگر نیز از آیسی خارج شدهاند تا با اعمال ولتاژ مناسب به آنها، رنگهای دلخواه تولید شود.
در آیسی LEDهای سهرنگ چهار پایه وجود دارد که بلندترین پایه همان زمین است و سایر پایهها به ترتیب مربوط به LEDهای قرمز، سبز و آبی هستند.
مطابق شکل ۲، با ترکیب رنگهای اصلی ميتوان هر رنگ دلخواهی را تولید کرد. برای مثال اگر رنگهای قرمز و سبز با نسبت یکسان ترکیب شوند، رنگ زرد و اگر رنگهای قرمز و آبی با ترکیب یکسان ترکیب شوند، رنگ بنفش تولید خواهد شد.
برای تولید سایر رنگهای دلخواه، کافی است که به جای ولتاژ ۰ یا ۵ ولت به پایههای آیسی یک سیگنال PWM اعمال شود. در این صورت با تغییر چرخه کاری PWM میتوان شدت هر کدام از نورها را کنترل کرد و نور را به رنگ دلخواه درآورد.
برای کنترل رنگ RGB LED از طریق برد آردیونو Uno اتصالات سختافزاری همانند شکل ۳ پیادهسازی میشود. پایه دوم LED که همان زمین است به زمین برد آردیونو متصل میشود و پایههای اول، سوم و چهارم نیز به ترتیب به پینهای دیجیتال ۱۱، ۱۰ و ۹ متصل خواهند شد.
سپس با استفاده از برنامه زیر و از طریق سریال مانیتور، میتوان نور LED را کنترل کرد. ابتدا پینهای دیجیتال ۱۱، ۱۰ و ۹ به عنوان پینهای کنترل LEDهای قرمز، سبز و آبی تعریف میشوند. سپس داخل حلقه setup نوع این پینها را به عنوان خروجیهای دیجیتال تعریف و ارتباط سریال را با سرعت 9600 بایت بر ثانیه شروع میکنیم.
در حلقه اصلی نیز که همواره تکرار میشود، ابتدا میزان شدت نورهای قرمز، سبز و آبی (با اعداد صحیح بازه ۰ تا ۲۵۵) از طریق پورت سریال وارد میشود و سپس با دستور analogWrite سیگنال PWM با چرخهکاریهای واردشده در پورت سریال در پایههای تعریفشده، تولید میشود و رنگ LED به رنگ دلخواه درمیآید.
1const int redPin = 11;
2const int greenPin = 10;
3const int bluePin = 9;
4void setup() {
5pinMode(redPin, OUTPUT);
6pinMode(greenPin, OUTPUT);
7pinMode(bluePin, OUTPUT);
8Serial.begin(9600);
9Serial.println("Enter R G B (E.g. 255 100 200)");
10}
11void loop() {
12if (Serial.available()) {
13int red = Serial.parseInt();
14int green = Serial.parseInt();
15int blue = Serial.parseInt();
16analogWrite(redPin, red);
17analogWrite(greenPin, green);
18analogWrite(bluePin, blue);
19}
20}
در صورتی که مطلب بالا برای شما مفید بوده است، آموزشها و مطالبی که در ادامه آمدهاند نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای آردوینو Arduino
- آموزش برد آردوینو (Arduino) با انجام پروژههای عملی
- مجموعه آموزشهای مهندسی الکترونیک
- آموزش آردوینو در نرمافزار پروتئوس (برنامهنویسی و شبیهسازی همراه با پیادهسازی چند پروژه)
- تبدیل AC به DC — راهنمای کاربردی
- آی سی LM317 — راهنمای کاربردی
- خروجی دیجیتال در Arduino — راهنمای کاربردی
^^
سلام دوست عزیز من داشتم برنامه رو نگاه میکردم شما برای red pin در قسمت اول برنامه پایه تعریف نکردید یا من اشتباه میکنم