التحكم فى شدة إضاءة ليد RGB Led باستخدام الأردوينو

الموضوع في 'برمجة الاشياء arduino' بواسطة ابوفارس, بتاريخ ‏27 ديسمبر 2019.

  1. ابوفارس

    ابوفارس ادارة المنتدى إداري

    إنضم إلينا في:
    ‏12 يوليو 2014
    المشاركات:
    574
    الإعجابات المتلقاة:
    191
    نقاط الجائزة:
    43
    الجنس:
    ذكر
    وصف المشروع
    الألوان الأساسية هى الأحمر الأخضر الأزرق وعند خلطهم ببعض تتنج بقية الألوان بداية من الأبيض حتى الأسود، وباستعمال 3 مقاومات متغيرة سوف نتحكم فى درجة كل لون (الأحمر Red) و (الأخضر Green) و (الأزرق Blue) وسوف يقوم الأردوينو بإرسال قيم الألوان إلى مصباح LED المتعدد الألوان والذى يعرف باسم RGB LED.

    جدول المكونات
    العددالنوع
    1لوحة أردوينو أونوArduino Uno board
    1مصباح LED متعدد الألوانRGB LED
    3مقاومة 150 أومResistor 150 ohm
    3مقاومة متغيرة 10 كيلو أومPotentiometer 10 k ohm
    1لوحة اختبارBread board
    مجموعةأسلاك توصيلconnecting wires
    توصيل الدائرة
    [​IMG][​IMG]

    شرح المكونات
    • لوحة Arduino Uno
    [​IMG]

    نستخدمها في التحكم فى الدائرة، استقبال وإرسال الإشارات بتوقيت معين وكيفية معينة نختارها طبقاً لعمل الدائرة وبواسطة الكود الذى سيتم شرحه لاحقاً.

    [​IMG]

    يرجى تثبيت البرنامج الخاص بالأردوينو من هنا والذي سنستخدمه في كتابة الكود وعمل compiling ورفعه إلى لوحة الأردوينو عن طريق كابل USB، ولمعرفة كيفية تثبيت البيئة التطويرية المتكاملة لأردوينو (Arduino IDE) من هنا.

    [​IMG]لتحميل ورقة البيانات datasheet الخاصة بلوحة الأردوينو أونو Arduino Uno اضغط هنا، ولتحميل نسخة أخرى اضغط هنا، ويوجد هنا في موقع الصناع العرب مواضيع مفصله عن الأردوينو وكيفية تنصيب البرنامج، وللمزيد يمكنك زيارة الموقع الخاص به من هنا.

    • مصباح led متعدد الألوان RGB LED
    [​IMG]

    هذا النوع من الليد يحتوى على 4 أطراف: طرف للون الأحمر وطرف للون الأخضر وطرف للون الأزرف والطرف الرابع مشترك إما أن يكون common

    [​IMG]

    الطرف المشترك إما أن يكون common anode أو common cathode، والرسم التالى يوضح الفرق بينهما:

    [​IMG]

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

    [​IMG]

    يوجد فى الأسواق شريط لمبات RGB LED ويعرف باسم (rgb led strips) حيث يتكون من مجموعة كبيرة من الليدات وتعطى أشكالاً جميلة عند إضاءتها والتحكم بها بالأردوينو كما يوضحه هذا الملف المرفق من هنا وبالبحث على الإنترنت ستجد المزيد من التجارب.

    لتحميل ورقة البيانات datasheet الخاصة بالليد RGB (منتج من إحدى الشركات كمثال) اضغط هنا.

    • المقاومات Resistors
    • [​IMG]المقاومة هي عنصر كهربى فائدته إعاقة مرور التيار بقدر معين يتناسب مع قيمة المقاومة، فالتيار المار فى مقاومة 100 أوم يكون أكبر من التيار المار في مقاومة 10 كيلو أوم عند تطبيق نفس قيمة الجهد عليهما.
      تقاس المقاومة بوحدة الأوم (ohm) ويرمز له بهذا الرمز: [​IMG]وشكل المقاومة في الدوائر كالتالي:
      [​IMG]


      أو[​IMG]

      وللمقاومة ألوان يتم من خلال ترتيب الألوان هذه تحديد قيمة كل مقاومة، والجدول التالى يوضح القيم الخاصة بكل لون:

      [​IMG]

      نحتاج في الدائرة عدد 3 مقاومات كل منها 150 أوم (بهذا اللون)

      [​IMG]

      من خلال هذا الرابط يمكنك حساب قيمة المقاومة بالألوان أو من هذا الرابط، وللمزيد من الشرح فى هذا الرابط.

    • المقاومة المتغيرة 10 كيلو أوم Potentiometer 10 K ohm
    وتعرف بالإنجليزية Potentiometer أي أنها تقسم الجهد الداخل إلى جهد أصغر، لذلك تختلف المقاومة المتغيرة عن المقاومة العادية في أنه يمكن تغيير قيمتها فى مدى معين مثلاً من 1 كيلو أوم وحتى 10 كيلو أوم، وهذه بعض أشكالها فى الطبيعة:

    [​IMG][​IMG][​IMG][​IMG]
    ولها 3 أطراف يوصل طرفان منها بمصدر الجهد والطرف الثالث يكون الخرج عليه قيمة الجهد المتغيرة حسب تحريك المفتاح وتكون بالطبع أقل من قيمة الجهد الكلي على طرفي المقاومة، والصور التالية توضح شكل المقاومة في الدوائر:

    [​IMG][​IMG][​IMG][​IMG]

    يرجى زيارة الرابط التالي للمزيد حول مجزئ الجهد من هنا.

    • لوحة اختبار الدوائر Bread board
    [​IMG]

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

    تحتوي معظم اللوحات هذه على صفين على الجوانب أحدهما أحمر والآخر أزرق كما بالصورة بالأسفل (A و D)، وكل النقاط فى طول هذا الصف متصلة ببعض.

    باقي النقاط فى المنتصف يمين ويسار الفراغ المنتصف (B و C) مقسمة طولياً وليس أفقياً كما بالأحمر والأزرق، والصورة التالية توضح لك النقاط المتصلة ببعضها:[​IMG]

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

    [​IMG]

    ملحوظة: الصفين الموجب يمين ويسار اللوحة غير متصلين ببعض، والصفين الأرضي أيضاً لذا عليك توصيلهم بهذا الشكل:

    [​IMG]

    وهذه الصورة توضح كيفية تغذية اللوحة بمصدر الجهد والأرضي من الأردوينو:

    [​IMG]

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

    • مجموعة أسلاك التوصيل Connecting wires
    ينصح بالحصول على مجموعة أسلاك للتوصيل مثل التي بالصورة وتستخدم في توصيل العناصر ببعضها أو التوصيل بأجزاء خارجية مثل لوحة الأردوينو والحساسات وغيرها.

    [​IMG]

    [​IMG]

    وللمزيد عن استخدام الأسلاك (wires) اضغط هنا.

    الكود البرمجي وتجربة وتشغيل الدائرة:

    كود:
    int OUT_R = 11;  //Red pin
    int OUT_G = 9;   //Green pin
    int OUT_B = 10;  //Blue pin
    int IN_R = A3;   //Red control Potentiometer
    int IN_G = A1;   //Green control Potentiometer
    int IN_B = A2;   //Blue control Potentiometer
    void setup()
    {
      //make 3 pins output for RGB LED pins
      pinMode(OUT_R, OUTPUT);
      pinMode(OUT_G, OUTPUT);
      pinMode(OUT_B, OUTPUT);
      //make 3 pins inputs for Potentiometers
      pinMode(IN_R, INPUT);
      pinMode(IN_G, INPUT);
      pinMode(IN_B, INPUT);
    }
    void loop()
    {
       //reading the Potentiometers values and do mapping and send analog value to the LED pins
      analogWrite(OUT_R, map(analogRead(IN_R), 0, 1023, 0, 255));
      analogWrite(OUT_G, map(analogRead(IN_G), 0, 1023, 0, 255));
      analogWrite(OUT_B, map(analogRead(IN_B), 0, 1023, 0, 255));
      delay(1);
    }
    

    قم بإنشاء ملف مشروع جديد بالاسم الذي تريده واكتب الكود السابق فيه واحفظه عندك على جهازك، قم بتوصيل لوحة الأردوينو بالكمبيوتر لديك وارفع الكود إلى لوحة الأردوينو (upload).

    يمكنك تجربة محاكاة الدائرة من هنا، وفى هذا الرابط ستجد الدائرة مرسومة كما هو مُوضح بالأعلى، للتشغيل اضغط على زر Start Simulation لبدء المحاكاة.

    يمكنكم تحميل رسم وتصميم الدائرة ببرنامج Fritzing من هنا وملف كود الأردوينو من هنا.

    ولتحميل برنامج Fritzing المجاني من خلال الموقع الخاص به اضغط هنا.

    ويمكنك أيضا البحث فى موقع Fritzing وموقع المحاكاة circuits.io عن تصميمات ورسومات لدوائر مختلفة واسعة المجال وتطبيقات متنوعة ورائعة (جربها الآن).

    أتمنى أن يكون الدرس مفيداً لكم.
     

مشاركة هذه الصفحة