التحكم في RGB باستخدام الريموت اكتب تعليقُا

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

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

في هذا المشروع سنقم بأستخدام مستقبل الاشعة تحت الحمراء infrared (IR) receiver مع الاردوينو  للتحكم في RGB ليد بأستحدام الريموت كنترول وهو أيضا يرسل أشعة تحت الحمراء وهذه الاشعة أي التحت الحمراء لا يمكن رؤيتها بالعين البشرية المجردة  , ولكن يمكن مشاهدتها بأبسط طريقة من خلال كاميرا  الهاتف , أي يتم فتح كاميرا الهاتف وتوجيه الريموت كنترول نحوها  والضغط علي اي زر فيها   حينها ستلاحظ تلك الاشعة التي نتحدث عنها الان . وهذه الطريقة يمكن أستخدامها في معرفة عمل الريموت كنترول من عدمه .

متطلبات المشروع

منتجات المشروع

بامكانك شراء كل منتج على حدى من المتجر بالضغط على المنتج المطلوب
او شراء منتجات المشروع بالكامل ادناه

شراء منتجات المشروع بالكامل

تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

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

بأعتبار أن  RGB هو عبارة عن ثلاث ليدات في واحد , ومجموع أطرافهم السالبة في رف واحد , أذا يتم توصيل الطرف السالب الى سالب الاردوينو , بينما بقية الاطراف الثالث الحرة يتم ربطها مع الاردوينو في المنافذ الرقمية والمخطط بالاسفل يوضح ذلك .

أما بخصوص  مستقبل الاشعة تحت الحمراء  يتم توصيل أطرف التغذية الى منافذ التغذية في الاردوينو , ويوصل طرف الاشارة الي الرقيمية في الاردوينو .

ملاحظ : يتم وصل ثلاث مقاومات مع RGB ليد وذلك بغرض تقليل التيار  المسحوب .

FMOBJ33IJBPSNPA.LARGE

الكود البرمجي

لتحميل الكود البرمجي اضغط هنا
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

int red_light_pin= 9;
int green_light_pin = 6;
int blue_light_pin = 5;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(8,OUTPUT); 

    pinMode(red_light_pin, OUTPUT);
  pinMode(green_light_pin, OUTPUT);
  pinMode(blue_light_pin, OUTPUT);
}

void loop() {
   if (irrecv.decode(&results)) {
      Serial.println(results.value,HEX);
      if (results.value == 16753245)     {RGB_color(255, 0, 0); }// Red 1
      else if (results.value == 16736925)  {RGB_color(0, 255, 0); }// Green 2
      else  if (results.value == 16769565)     {RGB_color(0, 0, 255); }// Blue 3 
      else if (results.value == 16720605)  {RGB_color(255, 255, 255);} // White Color 4
      else if (results.value == 16712445)     {RGB_color(170, 0, 255); }// Purple Color 5
      else if (results.value == 16761405)  {RGB_color(255, 255, 0); } //6
      else if (results.value == 16769055)     {RGB_color(255, 0, 255); }//7   
      else if (results.value == 16754775)     {RGB_color(100, 50, 200); }//8 
      else if (results.value == 16748655)     {RGB_color(200, 30, 120); }//9
      
      else if (results.value == 16750695)  {RGB_color(0, 0, 0);} //0 
      irrecv.resume(); // Receive the next value
    }
delay(100);
      }
void RGB_color(int red_light_value, int green_light_value, int blue_light_value)
 {
  analogWrite(red_light_pin, red_light_value);
  analogWrite(green_light_pin, green_light_value);
  analogWrite(blue_light_pin, blue_light_value);
}

الي مشروع أخر بأذن الله 

تحياتي ^_^

اترك تعليقاً



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