اردوينو – الدرس الرابع – إضاءة RGB LEDs

مبتدئ

مخطوطة الاردوينو

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

int redPin = 9;
int greenPin = 10;
int bluePin = 11;
 
#define COMMON_ANODE
 
void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);  
}
 
void loop()
{
  setColor(255, 0, 0);  // red
  delay(1000);
  setColor(0, 255, 0);  // green
  delay(1000);
  setColor(0, 0, 255);  // blue
  delay(1000);
  setColor(200,255 , 0);  // yellow
  delay(1000);  
  setColor(80, 0, 80);  // purple
  delay(1000);
  setColor(0, 255, 255);  // aqua
  delay(1000);
}
 
void setColor(int red, int green, int blue)
{
  #ifdef COMMON_ANODE
    red = 255 - red;
    green = 255 - green;
    blue = 255 - blue;
  #endif
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  
}

 

 

تبدأ المخطوطة بتحديد منفذ كل لون
إنسخ الكود

int redPin = 11;
int greenPin = 10;
int bluePin = 9;

 

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

    void setup()
    {
      pinMode(redPin, OUTPUT);
      pinMode(greenPin, OUTPUT);
      pinMode(bluePin, OUTPUT);  
    }

 

 

قبل أن ننظر إلى دالة “LOOP” ، لنلقي نظرة على آخر دالة  في المخطوطة.
إنسخ الكود

    
void setColor(int red, int green, int blue)
{
  #ifdef COMMON_ANODE
    red = 255 - red;
    green = 255 - green;
    blue = 255 - blue;
  #endif
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  
}

لأننا نستعمل الـLED الملونه ذات قطب موجب موحد، عليك إذاً أن تغير قيمة العوامل المتغيرة لكل لون وذلك بطرح القيمة المرادة من 255

 

 

في هذه الدالة تم اخذ ثلاث عوامل متغيرة، واحدة لكل بريق لون ، سيكون العامل المتغير من 0 وحتى 250
حيث يعني 0 القيمى الصغرى  و 255 هي القيمة القصوى
تستدعى الدالة analogWrite للتحكم في بريق كل LED
إذا نظرت في دالة  loop فستلاحظ اننا نغير في قيمة الألوان التي نريد عرضها ثم ننتظر ثانية قبل أن نذهب إلى اللون التالي.
إنسخ الكود

    void loop()
    {
      setColor(255, 0, 0);  // red
      delay(1000);
      setColor(0, 255, 0);  // green
      delay(1000);
      setColor(0, 0, 255);  // blue
      delay(1000);
      setColor(255, 255, 0);// yellow
      delay(1000);  
      setColor(80, 0, 80);  // purple
      delay(1000);
      setColor(0, 255, 255);// aqua
      delay(1000);
    }

 

 

قم بإضافة بعض الألوان إلى المخطوطة الخاص بك وشاهد تأثيرها في الـLED الملونه.

إذا كنت تستعمل الـLED الملونه ذات قطب سالب موحد، لا تقم بطرح القيمة المرادة من 255


الصفحة التالية