مثال الوميض | Blink May 26, 2017 – Posted in: Arduino – Tags: , , , , ,

في هذا الدرس سنبدأ بتطبيق بعض الأمثلة على الاردوينو

، بحيث اننا سنستخدم مثال موجود داخل البرنامج و هو الـBlinks. ما سنحتاجه في هذا الفيديو (اردوينو من نوع اونو وكابل لوصله لجهاز الحاسوب)

كما ذكرنا سابقا، يتواجد على لوحة الاردوينو ليد وحيد نستطيع ان نتحكم به، يكتب الى جانبه حرف (L) وفي هذا الفيديو سنتحكم بإضاءته و اطفائه. وحيث ان هذا الليد مرتبط في  الـ pin رقم ١٣في أغلب لوحات الاردوينو.

بعد ايجاد الضوء ووصل الكايبل بالاردوينو والحاسوب سنتأكد من اختيار كل من البورد والمنفذ الصحيحان في البيئة التطويرية للاردوينو ، وبعدما تأكدنا من ذلك سنفتح البرنامج عن طريق   File → Examples → 01.Basicsà Blink  الان يمكننا رؤية الكود .

بعدما ظهرت نافذة الكود سنضغط على زر التحميل و ننتظر بعض الوقت اذا ما كان هناك اي خطاء في البرنامج سيرسل رسالة Done uploading في منطقة التنبيهات في الأسفل ، اما اذا ظهر بعض الاخطاء فليس بالضرورة أن يكون الخطأ في الكود، بل من الممكن أن يكون في اختيار البورد، او في عدم اختيار المنفذ الصحيح، او أن الـDriver غير محمل، عندها يمكنك الذهاب للدرس السابق لتحميله. في البداية يتوجب اختيار بورد الميجا وتحميل الكود و فحص الأخطاء التي يمكن أن تظهر، و بعد ذلك نقوم باختيار البورد الصحيح و المنفذ الصحيح و نرى النتيجة. بعد الضغط على زر التحميل ظهر لدينا بعض الأخطاء و لم يتم تحميل الكود على الاردوينو، لذلك دعونا نتأكد من المنفذ و نوع لوحة الاردوينو التي قمنا باختيارها، ونقوم بتحميل الكود. كما نلاحظ على البرنامج انه بدأ بعملية التحميل للكود وكذلك بدأ كل من الليد rx والليد tx المتواجدات على لوحة الاردوينو يومضان بسرعة  بعدها ظهرت رسالة   uploadingdone في منطقة الأخطاء مشيرة باستكمال العملية ….. مبارك هكذا تكون قد انهيت اول برنامج لك على الاردوينو بنجاح 😀

لو نظرنا الى لوحة الاردوينو سنلاحظ انه الليد يضيء بمقدار ثانية و يطفي بمقدار ثانية

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

pinMode(LED_BUILTIN, OUTPUT); //pinMode(pin number , state);

تذكر أننا نشتغل على المنافذ الرقمية، ويعني ان لدينا حالتان، اما أن يكونا كمخارج او كمداخل، ما يعني أخذ كل من ٥ فولت أو صفر فولت او قراءة ٥ فولت او صفر فولت, في هذه الحالة سنغذي الليد ب٥ فولت و صفر فولت، ما يعني اننا سنستخدم المنفذ كمخرج  فنكتب OUTPUT بالأحرف الكبيرة، اما الخانة التي تسبقها فيجب ان تحوي رقم المنفذ وهنا تم حجز كلمة في الاردوينو خاصة للمنفذ رقم ١٣، ما يعني انك اما ان تستخدم هذه الكلمة لتعريف المنفذ او تكتب رقم  ١٣ مكانها

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

ولو اطلعنا على أول سطر داخلها سنلاحظ هذه الدالة

digitalWrite(LED_BUILTIN, HIGH);

وما تعنيه هذه الدالة ان تبعث على رقم الـpin  (LED_BUILTIN) ٥فولت او صفر فولت, فبعد كتابة digitalWrite نكتب اسم المنفذ او رقمه  المراد التطبيق عليه، واخر خانه نقوم بكتابة الحالة، وهي HIGH, LOW و بتوجب الانتباه للكتابة بالأحرف الكبيرة،

high تعني ٥ فولت, و low تعني صفر فولت

اما السطر الثاني فهو

delay(1000);

وما يعنيه هذا الامر اننا نخبر المتحكم كم من الوقت يلزم ان ينتظر لتنفيذ الامر الذي يليه ، ما يعني كم من الوقت الذي سيستغرقه الليد وهو مضاء. لاحظ ان القيمة داخل الاقواس بالملي ثانية، ويعني انه كل ١٠٠٠ ملي ثانية تساوي ١ ثانية، فمن هنا يمكن قراءة الكود داخل البرنامج كما يلي.

وسيستمر على هذه الحالة لحين فصل الطاقة عن المتحكم 😀

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}