RGB Led إضاءة الـ July 7, 2017 – Posted in: Arduino – Tags: , , ,

في هذا الدرس سنتعلم كيفية استعمال الـLED الملون أو RGBعن طريق خاصية الـ PWM وكذلك سوف نستعمل أمرanalogWrite  من مكتبة الاردوينو للتحكم في لون الـLED.

قبل البدء في الدرس سوف اتحدث عن ال RGB led  و خاصية ال PWM بشكل عام ,

الـ RGB Led

ال RGB led عبارة عن LED ملون مثل اي LED عادي ولكن يوجد داخل الـ LED الملون 3 من ال led وهي، أحمر LED أخضر LED وأزرق LED   ويمكننا التحكم فيهم، كما يمكننا إنتاج الالوان بدمج كل من ألوانها عن طريق التحكم في بريق كل واحدة من هذه الإضاءات.

يتكون اللد الملون من نوعين وهما common anode وال common cathod كما ويوجد له أربع أرجل بحيث يوجد أحد الارجل أطول من الباقي حيث يختلفوا بطريقة التوصيل الداخلية لليد كما في الشكل التالي

يكون ال common anode الأطراف الموجبة للدات الثلاثة متصلة مع بعضها البعض اما في حالة ال comman cathod يكون الأطراف السالبة متصلات مع بعضها البعض ويكون الرجل الطويلة هي النقطة المشتركة.

MWP نظرياً

MWP هي تقنية للتحكم في الطاقة نحن نستعملها هنا للتحكم في كمية الطاقة لكل LED.

يعرض الرسم البياني التالي إشارة MWP على منفذ الأردوينو

تقريبا كل 1/500 ثانية، تستطيع الاردوينوا اخراج نبضة من الPWM, ,ونستطيع التحكم في طول –طاقة – هذا النبضة  باستعمال دالة  “analogWrite  بحيث إذا كانتanalogWrite(0)  لا تعطينا أي ذبذبة و analogWrite(255) تعطينا ذبذبة متواصلة.

إذا حددنا قيمة بين 0 و255 فسنحصل على ذبذبة، إذا كانت الإشارة العالية مقدارها 5% فقط فذلك يعني اننا نستعمل 5% من الطاقة كما في الشكل أعلاه.

نفس الشيء إذا كان منفذ الاخراج يساوي 5V  في 90% من الوقت فسنحصل على 90% من الطاقة, وتساوي 90% * 5V وتساوي 4.5V.
لا يمكننا ملاحظة تغير(إطفاء وتشغيل) إشعاع الإضاءة بهذه السرعة فيخيل لنا أن بريقها يتغير فقط.

ولا توجد هذا الخاصية لجميع منافذ الاردوينو بل توجد في عدد معين، ففي اردوينو اونو توجد في منافذ ذات الارقام التالية D3,D5,D6,D9,D10,D11 ويكون بجانب كل منفذ الإشارة التالية.

القطع المطلوبة

نحتاج في هذا الفيديو  ليد من نوع RGB, مقاومات ٢٢٠ اوم,  اسلاك , اردوينو من نوع اونو ولوحة توصيل

   
RGB Led مقاومات ٢٢٠ اوم
 
اسلاك اردويتو انو
 
لوحة توصيل

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

سوف نقوم بتوصيل ليد ال rgb الى لوحة التوصيل بحيث نوصل الرجل الطويلة مع المنفذ الأرضي، ومن ثم نقوم بتوصيل باقي الأرجل الى أحد أطراف المقاومة والطرف الاخر للمقاومة الى منافذ الاردوينو وهم D9, D10,D11

كما في الشكل التالي:

بعد ما قمنا بتوصيل الدائرة سوف ننتقل الى الكود لشرحه.

الكود:

سوف نقوم بتعريف ٣ متغيرات و ربطهم من المنافذ المتصلة في اليد عن طريق هذه الأمر

ومن ثم تعريف المخارج الثلاث كمخارج في دالة ال setup () عن طريق هذا الأوامر

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

إذا نظرت في دالة loop فستلاحظ اننا نغير في قيمة الألوان التي نريد عرضها ثم ننتظر ثانية قبل أن نذهب إلى اللون التالي. وذلك بكتابة اسم الدالة ومن ثم كتابة قيم الألوان لكل متغير كما يلي:

الكود كامل

الألوان

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

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

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

استعمال ألوان الإنترنت

يمكنك أيضا إنتاج أي لون تريده وذلك باختياره عن طريق أي مصدر من المصادر الخاصة بالألوان بالدخول مثلا الى هذا الرابط

https://color.adobe.com/create/color-wheel/

إذا كنت قد قمت ببعض البرمجة من قبل فستعلم أن الألوان ترمز إليها بأرقام HEX على القاعدة 16.  مثلا يرمز للون الأحمر بـ  FF0000# فهذه الأرقام 6 ترمز للون متكونة من ثلاث أزواج، فأول رقمين يرمزان للأحمر، الرقمان التاليان للأخضر والأخيران للأزرق الأحمر هو FF0000#  لأن فيه القيمة القصوى للأحمر وليس فيه أي ألوان أخرى

بهذه الطريقة يمكن لنا ان نستخرج أي لون بسرعة. لنصنع هذا اللون مثلاً (#4B0082) قيمة الأحمر الأخضر والأزرق هم كالآتي.

يمكنك أن تضع هذه القيم في دالة “SetColor” وذلك بإضافة 0x أمام الأرقام وذلك لأنها ارقام HEX لنقم بكتابة هذا الون في الدالة ومن ثم تحميله على الاردوينو: #4B0082 وقم باختيار الوان أخرى واضافتها الى دالة اللوب loop كما يلي

لا تنسى أن تضيف امر الـ“Delay” بعد كل لون حتى تتمكن من مشاهدته.