معاملات الدوال
جزء من قسم المدخلات في رحلة Arduino على Coddy. الدرس 20 من 22.
تومض blinkOnce() دائمًا الدبوس 13 لمدة 200 ms. لجعل أي دبوس يومض لأي مدة، أعطِ الدالة معاملات: متغيرات مدرجة بين قوسيها، ولكل منها نوع، وتحصل على قيمها من الاستدعاء.
void blinkLed(int pin, int ms) {
digitalWrite(pin, HIGH);
delay(ms);
digitalWrite(pin, LOW);
delay(ms);
}تُسمى القيم في الاستدعاء وسيطات. وهي تملأ المعاملات بالترتيب: يشغّل blinkLed(12, 200); الكتلة مع pin بقيمة 12 وms بقيمة 200، بينما يشغّل blinkLed(13, 600); إياها مع 13 و600.
لأن الترتيب هو ما يحدد ذلك، فإن blinkLed(200, 12) سيحاول جعل الدبوس 200 يومض لمدة 12 ms.
التحدي
سهلمصباح LED أخضر موصول بالدبوس 12، وآخر أحمر موصول بالدبوس 13:
- اكتب
void blinkLed(int pin, int ms): شغّل الدبوس، وانتظرms، أطفئه، وانتظرms - في
loop()، اجعل مصباح LED الأخضر يومض لمدة 200 ms، ثم الأحمر لمدة 600 ms
اضغط على Run، ثم Check.
جرّب بنفسك
const int greenPin = 12;
const int redPin = 13;
// اكتب void blinkLed(int pin, int ms) هنا
void setup() {
pinMode(greenPin, OUTPUT);
pinMode(redPin, OUTPUT);
}
void loop() {
// اجعل مصباح LED الأخضر يومض لمدة 200 ms، ثم الأحمر لمدة 600 ms
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المدخلات
تدرّب بنفسك: Playground لـ Arduino