مقدمـــــــة عن المشروع
ماذا لو استطعنا توليد ألوان مختلفة باستخدام RGB واحد وجعل زاوية غرفتنا أكثر جاذبية؟ لذلك ، يوجد هنا مصباح بسيط لخلط الألوان مع الاردوينو والذي يمكن أن يغير اللون عندما يكون هناك تغيير في الإضاءة في الغرفة . لذلك سوف يغير هذا المصباح لونه تلقائيًا وفقًا لظروف الإضاءة في الغرفة .
كل لون هو مزيج من اللون الأحمر والأخضر والأزرق . حتى نتمكن من توليد أي لون عن فإننا سنستخدم PWM أي كثافة الضوء على LDRs . سيؤدي ذلك إلى مزيد من التغييرات لشدة اللون الأحمر والأخضر والأزرق في RGB LED ، وسيتم إنتاج ألوان مختلفة.
متطلبات المشروع
Materials required:
- 1 x Arduino UNO
- 1 x Breadboard
- 3 x 220-ohm resistors
- 3 x 1-kilohm resistors
- Jumper wires
- 3 x LDRs
- 3 x colored strips (red, green, blue)
- 1 x RGB LED
-
-
-
-
-
بوردات ولوحات نحاسية, جميع المنتجات
لوح التجارب 830 نقطة لون ابيض Solderless Breadboard
لمحة سريعة
- لوحة التجارب mb102
- 830 نقطة بدون لحام
- مثالي لتجربة تصميم الدوائر في المختبرات
- متوافق مع المقاومة والثنائيات والترانزستورات ومصابيح LED والمكثفات وأنواع أخرى من المكونات الإلكترونية
- إحداثيات ملونة لسهولة وضع المكونات.
- تقبل مجموعة متنوعة من أحجام الأسلاك 20-29 AWG
SKU: AA071
طريقة العمل والتوصيل
أجري جميع التوصيلات وفقا للمخطط أدناه .

بعد تحميل الكود البرمجي المرفق أدناه ,
نظرًا لأننا نستخدم ثلاثة LDR ، فعندما يحدث تغيير ضوئي على هذه المستشعرات ، تتغير المقاومة كنتيجة لذلك تتغير الفولتية أيضًا عند المداخل التماثلية في الاردوينو و التي تعمل بمثابة دبابيس إدخال لأجهزة الاستشعار .
عندما تتغير شدة الضوء على هذه المستشعرات ، سوف يتوهج RGB مع تغير مقدار المقاومة ولدينا خلط ألوان مختلف في RGB بفضل استخدام خاصية PWM .
الكــــــــود البرمجي
لتحميل الكود البرمجي اضغط هنا
const byte red_sensor_pin = A0;
const byte green_sensor_pin = A1;
const byte blue_sensor_pin = A2;
const byte green_led_pin = 9;
const byte blue_led_pin = 10;
const byte red_led_pin = 11;
unsigned int red_led_value = 0;
unsigned int blue_led_value = 0;
unsigned int green_led_value = 0;
unsigned int red_sensor_value = 0;
unsigned int blue_sensor_value = 0;
unsigned int green_sensor_value = 0;
void setup() {
pinMode(red_led_pin,OUTPUT);
pinMode(blue_led_pin,OUTPUT);
pinMode(green_led_pin,OUTPUT);
Serial.begin(9600);
}
void loop() {
red_sensor_value = analogRead(red_sensor_pin);
delay(50);
blue_sensor_value = analogRead(blue_sensor_pin);
delay(50);
green_sensor_value = analogRead(green_sensor_pin);
// print those values onto the serial monitor
Serial.println("Raw Sensor Values:");
Serial.print("\t Red: ");
Serial.print(red_sensor_value);
Serial.print("\t Blue: ");
Serial.print(blue_sensor_value);
Serial.print("\t Green: ");
Serial.println(green_sensor_value);
// convert from 0-1023 to 0-255
red_led_value = red_sensor_value / 4; // define Red LED
blue_led_value = blue_sensor_value / 4; // define Blue LED
green_led_value = green_sensor_value / 4; // define Green LEd
// print mapped values to serial monitor
Serial.println("Mapped Sensor Values:");
Serial.print("\t Red: ");
Serial.print(red_led_value);
Serial.print("\t Blue: ");
Serial.print(blue_led_value);
Serial.print("\t Green: ");
Serial.println(green_led_value);
// use analogWrite() to set output for RGB LED
analogWrite(red_led_pin,red_led_value); // indicate red LED
analogWrite(blue_led_pin,blue_led_value); // indicate blue LED
analogWrite(green_led_pin,green_led_value); // indicate green
}







