قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 29-03-2020, 06:28 PM المشاركة 1   
افتراضي الدرس التاسع عبارة if والاردوينو The Arduino if Statement Twitter FaceBook Google+



دورة برمجة الاردوينو : الدرس التاسع
عبارة if والاردوينو The Arduino if Statement


في هذا الدرس ، يتم استخدام عبارة if لتوضيح كيفية اتخاذ القرارات decisions في البرنامج .
يتم استخدام عبارة if للتحقق من دخل لوحة المفاتيح إلى Arduino التي يكتبها المستخدم في نافذة الشاشة التسلسلية لبيئة التطوير Arduino IDE.
يمكن اتخاذ المزيد من القرارات ، اعتمادًا على المفتاح الذي يضغط عليه المستخدم ، على سبيل المثال ، إذا تم الضغط على المفتاح "1" ، يمكن تشغيل الليد LED الموجود على متن لوحة Arduino وإذا تم الضغط على المفتاح "0" ، فإن الليد LED يمكن إيقاف تشغيلها بينما يتم تجاهل جميع ضغطات المفاتيح الأخرى.

استخدام عبارة if Using the if Statement
يوضح البرنامج عبارة if المستخدمة في البرنامج للتحقق مما إذا تم إرسال حرف من نافذة الشاشة التسلسلية Arduino IDE.

كود:
void setup() {
  Serial.begin(9600);
}

void loop() {
  char rx_byte;
  
  if (Serial.available() > 0) {    // is a character available?
    rx_byte = Serial.read();       // get the character
    Serial.print("You typed: ");
    Serial.println(rx_byte);
  }
}

إذا أرسل المستخدم حرفًا character من نافذة الشاشة التسلسلية ، فإن Arduino يرسل رد back النص "You typed: X" ، حيث X هو الحرف الذي كتبه المستخدم.

كيف يعمل البرنامج :
بناء عبارة if للاردوينو Arduino if Statement Structure
تظهر بنية عبارة (تعليمة) if هنا:

كود:
if (conditional expression) {
  Body of if statement
}

إذا تم تقييم التعبير الشرطي conditional expression إلى "صواب" true ، يتم تشغيل التعليمات البرمجية في جسم body العبارة. إذا تم تقييم العبارة الشرطية إلى خطأ false ، فلن يتم تشغيل أي من التعليمات البرمجية في جسم عبارة if.

• التحقق من وجود حرف من نافذة المراقبة التسلسلية :
في مثال البرنامج ، ستكون القيمة التي تعود بها returns الدالة Serial.available() أكبر من 0 فقط إذا تم استلام حرف أو أكثر بواسطة Arduino من نافذة جهاز العرض التسلسلي.
سيتم تقييم عبارة if إلى true فقط إذا تم استلام حرف واحد أو أكثر.
عندما لا يتم إرسال أحرف إلى Arduino ، سيتم تقييم عبارة if في كل مرة من خلال الحلقة الرئيسية وتقييمها إلى false في كل مرة. وبالتالي لن يتم تشغيل الكود الموجود في جسم جملة if.
بمجرد أن يتم إرسال حرف من نافذة جهاز العرض التسلسلي ، ترجع الدالة Serial.available() "واحد" 1. عند تقييم العبارة if مرة أخرى ، يتم تقييمها إلى true (لأن 1 > 0) ويتم تشغيل الكود في جسم عبارة if .
الحرف الذي تم إرساله من نافذة جهاز العرض التسلسلي يتم تخزينه في المتغير rx_byte باستخدام سطر التعليمات البرمجية التالي.

كود:
rx_byte = Serial.read();       // get the character

نظرًا لأنه قد تم تخزين الحرف ، يمكن الآن إعادة إرساله إلى نافذة جهاز العرض التسلسلي مع بعض النص السابق له.

استخدام عبارة if لتشغيل ليد Switch On an LED :
يمكن استخدام عبارة if لاتخاذ قرار make a decision بتشغيل LED إذا تم استلام (استقبال) حرف معين كما يوضح هذا المثال التالي.

كود:
void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);  // LED on pin 13 of UNO
}

void loop() {
  char rx_byte;
  
  if (Serial.available() > 0) {    // is a character available?
    rx_byte = Serial.read();
    if (rx_byte == 'a') {
      digitalWrite(13, HIGH);
    }
  }
}

في هذا البرنامج ، إذا كان الحرف المرسل من نافذة الشاشة التسلسلية هو 'a' ، فسيتم تشغيل الليد LED الموجود في الطرف 13 من Arduino. إذا تم إرسال أي حرف آخر ، فلن يحدث شيء.
عبارة if التالية :

كود:
 if (rx_byte == 'a')
سيتم تقييمها إلى "صواب" true فقط إذا كان الحرف الذي تم إستقباله من نافذة جهاز العرض التسلسلي والمخزن في المتغير rx_byte يساوي 'a'.

إيقاف تشغيل الليد مرة أخرى Switching the LED Off Again :

يمكن تعديل البرنامج أعلاه لإضافة عبارة if أخرى يمكن استخدامها لإيقاف تشغيل الليد LED مرة أخرى.
سيعمل البرنامج أدناه على تشغيل الليد LED إذا تم إرسال 'a' إلى Arduino وإيقاف تشغيل LED إذا تم إرسال 'b' إلى Arduino (لاحظ أنها حساسة لحالة الأحرف ، لذلك فإن استخدام 'A' و 'B' لن تعمل).

كود:
void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);  // LED on pin 13 of UNO
}

void loop() {
  char rx_byte;
  
  if (Serial.available() > 0) {    // is a character available?
    rx_byte = Serial.read();       //
    if (rx_byte == 'a') {
      digitalWrite(13, HIGH);
    }
    if (rx_byte == 'b') {
      digitalWrite(13, LOW);
    }
  }
}

الآن إذا تم إرسال الحرف "b" ، يتم تقييم اختبار عبارة if للحرف 'a' إلى "خطأ" false ، ولكن يتم تقييم اختبار عبارة if للحرف جملة الحرف 'b' إلى "true" ويتم إيقاف تشغيل الليد LED.
يتم تناول طريقة أكثر فاعلية للتعامل مع تشغيل وإيقاف تشغيل الليد LED في الدرس التالي والذي يغطي عبارات else و else if .


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 29-03-2020 الساعة 06:34 PM
اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 09:25 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025