استخدام شام دوينو مع دارة demultiplexer و ليدات RGB

مقدمة

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

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

ليد RGB

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

  • النقطة المشتركة هي (+) .
  • النقطة المشتركة هي (-) .

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

RGB_common_K_A

 

RGB_RGBpin

 

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

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

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

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

  • الأحمر FF و بالتحويل من نظام العد السداسي عشر إلى العشري فهو يساوي 255 .
  • الأخضر  FF و بالتحويل من نظام العد السداسي عشر إلى العشري فهو يساوي 255 .
  • الأزرق FF و بالتحويل من نظام العد السداسي عشر إلى العشري فهو يساوي 255 .

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

multiplexer/demultiplexer

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

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

  • أرجل الانتخاب(الاختيار) : المسؤولة عن اختيار أية قناة دخل/خرج ستعمل من بين مجموعة الأقنية الموجودة .
  • أرجل الدخل/الخرج المشترك :  الدخل الذي سيطبق على الخرج/الدخل المنتخب .
  • أرجل الأقنية التي ستُنتخب : ليكن لدينا multiplexer/demultiplexer له قناتين (مجموعتين) من المداخل/المخارج و يمكن حسب الدارة أن تكون كل قناة تتألف من خط إلى عدّة خطوط لذلك مثلاً النوع الذي سنستخدمه في هذا الدرس CD4053 يسمى triple 2 channel multiplexer  أي قناتين و كل قناة ثلاثية (بثلاث خطوط) .
  • أرجل التغذية .

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

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

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

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

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

CD4053_truthtable

مخطط CD4053 :

مخطط وظيفي لـ CD4053

مخطط وظيفي لـ CD4053

توضيح لأرجل الآيسية

توضيح لأرجل الآيسية

مخطط الوصل : 

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

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

الكود :

 

شرح عن الكود :

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

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

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

 

روابط خارجية :