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

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

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



دورة برمجة الاردوينو : الدرس الثالث :
المتغيرات Variables

يستخدم المتغير في البرمجة لتخزين قيمة value قد تتغير أثناء حياة البرنامج (الاسكيتش ).
يتم تخصيص الذاكرة لتخزين المتغير ويتم إعطاء المتغير اسمًا يسمح بالوصول إليه في الاسكيتش .
أحد الأمثلة على المتغير هو كتابة برنامج يحفظ مجموع نقاط الفرق في مباراة رياضية. سيتم عرض القيمة التي يحملها المتغير (على سبيل المثال نتيجة نقاط الفرق teams score ) على الشاشة أثناء تشغيل المباراة الرياضية. كلما زادت النتيجة score ، سيتم زيادة القيمة التي يحملها المتغير وسيتم تحديث العرض على الشاشة لإظهار القيمة الجديدة التي يحملها متغير النتيجة score .
في هذا المثال ، قد تتغير قيمة النتيجة عدة مرات أثناء المباراة والوقت الذي يتم فيه تشغيل البرنامج . وبالتالي فهي متغيرة مقارنة بقيمة ثابتة .

استخدام المتغير Using a Variable :
يوضح الاسكيتش التالي الذي يسمى variables استخدام المتغير. قم بتحميل هذا الاسكيتش إلى Arduino الخاص بك وافتح نافذة الشاشة التسلسلية لرؤية إخراج الاسكيتش .

كود:
void setup() {
  int count;
  
  Serial.begin(9600);
  
  count = 0;
  Serial.println(count);
  count = 1;
  Serial.println(count);
  count = 2;
  Serial.println(count);
}

void loop() {
}

• تعريف المتغير Variable Definition :

العبارة التالية من البرنامج أعلاه هى تعريف متغير لأنها تعرف (تحدد) نوع المتغير واسمه:

كود:
int count;

• نوع المتغير Variable Type :
في المثال أعلاه ، يكون نوع المتغير int. هذا يعني أن المتغير يمكنه الاحتفاظ بقيمة صحيحة integer.
العدد الصحيح integer هو عدد صحيح whole number - أي ليس كسرًا. على سبيل المثال ، الأرقام التالية هي أعداد صحيحة 2 ، 5 ، 0 ، 100 ، 1024 ، -32 ، إلخ.

• اسم المتغير Variable Name :
تم إعطاء المتغير أعلاه الاسم count . يمكن الآن الإشارة إلى هذا المتغير أو استخدامه في البرنامج باستخدام الاسم "count".
بإعطاء المتغير نوعًا واسمًا ، يتم توفير مساحة في الذاكرة لهذا المتغير.

• استخدام المتغير فى الاسكيتش (البرنامج) Using the Variable in a Sketch :
بعد تعريف المتغير ، يمكن تعيين قيمة له ويمكن عرض قيمة المتغير في نافذة المراقبة التسلسلية.

في العبارتين التاليتين ، يتم أولاً تعيين assigned المتغير count بالقيمة 0 ثم يتم إرسال القيمة التي يحتفظ بها هذا المتغير خارج المنفذ التسلسلي للعرض في نافذة جهاز العرض التسلسلي.

كود:
count = 0;
Serial.println(count);

في الاسكيتش ، تتكرر نفس أسطر التعليمات البرمجية ، ولكن في كل مرة يتم تعيين قيمة مختلفة للمتغير count .

أنواع المتغيرات Types of Variables :
نوع المتغير الصحيح (int) هو نوع واحد فقط من المتغيرات. مثال على نوع متغير مختلف هو المتغير float أو متغير النقطة (الفاصلة) العائمة floating point variable .
يتم استخدام متغير الفاصلة العائمة لتخزين رقم يحتوي على كسر ، على سبيل المثال 1.45 ، 99.99 ، 362.5634 ،
-200.21 ، إلخ.
يتم تعريف متغير الفاصلة العائمة بنفس الطريقة التي يتم بها تعريف متغير صحيح ، باستثناء أنه يتم استخدام الكلمة الأساسية float بدلاً من int كما هو موضح في المثال أدناه.

كود:
float average;

يمكن الآن تعيين متغير الفاصلة العائمة لقيمة فاصلة عائمة ، على سبيل المثال:

كود:
average = 1.2;

طباعة القيمة العائمة Printing a Float Value :
لطباعة أو إرسال قيمة نقطة عائمة إلى نافذة الشاشة التسلسلية للاردوينو ، يمكن استخدام الدالة println() .
يمكن تمرير وسيط ثانى إلى الدالة println() لتحديد عدد الارقام العشرية التي يجب طباعتها كما هو موضح في الاسكيتش floats أدناه.


كود:
 void setup() {
  float average;
  
  Serial.begin(9600);
  
  average = 12.3299;
  
  Serial.println(average);

  Serial.println(average, 4);
}

void loop() {
}

فيما يلى خرج الاسكيتش أعلاه :



يعين assigns البرنامج أعلاه القيمة 12.3299 لمتغير النقطة العائمة average . عندما يتم إرسال قيمة المتغير إلى نافذة الشاشة التسلسلية ، يمكننا أن نرى أن الدالة println() تقوم بتقريب الرقم تلقائيًا إلى رقمين عشريين.
في المرة الثانية التي يتم فيها استخدام الدالة println() لإرسال قيمة المتغير إلى نافذة جهاز العرض التسلسلي ، يتم تحديد عدد الارقام العشرية على أنه 4. ويتم ذلك عن طريق تمرير قيمة وسيط ثانى هو 4 إلى الدالة println() .

أنواع متغير أخرى Other Variable Types :
يمكن رؤية أنواع أخرى من المتغيرات المتاحة في مرجع لغة Arduino تحت عنوان المتغيرات Variables .
هنا ، سيتم تقديم كل نوع متغير وتفسيره في الوقت المناسب.

تسمية المتغيرات Naming Variables :
يمكن إعطاء المتغيرات أي اسم تريده ، طالما أنها تلتزم بالقواعد الموضحة أدناه. من الأفضل إعطاء المتغيرات أسماء ذات معنى تساعدك أنت والآخرين على فهم الاسكيتش بشكل أفضل ، على سبيل المثال Score_total هو اسم متغير جيد لمتغير يقوم بتخزين المجموع الجاري للنتيجة في مباراة رياضية.

قواعد تسمية المتغير Variable Naming Rules :
• يمكن أن تتكون أسماء المتغيرات من أي حروف letters (من a إلى z ومن A إلى Z )
• يمكن أن تحتوي أسماء المتغيرات على الأرقام من 0 إلى 9 ، ولكن لا تبدأ برقم ، على سبيل المثال لا يُسمح بالاسم 3var ، ولكن يُسمح باستخدام الاسم var3
• لا تحتوي أسماء المتغيرات على نفس الأسماء مثل الكلمات الرئيسية للغة Arduino ، على سبيل المثال لا يمكن أن يكون لديك متغير باسم int
• يجب أن يكون للمتغيرات أسماء فريدة ، أي أنه لا يمكن أن يكون لديك متغيرين بنفس الاسم
• الأسماء المتغيرة حساسة لحالة الأحرف ، لذا يعد Count و count متغيرين مختلفين
• لا يجوز أن تحتوي أسماء المتغيرات على أي أحرف خاصة ، باستثناء الشرطة السفلية underscore (_) ، على سبيل المثال top_score

تهيئة المتغيرات Initializing Variables:
في المثال الموضح أعلاه ، تم تعريف المتغيرات التي تم استخدامها أولاً ، ثم تم تعيين قيمة لها.
يمكن أيضًا تعيين قيمة أولية initial للمتغير عند تعريفه كما هو موضح أدناه:

كود:
int total = 0;

في هذا المثال ، قيمة العدد الصحيح المسمى total تم تعريفها defined وتعيين assigned قيمة صفر (0) لها في عبارة واحدة.

ملاحظة :
في هذا الدرس حيث يلزم شرح المفاهيم ، غالبًا ما يتم وضع كود المثال في جزء الإعداد setup() من الاسكيتش ، بدلاً من جزء الحلقة loop() ، وذلك لأن التعليمات البرمجية تحتاج عادةً إلى التشغيل مرة واحدة فقط لتوضيح بعض المفاهيم.
ستحتوي معظم الاسكتشات على الجزء الأكبر من الكود في الدالة loop() والكود الوحيد الذى يهيئ الأجهزة hardware في الدالة setup() .

اعلانات
إضافة رد

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

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

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


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

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