كل يوم امر برمجي من c

ان شاء الله كل يوم رح انشر مشروع يتعلق بتعلم لغه البرمجة الخاصه بالاردوينو وهي c

Jalalمنذ 4 سنوات

كل يوم أمر برمجي

الدرس الاول

الدوال functions : هي طريقة مفيدة في بعض الأحيان لاختصار و تبسيط الكود.

فهي عبارة عن كود جانبي يتم استدعاءه لتنفيذ عمل معين وقت الحاجة ، ثم العودة للكود الرئيسي.

يتم التعرف على الدوال من القوسين اللذين يأتيان بعد اسمها … مثل:

sami();

x= hey(15);

y,z= fun(13,12,600);

 

أمثلة لأكواد يمكن جعلها كدوال واستدعائها من الكود الرئيسي:

تحويل درجة الحرارة من فهرنهايت إلى درجة مئوية.

تحويل الاطوال من قدم الى متر.

تشغيل LED و إطفاؤه. 

 

المداخل و المخارج للدالة: بعض الدوال يتم استدعائها بدون إرسال أي قيمة لها . و تقوم بعمل معين . ثم تنتهي بدون أن تعود بأي قيمة منها .وهذه الدوال تكون من نوع void  

مثال: دالة وميض بسرعة ثابتة أو تأخير زمني أو دالة panic لاصدار تحذير صوتي و مرئي.

لذا فمن المهم معرفة هل ستعود قيمة للدالة أم لا ، و إذا كانت ستعود قيمة ، ما هو نوع القيمة؟ int ؟ أو float وربما String … إذا كانت الدالة لن تعيد أي قيمة فيجب تعريفها بـ void

 

أمثلة على دوال موجودة و تم تعريفها في برمجة الأردوينو سابقاً: (غير موجودة في لغة C الأصلية) 

delay(1000);

هذه الدالة لها دخل واحد (1000)وليس لها أي قيمة راجعة void

digitalWrite(13,1);

هذه الدالة لها دخلين ولا تعود منها أي قيمة void

digitalRead(3);

دالة لها دخل واحد (3) والعائد قيمة 0-1 وممكن تكون int أو boolean

analogRead(A0);

دالة لها دخل واحد والعائد يكون عدد 0-255 و تكون من نوع int أو byte

 

أمثلة لكود و دالة تعمل على تحويل درجة حرارة من فهرنهايت الى مئوية: مع العلم أن : 

C=(F-32)*59

 

int F1=0; //here put the fahrenheit temp

int F2=10;

int F3=25;

 

void setup(){

int C1=FtoC(F1); //FtoC will convert Fahrenheit to degrees

int C2=FtoC(F2);

int C3=FtoC(F3); }

 

void loop(){ }

 

int FtoC(int x){ //FtoC is a function to convert Fahrenheit to degrees 

  int C = x-32*5/9;

  return(C);} 

 

مثال لعمل دالة (Blink) ترسل لها قيمتين عدد مرات الوميض و التأخير الزمني.

int LED = 13;

void setup(){

  Blink(10,300);

  Blink(5,1000);

  Blink(2,5000);}

 

void Blink(int T, int D){

  for ( ; T>0 ; T--){

    digitalWrite(LED,HIGH);

    delay(D)

    digitalWrite(LED, LOW);

    delay(D); } }

مثال آخر : مثل السابق ، لكن هذه المرة الدالة تستقبل 4 قيم : رقم المخرج الرقمي ، عدد الومضات ، زمن الإضاءة ، زمن الإنطفاء. 

void loop(){

  blink2(13,3,500,500);

  blink2(12,5,300,200);

  blink2(11,10,200,800); }

 

void blink2(int P, int T , int DON , int DOF){

  for ( ; T>0 ; T--){

    digitalWrite(P,HIGH);

    delay(DON)

    digitalWrite(P, LOW);

    delay(DOF); } }

0
إعجاب
971
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !