الأهداف
سوف نتعلم في هذا النشاط كيفية إيصال مفتاح كهربائي مع متحكم دقيق.
ما يلزمنا
- لوحة أردوينو
- لوحة تجارب
- مقاومة 10 kΩ (بني، أسود، برتقالي) – R1
- مقاومة 220 Ω (أحمر، أحمر، أحمر) – R2
- مفتاح كهربائي
- صمام لد أحمر
- أسلاك توصيل.
إنجاز التركيب
- قم بوصل صمام لد (القطب الموجب) عن طريق المقاومة R2 إلى المنفذ رقم 10 للوحة أردوينو.
- قم بوصل المفتاح كما هو موضح في الشكل(يجب أن يكون تجويف لوحة التجارب أسفل المفتاح) مع طرف إلى منفذ 5 فولت و الطرف الثاني إلى المنفذ رقم 7 للوحة أردوينو و كذلك عبر المقاومة R1 إلى القطب السالب.
لماذا يجب وصل مقاومة مع المفتاح الكهربائي ؟
قمنا باستعمال مقاومة قدرها 10 kΩ و ذلك لإرجاع المنفذ إلى 0 فولت. عندما نضغط على المفتاح، نطبق بذلك توتر 5 فولت على المنفذ.
بوجود المقاومة نكون قد تفادينا أن يكون المنفذ في الهواء و معرض للكهرباء الساكنة التي يمكن أن تعطيه قيم عشوائية.
إفتح واجهة التطوير و حرر نص البرنامج التالي:
int sw_pin = 7;
int led_pin = 10;
void setup() {
pinMode(sw_pin, INPUT);
pinMode(led_pin, OUTPUT);
}
void loop() {
int etat_sw = digitalRead(sw_pin);
if(etat_sw == HIGH)
digitalWrite(led_pin, HIGH);
else
digitalWrite(led_pin, LOW);
}
بقم بفحص نص البرنامج ثم إرفعه إلى اللوحة.
إضغط على المفتاح، لاحظ إضاءة اللد. إرفع أصبعك على المفتاح و سوف تنطفئ اللد.
حسب التركيب قمنا بتسمية المنفذ رقم 7 «sw_pin» و برمجناه كمدخل (INPUT) و ذلك عن طريق التعليمة
pinMode(sw_pin, INPUT);
قمنا بتعريف متغير «etat_sw» و الذي يقوم بتسجيل حالة المفتاح الكهربائي:
- 1 إذا كان المفتاح مضغوط.
- 0 إذا كان المفتاح حر (مفتوح).
نقوم بتحسس حالة المفتاح بواسطة الجملة الشرطية « if…else» و التي تقوم بتنفيذ أحد أمرين تبعاً لقيمة الشرط المحدد. و هي تأخذ الشكل:
If (condition) {
// Bloc A
Instructions…
}
Else {
// Bloc B
Instructions…
}
تعمل هذة الجملة كمايلي:
- إذا كان الشرط «condition» صحيح، نقوم بتنفيذ التعليمات في « Bloc A» ثم ننتقل خارج الجملة لإكمال باقي البرنامج.
- و إذا كان الشرط «condition» غير صحيح، نقوم بتنفيذ التعليمات في « Bloc B» ثم ننتقل خارج الجملة لإكمال باقي البرنامج.
الشرط بين القوسين يكون بواسطة المعاملات النسبية و هي من الشكل:
x يساوي y | x==y |
x لا يساوي y | x!=y |
x أقل من y | x<y |
x أكبر من y | x>y |
x أصغر أو يساوي y | x<=y |
x أكبر أو يساوي y | x>=y |
في مثالنا، إذا كان «etat_sw == 1» يكون لدينا شرط صحيح و بذلك ننفذ التعليمة
digitalWrite(led_pin, HIGH);
ما يجعل اللد تضيئ.
إذا كان «etat_sw == 0» يكون لدينا شرط خاطئ و بذلك ننفذ التعليمة
ما يجعل اللد تنطفئ.
لاحظ أن شرط التساوي يكتب بعلامتي تساوي « == » و ليس بعلامة التخصيص « = ».
ماتعلمناه
- إعداد منفذ كمدخل
- الجملة الشرطية « if…else»
- المعاملات النسبية