الكود البرمجي :
#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); } }