Menu
CoddyTech
flag Ar iconالعربيةdown icon

زاوية Servo من المنفذ التسلسلي

جزء من قسم المخرجات في رحلة Arduino على Coddy. الدرس 23 من 24.

يمكن للذراع أيضًا استقبال الأوامر من شاشة المراقبة التسلسلية. اكتب زاوية واضغط على Enter؛ تقرأ Serial.parseInt() الرقم:

if (Serial.available() > 0) {
  int angle = Serial.parseInt();
  Serial.read();  // محرف السطر الجديد بعد الرقم
  // استخدم angle
}

يبقى محرف السطر الجديد بعد الرقم منتظرًا. في التشغيل التالي لـ loop()، لن تجد parseInt() أي أرقام، وستنتظر ثانية ثم تعيد 0. كان تجاهل هذه القيمة 0 مناسبًا لسرعة الوميض، لكن 0 زاوية فعلية. لذا اقرأ محرف السطر الجديد لإزالته باستخدام Serial.read() مباشرة بعد الرقم.

قد يكتب أحدهم أيضًا رقمًا ليس زاوية. تقرأ arm.write() أي رقم يبدأ من 544 على أنه طول نبضة بالميكروثانية، لذا فإن 1000 سيضع الذراع بالقرب من 45 درجة. تضمن constrain() بقاء الزاوية بين 0 و180 أولًا:

angle = constrain(angle, 0, 180);  // مرّر إليه المتغير، وليس parseInt()
challenge icon

التحدي

متوسط

حرّك المحرّك المؤازر إلى الزاوية المكتوبة في شاشة Serial:

  • عند وصول رقم، اقرأه باستخدام Serial.parseInt()، ثم اقرأ محرف السطر الجديد للتخلّص منه (الصفر زاوية أيضًا)
  • أبقِه بين 0 و180 باستخدام constrain()
  • حرّك الذراع واطبع الزاوية بهذا الشكل Angle: 45

اضغط Run، وأرسل 45 من شاشة Serial، ثم اضغط Check.

جرّب بنفسك

#include <Servo.h>

Servo arm;

void setup() {
  arm.attach(9);
  arm.write(90);
  Serial.begin(9600);
}

void loop() {
  // عند وصول رقم: اقرأه، ثم اقرأ محرف السطر الجديد للتخلص منه،
  // أبقِه بين 0 و180، وحرّك الذراع واطبع الرقم
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المخرجات

تدرّب بنفسك: Playground لـ Arduino