Al-Nassim DIGITAL INPUT use PushButton | (المداخل الرقمية (إستخدام المفاتيح

Ahmad Altonji

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

سنحتاج في هذا الدرس الى

1- مفتاح من نوع PushButton

do.php


2-مقاومة 10k

do.php


3- ليد

do.php


4- اسلاك

do.php


5- لوحة توصيل

do.php


6- اردوينو من نوع اونو

do.php


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

مفتاح PUSHBUTTON

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

do.php


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

do.php


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

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

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

do.php


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

do.php


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

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

do.php


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


PHP:
int buttonPin = 2;     // المتغير الخاص في المفتاح
int ledPin =  13;      // المتغير الخاص في اليد
int buttonState = 0;  // المتغير الخاص في حالة المفتاح

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

PHP:
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT); //تعريف منفذ المفتاح كمدخل

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

PHP:
digitalRead(PinNumber);

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

PHP:
buttonState = digitalRead(buttonPin);    //قراءة حالة منفذ الخاص في المفتاح

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

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

PHP:
if (buttonState == HIGH) { //اذا كان الشرط الذي بداخل اقواس if صحيح

digitalWrite(ledPin, HIGH);  //سوف يتم تنفيذ هذا الامر
digitalWrite(ledPin, LOW); // سوف بنفذ هذا الامر

} else {       //والا
}

الكود بشكل كامل

PHP:
int buttonPin = 2;     
int ledPin =  13;     
int buttonState = 0;         

void setup() {

  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {

  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {

    digitalWrite(ledPin, HIGH);
  } else {

    digitalWrite(ledPin, LOW);
  }
}

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

المرجع : مجلة roboticx
 
التعديل الأخير:
أعلى