الكود البرمجي :
#include <Servo.h>
Servo myservo;
const int trigPin = 10;
const int echoPin = 11;
long duration;
int distance;
void setup() {
myservo.attach(9);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
if (distance < 5)
{
myservo.write(110);
}
else
{
myservo.write(35);
}}
شرح الكود البرمجي :
في البداية قمنا بادراج مكتبة السيرفو ثم قمنا بتسمية منافذ الأردوينو المستخدمة في المشروع و تعريف المتغيرات
#include <Servo.h> Servo myservo; const int trigPin = 10; const int echoPin = 11; long duration; int distance;
في دالة setup تعريف المنفذ الذي سيتحكم بمحرك السيرفو ،
و تعريف منافذ حساس المسافة
myservo.attach(9); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
يقوم الكود بتشغيل الحساس و حساب المسافة
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
فقط اذا كانت المسافة أقل من 5سم يتحرك السيرفو بمقدار 110درجة
if (distance < 5)
{
myservo.write(110);
}
else
{
myservo.write(35);
}
}

