المقدمة
في الدرس السابق تعلمنا تصنيع معقم بالمنزل في هذا الدرس تعلم كيف، يمكننا استخدام حساس المسافة للتعقيم بدون مسك العبوة،
القطع المطلوبة
حساس مسافة (ultrasonic sensor)
(TowerPro MG946R Servo )محرك سيرفو
لوح تجارب صغير (Small size breadboard)
(Jumper Wires Female/male )اسلاك توصيل أنثى/ذكر
(Jumper Wires Male/Male) اسلاك توصيل ذكر/ذكر
توصيل الدائرة :
قم بتوصيل الدارة كما هو موضح بالصورة التالية :
الكود البرمجي :
#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); } }