در این سری از آموزش های آردوینو با استفاده از ماژول KY-009 RGB سه رنگ مختلف تولید خواهیم کرد سپس توسط این ماژول و میکروسوئیچ یک رقص نور جذاب ساخته ایم. اگر مایل هستید تا یک رقص نور بسازید و در مهمانی ها و جشن های خود استفاده کنید پیشنهاد می کنیم پروژه زیر که در وب سایت الکترونیک98 منتشر شده از را مطالعه کنید.
ماژول LED RGB KY-009
ماژول LED RGB KY-009 مجموعه کاملی از رنگ ها می باشد که سازگاری قابل قبولی با برد آردوینو دارد. از این ماژول می توان برای مکان هایی که نیاز به ترکیبی از نورهای مختلف است، استفاده کنیم. همچنین تنظیم نورهای مختلف این ماژول با استفاده از پایه های PWM آردوینو امکان پذیر است. از جمله ویژگی های این ماژول عبارتنداز:
1. محدوده ولتاژ کاری 0 تا 5ولت
2. جریان کاری 20 تا 30 میلی آمپر
3. محدوده دمای کاری 25- تا 85+ درجه سانتی گراد
4. محدوده ولتاژ کاری رنگ قرمز 1.8 تا 2.4 ولت
5. محدوده ولتاژ کاری رنگ سبز 2.8 تا 3.6 ولت
6. محدوده ولتاژ کاری رنگ آبی 2.8 تا 3.6 ولت
7. ابعاد 18.5×15 میلی متر
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول KY-009 | 1 عدد |
مقاومت 110 اهم با توان 0.125 وات و تلرانس 1 درصد | 2 عدد |
مقاومت 180 اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
تک سوئیچ 2 پایه DIP سایز 6x6x5 میلیمتر | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال قطعات به یکدیگر و برد آردوینو بسیار راحت است. در شماتیک های زیر، دو حالت اتصال مدار با میکروسوئیچ و بدون میکروسوئیچ آمده است.
برنامه نویسی پروژه
بعد از اتصال قطعات به یکدیگر و نصب کتابخانه، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
int redpin = 9; // select the pin for the red LED int bluepin = 11; // select the pin for the blue LED int greenpin = 10; // select the pin for the green LED int val=0; //for loop party int interrupt = 0; //connected on pin 2 int k = 0; // work or party unsigned long button_time = 0; //time botton is set. unsigned long last_button_time = 0; void setup () { pinMode (redpin, OUTPUT); pinMode (bluepin, OUTPUT); pinMode (greenpin, OUTPUT); pinMode(2,INPUT); //interrupt digitalWrite(2,HIGH); //anable the pullup resistor attachInterrupt(interrupt, button, FALLING); Serial.begin (9600); } void loop () { if(k == 0){ traficLight(); }else if(k == 1){ party(); } } void traficLight(){ red(); delay(3000); clean(); delay(1); orange(); delay(1500); clean(); delay(1); green(); delay(3000); clean(); delay(1); } void red(){ analogWrite(11,255); } void green(){ analogWrite(9, 255); } void orange() { analogWrite(11,102); analogWrite(10, 0); analogWrite( 9,51); } void clean(){ analogWrite(11,0); analogWrite(10,0); analogWrite( 9,0); } void button(){ button_time = millis(); Serial.println("interrupted"); if (button_time - last_button_time > 1000) { if(k == 1){ // lets party Serial.println("Party is over. Go back to work"); k = 0; Serial.println(k); delay(10); } else if (k == 0){ k = 1; // stops the party Serial.print("Party time!!!"); Serial.println(k); } last_button_time = button_time; } } void party(){ while(k == 1){ for (val=255; val>0; val--) { analogWrite (11, val); analogWrite (10, 255-val); analogWrite (9, 128-val); delay (1); } for (val = 0; val <255; val++) { analogWrite (11, val); analogWrite (10, 255-val); analogWrite (9, 128-val); delay (1); } clean(); delay(1); }} |