الأهداف

سوف نتعلم في هذا النشاط كيفية إيصال مفتاح كهربائي مع متحكم دقيق.

 

ما يلزمناled-switch_opt

  • لوحة أردوينو
  • لوحة تجارب
  • مقاومة   10 kΩ (بني، أسود، برتقالي) – R1
  • مقاومة 220 Ω (أحمر، أحمر، أحمر) – R2
  • مفتاح كهربائي
  • صمام لد أحمر
  • أسلاك توصيل.

 

إنجاز التركيب

  1. قم بوصل صمام لد (القطب الموجب) عن طريق المقاومة R2 إلى المنفذ رقم 10 للوحة أردوينو.
  2. قم بوصل المفتاح كما هو موضح في الشكل(يجب أن يكون تجويف لوحة التجارب أسفل المفتاح) مع طرف إلى منفذ 5 فولت و الطرف الثاني إلى المنفذ رقم 7 للوحة أردوينو و كذلك عبر المقاومة R1 إلى القطب السالب.

pinswled

 

لماذا يجب وصل مقاومة مع المفتاح الكهربائي ؟

قمنا باستعمال مقاومة قدرها 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» يكون لدينا شرط خاطئ و بذلك ننفذ التعليمة

ما يجعل اللد تنطفئ.

 

remark

لاحظ أن شرط التساوي يكتب بعلامتي تساوي « == » و ليس بعلامة التخصيص « = ».

ماتعلمناه

  • إعداد منفذ كمدخل
  • الجملة الشرطية « if…else»
  • المعاملات النسبية