RGB LED Digital control
اليوم سنتكلم عن موضوع جديد و ممتع في عالم الإضاءة ألا و هو ال RGB و سنتكلم عن ماهيته , و أنواعه و كيف يعمل ؟
كما سنتطرق لكيفية توصيله مع الأردوينو و نتعلم عدة تقنيات لبرمجته .
أولاً : ما هو ال RGB ؟
هو نوع من أنواع الباعث الضوئي LED يحتوي على الألوان
الرئيسية المكونة لكل الألوان في الطبيعة "الأخضر و الأحمر و الأزرق" و
عندما يتم خلط هذه الألوان بنسب مختلفة , تظهر ألوان أخرى نتيجة هذا الخلط ,
كالأصفر و الأبيض و الزهري ..ألخ كلٌ حسب نسبة "شدة" إضاءة كل لون من
الألوان الأساسية RGB
تسمى هذه الطريقة بطريقة " الباعث متعدد الألوان " و هي بحاجة
لدارة إلكترونية لعمل هذا الخلط بُغية الحصول على ألوان مختلفة .
يتكون ال RGB من 4 أرجل , رجل مشترك "مصعد أو
مهبط" و رجل لكل لون رئيسي " أحمر ,أخضر , أزرق " كما في الصورة .
ال RGB يمكن أن يكون ذا مصعد مشترك أو مهبط مشترك , و
لكل نوع طريقة مختلفة قليلاً في التحكم "أي في كود البرمجة"
لنبدأ العمل J :
لنبدأ الآن العمل و لنحضر المكونات الرئيسية لبداية تعاملنا مع ال RGB :
1) RGB LED 5mm
أنا استخدمت الباعث ذو المهبط المشترك
2)مقاومة 470 أوم .
3)أسلاك
4) لوحة تعليمية مثقوبة BreadBoard
5) أفوميتر
6) بطاقة أردوينو .
أولاً كيف نتحقق من نوعية ال RGB الذي بين
يدينا ؟ هل هو مصعد مشترك أم مهبط مشترك ؟
1) أول طريقة للأختبار هو استخدام طريقة الأفوميتر , و التي تعتمد على
خاصية فحص الديود في الجهاز , يجب عند وصل القطب الموجب للأفوميتر بالطرف الموجب
للباعث الضوئي و الطرف السالب للأفوميتر بالطرف السالب للباعث الضوئي , يجب عندها
أن يضيئ الLED أو أن تظهر قراءة على
شاشة الجهاز .
و إذا لم يضيئ ال LED نقوم بعكس أقطاب
الأفوميتر للتأكد .
إذا لم يضيئ ال LED فأعلم أن هناك عطل بالديود أو خطأ بضبط الجهاز
2) بإستخدام طريقة توصيل الدارة بمصدر تغذية :
فقط تقوم بإيصال التغذية للأقطاب بشكل صحيح " ولا تنسى المقاومة لكي لا يتلف الled .
فقط تقوم بإيصال التغذية للأقطاب بشكل صحيح " ولا تنسى المقاومة لكي لا يتلف الled .
ممتاز لقد أنتهينا من الجزء الأول من العمل .
السؤال التالي الآن ... ما هي النسبة التي يجب أن نخلط بها الألوان لنحصل
على ألون المطلوب ؟ و كيف يتم ذلك بالبرمجة ؟
حسناً , يجب معرفة في البداية
الألوان الفرعية و نسبة تداخل كل لون اساسي فيها , يتم معرفة هذا بطرق
عديدة , حيث أن أغلب برامج الرسوم و التعامل مع الصور تعطي هذه النسب بشكل دقيق .
فمثلاً برنامج الpaint المتوافر لدى الجميع
تقريباً يوفر ما نحتاجه للبرمجة , و طريقة الحصول على القيم كالآتي
كيفية توصيله :
يتم توصيل الدارة مع بطاقة الأردوينو على الشكل التالي :
يمكن أيضاً توصيل فقط مقاومة واحدة على المدخل المشترك " 150- 220 أوم
" .
معلومة مهمة ايضاً حول برمجة ال RGB , حيث يمكننا عمل جدول
يسمى جدول الحقيقة Truth
table يمكننا معرفة ما هو اللون الذي
سينتج عند كل عملية إدخال و هذا ما سنراه بعد قليل :
الآن لندخل للبرمجة ..
برمجة ال RGB باستخدام الأردوينو :
سنسنخدم طريقتين للبرمجة :
1) البرمجة باستخدام أوامر الإخراج الرقمية digital Write .
2) البرمجة باستخدام أوامر الإخراج التناظرية analog Write
و سنرى الفرق بين الطريقتين كما يلي :
1) البرمجة
باستخدام أوامر الإخراج الرقمية digital Write:
يستحدم الأمر digital Write لتفعيل أو عدم تفعيل الخرج , و محددات استخدام
هذه الطريقة هي محدودية الألوان التي يمكن الحصول عليها " عددها 23
و يساوي 8 ألوان فقط ! ."
سنقوم بعمل جدول حقيقة و استخدام طريقة برمجية الPaint لمعرفة
الألوان التي ستظهر :
هذا ما سنستخدمه في كتابة برنامج الأردوينو الآن
أولاً جدول الحقيقة Truth Table هو جدول يتم وضع جميع الأحتمالات التي ستظهر عند تطبيق الأمر و إخراجه لمداخل المتحكم , أي بمعنى أخر هو جدول يوضح العلاقة بين المدخلات و المخرجات .
لنرى الجدول التالي و الذي يوضح جدول الحقيقة لمشروعنا :
و للتوضيح أكثر , لو اردنا إظهار اللون الأحمر RED يجب أن تكون المداخل المربوطة مع مدخلي اللون الأزرق و الأخضر في وضع منخفضLOW و مدخل اللون الأحمر في وضع مرتفع HIGH و هكذا .
لنرى الجدول التالي و الذي يوضح جدول الحقيقة لمشروعنا :
![]() |
جدول الحقيقة للRGB |
و للتوضيح أكثر , لو اردنا إظهار اللون الأحمر RED يجب أن تكون المداخل المربوطة مع مدخلي اللون الأزرق و الأخضر في وضع منخفضLOW و مدخل اللون الأحمر في وضع مرتفع HIGH و هكذا .
توصيلة الدارة كما في الصورة أدناه .
توضيح بسيط للبرنامج ... قمت هنا بكتابة الأوامر في جملة استدعاء لوحدها و
وضعت كل تعليمات الخرج فيها ثم قمت باستدعائها داخل جملة التكرار , مثال
Void setup(){
…….
}
Void Red(){
Write your
code for red color ….
}
Void loop(){
// need to
blink red color….
Red();…..
call statement , here the prog. Will return
to void Red and execute it then return to loop statement .
}
و هنا فيديو يبين تطبيق البرنامج على دارة عمليه :
التدوينة القادمة ستتحدث عن التحكم باستخدام أوامر الإخراج التناظرية analog Write
إلى ذلك الوقت , إلى اللقاء
0 التعليقات :
إرسال تعليق