حسابي

بحث

القائمة

تفاصيل العمل

// تعريف المداخل والمخارج

int sensorRight = 2; // مدخل للسنسور الأيمن

int sensorLeft = 3; // مدخل للسنسور الأيسر

int motorRight = 4; // مخرج للمحرك الأيمن

int motorLeft = 5; // مخرج للمحرك الأيسر

void setup() {

// تعيين مداخل ومخارج الأردوينو

pinMode(sensorRight, INPUT);

pinMode(sensorLeft, INPUT);

pinMode(motorRight, OUTPUT);

pinMode(motorLeft, OUTPUT);

}

void loop() {

// قراءة قيم السنسورات

int rightValue = digitalRead(sensorRight);

int leftValue = digitalRead(sensorLeft);

// الحركة الأساسية للسيارة

if (rightValue == HIGH && leftValue == HIGH) {

// السير مستقيماً إذا كانت الخطوط تحت السيارة

digitalWrite(motorRight, HIGH);

digitalWrite(motorLeft, HIGH);

} else if (rightValue == LOW && leftValue == HIGH) {

// التحرك يساراً إذا كان الخط على الجانب الأيمن

digitalWrite(motorRight, HIGH);

digitalWrite(motorLeft, LOW);

} else if (rightValue == HIGH && leftValue == LOW) {

// التحرك يميناً إذا كان الخط على الجانب الأيسر

digitalWrite(motorRight, LOW);

digitalWrite(motorLeft, HIGH);

} else {

// التوقف إذا كانت الخطوط مفقودة

digitalWrite(motorRight, LOW);

digitalWrite(motorLeft, LOW);

}

}

هذا الكود يتحكم في سيارة صغيرة باستخدام لوحة التحكم Arduino واستشعارين موجودين أسفل السيارة. الهدف هو جعل السيارة تتحرك باتجاه الخطوط الموجودة تحتها. إليك شرح الكود خطاً خطاً:

تعريف المداخل والمخارج:

cpp

Copy code

int sensorRight = 2; // مدخل للسنسور الأيمن

int sensorLeft = 3; // مدخل للسنسور الأيسر

int motorRight = 4; // مخرج للمحرك الأيمن

int motorLeft = 5; // مخرج للمحرك الأيسر

تهيئة المداخل والمخارج في دالة setup():

cpp

Copy code

void setup() {

pinMode(sensorRight, INPUT);

pinMode(sensorLeft, INPUT);

pinMode(motorRight, OUTPUT);

pinMode(motorLeft, OUTPUT);

}

الحلقة الرئيسية loop():

يتم قراءة قيم السنسورات اللتان تشيران إلى وجود خطوط بيضاء تحت السيارة أم لا.

استنادًا إلى قيم السنسورات، يتم تحديد اتجاه حركة السيارة.

إذا كانت السنسورات تقرأ الخطوط، فإن السيارة تسير مستقيمة، وإلا فإنها تتحرك يميناً أو يساراً أو تتوقف تمامًا.

cpp

Copy code

void loop() {

int rightValue = digitalRead(sensorRight);

int leftValue = digitalRead(sensorLeft);

if (rightValue == HIGH && leftValue == HIGH) {

digitalWrite(motorRight, HIGH);

digitalWrite(motorLeft, HIGH);

} else if (rightValue == LOW && leftValue == HIGH) {

digitalWrite(motorRight, HIGH);

digitalWrite(motorLeft, LOW);

} else if (rightValue == HIGH && leftValue == LOW) {

digitalWrite(motorRight, LOW);

digitalWrite(motorLeft, HIGH);

} else {

digitalWrite(motorRight, LOW);

digitalWrite(motorLeft, LOW);

}

}

بطاقة العمل

اسم المستقل صالح ز.
عدد الإعجابات 0
عدد المشاهدات 11
تاريخ الإضافة

المهارات المستخدمة