قيادة ليدات RGB باستخدام أردوينو و دارة demultiplexer

مقدمة

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

سيتم في هذا المشروع تعلم استخدام دارات multiplexer/demultiplexer لتقليل عدد المخارج اللازمة للتحكم بالليدات ، و لزيادة التحدي سنستخدم ليدات RGB و التي تختلف عن الليدات العادية بأنها قادرة على بث الألوان الرئيسية R red G green B blue و الأمزجة الممكنة بينهما و ذلك من خلال تحديد قيمة الجهد المطبق و هي بحاجة إلى استخدام مخارج نوع PWM المحدودة أصلاً .

ليد RGB

يتألف الليد RGB من ثلاث ليدات داخلية ( أحمر  و أخضر  و أزرق ) و بالتالي يوجد له 3 أرجل بالإضافة إلى رجل و هي عبارة عن النقطة المشتركة بينها ، بالتالي لدى هذا النوع من الليدات أربع أرجل ، و لها نوعين تبعاً لذلك :

يتم تمييز الأرجل من خلال أطوالها حيث يكون الرجل الأطول هي النقطة المشتركة و الرجل على يسارها هي red و على يمنها Green ثم Blue ، كما يمكن فحص الأرجل عبر مقياس متعدد multimeter و ذلك من وضع نمط فحص الديود .

الشكل الحقيقي لليد

لإضاءة اللون الاحمر مثلاً فإننا نطبق جهد على رجل الليد الأحمر فقط و نطفئ الأخضر و الأزرق . و لإضاءة لون أبيض فإننا نضيء الليدات الثلاثة حيث أن اللون الأبيض هو مزيج الألوان الثلاثة معا  و كذلك أي لون هو مزيج للألون الثلاثةبنسب معينة .

يمكن عبر الأردوينو الحصول على خرج بأي قيمة جهد (بين 0 و 5 ب 256 تدريجة ) نريد عبر أرجل PWM و يمكن معرف الجهود التي نريد تطبيقها عبر رمز اللون بالHEX فهو يحوي ثلاث مجموعات أرقام (كل مجموعة خانتين ) و كل مجموعة هي للون . مثلاً : #FFFFFF هي للون الابيض أي أنه ناتج عن دمج الألون التالية :

و إن تابع الخرج التماثلي في الأردوينو يأخذ قيم تتراوح بين 0 و 255 . و يمكن الحصول على رمز اللون  ( و بالتالي نسب مزجه من الألوان الثلاثة) من خلال برنامج رسم أو مواقع color hex code .

multiplexer/demultiplexer

إن الـ multiplexer هو دارة منطقية تستخدم لانتخاب (اختيار) دخل واحد من مجموعة مداخل و أما الـ demultiplexer فهو دارة منطقية لها آلية عمل مشابهة و لكن لانتخاب(اختيار) خرج واحد من عددة مخارج مع وجود دخل موحد . عملياً يصنع البعض هذه الدارات لتعمل بالاتجاهين لذلك يسمونها multiplexer/demultiplexer .

تتألف هذه الدارة بشكل عام من مجموعة من الأرجل و هي :

التطبيق العملي

سوف نستخدم أردوينو و نأخذ منها ثلاث مخارج PWM للتحكم بالليدين بنفس الوقت أي أنها خرج مشترك و سنختار خرج (ليد) من بين الليدين لكي يطبق عليه هذا الخرج ، حيث يتم ذلك عبر آيسية CD4053 .

للاستفادة من ميزة اتصال أردوينو مع الحاسب تم التحكم باختيار اللون عبر الحاسب من خلال ارسال محرف عبارة عن أول حرف فقط (للسهول فقط r – g -b ) .

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

تنبيه : الليد الذي تم استخدامه في هذا الدرس من نوع مصعد مشترك (+) و بالتالي تفعيل الليد عبر جعله في حالة 0 أول LOW و لا ننسى طبعاً استخدام مقاومات حماية لكل ليد جزءي عند كل رجل من الليد RGB بقيمة 470 أو 220 أوم  .

مخطط CD4053

مخطط وظيفي لـ CD4053
توضيح لأرجل الآيسية

مخطط الوصل

مخطط توضيحي للتوصيل

الكود

/*
RGB and CD4053 code by atadiat.com
2013-2014
*/

int red_led_pin = 6 ;
int green_led_pin = 10 ;
int blue_led_pin = 9 ;

void setup(){

 pinMode(red_led_pin,OUTPUT);
 pinMode(green_led_pin,OUTPUT);
 pinMode(blue_led_pin,OUTPUT);

Serial.begin(9600);

}

void loop(){
  int color ;
  if(Serial.available()){
  color = Serial.read();}

  switch (color) {
   case 'r' :

     analogWrite(red_led_pin, 0);
     analogWrite(green_led_pin, 255);
     analogWrite(blue_led_pin, 255);
     break ;
   case 'g' :

     analogWrite(red_led_pin, 255);
     analogWrite(green_led_pin, 0);
     analogWrite(blue_led_pin, 255);
     break ;  
   case 'b' :

     analogWrite(red_led_pin, 255);
     analogWrite(green_led_pin, 255);
     analogWrite(blue_led_pin, 0);
     break ;

  }
}

شرح عن الكود

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

يتم في تابع الحلقة loop و الذي ينفذ طالما المتحكم في حالة عمل ، استقبال المحرف عبر هذا الاتصال في حال كان مهيئ و تخزينه في متحول من نوع محرف ، ثم يتم استخدام بنية switch لمعالجة الاحتمالات حسب المحرف .

فيديو التنفيذ

روابط خارجية

 

Exit mobile version