في هذا الدرس سوف نتعلم كيفية استخدام منافذ الاردوينو كمداخل لقراءة التغيرات التي تحدث على المجسمات او قراءة المفاتيح عند الضغط عليها.
سنحتاج في هذا الدرس الى
1- مفتاح من نوع PushButton
2-مقاومة 10k
3- ليد
4- اسلاك
5- لوحة توصيل
6- اردوينو من نوع اونو
قبل البدء في هذا الدرس ،سوف نتحدث عن مفتاح ال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 الشرطية كما يلي :
اذا كان الامر الذي بداخل الاقواس صحيح
الكود بشكل كامل
حمل الكود على لوحة الاردوينو و باشر بالضغط على المفتاح.
المرجع : مجلة roboticx
سنحتاج في هذا الدرس الى
1- مفتاح من نوع PushButton
2-مقاومة 10k
3- ليد
4- اسلاك
5- لوحة توصيل
6- اردوينو من نوع اونو
قبل البدء في هذا الدرس ،سوف نتحدث عن مفتاح ال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 فولت
وأخيرا نوصل اللد مع المنفذ ١٣ كما في الشكل .
ملاحظة: نستطيع وصل اللد مباشرة مع المنفذ رقم ١٣ لوجود مقاومة متصلة مع المنفذ.
بعد الانتهاء من وصل الدائرة، دعونا نبدأ بكتابة الكود، بعد فتح البرنامج سنقوم بتعريف ٣ متغيرات ، اثنان منهما لأرقام المنافذ اما الأخير لحالة المنفذ المتصل مع المفتاح كما في الاوامر التالية
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
التعديل الأخير: