توليد ألوان مختلفة باستخدام RGB وجعل زاويا الغرفة أكثر جاذبية اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

مقدمـــــــة عن المشروع

ماذا لو استطعنا توليد ألوان مختلفة باستخدام 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

طريقة العمل والتوصيل

أجري جميع التوصيلات وفقا للمخطط أدناه .

Arduino-Color-Mixing-Lamp-Circuit-diagram-using-RGB-and-LDR

بعد تحميل الكود البرمجي المرفق أدناه ,

نظرًا لأننا نستخدم ثلاثة 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 
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *