Digital Input | (المداخل الرقمية (إستخدام المفاتيح June 26, 2017 – Posted in: Arduino – Tags: , , , , , , ,

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

سنحتاج في هذا الدرس الى مفتاح من نوع PushButton, مقاومة 10k, ليد , اسلاك,لوحة توصيل واردوينو من نوع اونو.

   
أردوينوا أونو لوحة توصيل
 
PushButton ليد
   
مقاومة 10 كيلو أوم أسلاك

قبل البدء في هذا الدرس ،سوف نتحدث عن مفتاح الpushbutton

مفتاح pushbutton

هو عبارة عن مفتاح يعمل على توصيل نقطتين في الدائرة الكهربائية في حالة الضغط عليه مما يؤدي الى تشغيل الجهاز المشبوك مع الاردوينو. اما في حالة عدم الضغط عليه يتم الفصل بين النقطتين وايقاف الجهاز، ويتكون من عدة ارجل, سوف نسخدم في هذا المثال المفتاح ذو ال ٤ ارجل حيث يكون كما في الشكل التالي كل رجلين موصولين مع بعضهما ف A&D متصلين مع بعضهم و B&C متصلين مع بعضهما و عند الضغط على المفتاح يتم توصيل جميع الارجل مع بعضها البعض.

هناك طريقتان لتوصيل المفاتيح مع منافذ الاردوينو وهي توصيلها مع مقاومة كـ  pull up resistor  أو كـ pull down resistor  مع مدخل أردوينو حتى يعمل المفتاح بالشكل الصحيح.

في حالة ال pull up resistor كما نشاهد في الصورة، يكون مدخل المتحكم متصل في مصدر الجهد عن طريق مقاومة وهكذا تكون قراءة المتحكم HGIH. عند الضغط على المفتاح يتم توصيل منفذ المتحكم ب GND وتصبح القراءة LOW كما سنلاحظ في الكود بعد قليل.

اما في حالة الـ pull down resistor يكون منفذ المتحكم متصل ب GND  عن طريق مقاومة كما نشاهدنا في الصورة وتكون قراءة المتحكم LOW ، وعند الضغط على المفتاح يتم توصيل منفذ المتحكم ب 5V  وتصبح القراءة HIGH كما سوف نراها في الكود بعد قليل.

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

في البداية سنقوم بتوصيل الدائرة كما في الشكل التالي، وذلك بتوصيل السلك من منفذ رقم 2 الى طرف المقاومة ووصل الطرف الاخر للمقاومة مع الGND

ومن ثم وصل طرف المقاومة المتصل مع منفذ رقم ٢ مع أحد اطراف المفتاح اما الطرف الاخر للمفتاح نقوم بوصله مع ال5 فولت،

وأخيرا نوصل اللد مع المنفذ ١٣ كما في الشكل .

ملاحظة: نستطيع وصل اللد مباشرة مع المنفذ رقم ١٣ لوجود مقاومة متصلة مع المنفذ.

بعد الانتهاء من وصل الدائرة، دعونا نبدأ بكتابة الكود، بعد فتح البرنامج سنقوم بتعريف ٣ متغيرات ، اثنان منهما لأرقام المنافذ اما الأخير لحالة المنفذ المتصل مع المفتاح كما في الاوامر التالية

 

ومن ثم سننتقل الى ال void setup() ونقوم بتعريف المنافذ كمداخل و مخارج, فسنعرّف المنفذ الخاص باللد كمخرج, اما المنفذ الخاص بالمفتاح فسوف نعرفه كمدخل عن طريق امر pinmode كما يلي :

 

والان سننتقل الى void loop ونقوم بكتابة البرنامج المراد من المتحكم تنفيذه، اي اذا تم الضغط على المفتاح سوف نعمل على إضاءة اللد اما عند عدم الضغط عليه سوف نقوم بإطفائه،  ومن أجل قراءة حالة المنفذ المرتبط في المفتاح نحتاج للأمر التالي وهو

وهذه الامر يقرأ حالة المنفذ الموجود رقمه بين الاقواس وحتى يتم تخزين حالة المنفذ في المتغير buttonState سوف نستخدم هذا الامر كامل

بعد قراءة حالة المنفذ سوف نقوم بمعرفة اذا كانت في حالة  high  او في حالة  low وذلك عن طريق استخدام الجملة if و else  الشرطية كما يلي :

اذا كان الامر الذي بداخل الاقواس صحيح

 

للتأكد من الكود ، حمله على لوحة الاردوينو و باشربالضغط على المفتاح.

في الدرس القادم سنستخدم ال pull up الداخلية في لوحة الاردوينو ونوصل المفتاح مباشرة الى لوحة الاردوينو دون استخدام أي شيء أخر فتابعونا

الكود كامل