الكود البرمجي
ارفع الكود البرمجي التالي على لوحة الاردوينو باستخدام برنامج اردوينو (IDE).
#include <Servo.h>
Servo servo;
int pos;
int Signal = 8;
int servopin = 9;
void setup()
{
pinMode(Signal, INPUT);
servo.attach(servopin);
servo.write(0); //close cap on power on
delay(1000);
servo.detach();
}
void loop()
{
int buttonState = digitalRead(Signal);
delay(1);
if (buttonState == 0)
{
servo.attach(servopin);
delay(1);
servo.write(90);
delay(3000); //wait 5 seconds
servo.write(0);
delay(1000);
servo.detach();
}
}
شرح الكود البرمجي
في هذا السطر تم استدعاء مكتبة محرك السيرفو: <Servo.h>.
#include <Servo.h>
تم تعريف المتغير Signal الخاص بمستشعر تجنب الحواجز بالأشعة تحت الحمراء وربطه بالمنفذ الرقمي 8 على لوحة الاردوينو.
int Signal = 8;
تم تعريف المتغير servopin الخاص بمحرك السيرفو وربطه بالمنفذ الرقمي 9 على لوحة الاردوينو.
int servopin = 9;
في الدالة ()setup يتم تعيين محرك السيرفو كمخرج ومستشعر تجنب الحواجز بالأشعة تحت الحمراء كمدخل.
وستكون الحالة الابتدائية لمحرك السيرفو تساوي صفر.
void setup()
{
pinMode(Signal, INPUT);
servo.attach(servopin);
servo.write(0); //close cap on power on
delay(1000);
servo.detach();
}
في الدالة loop() يتم تعريف المتغير buttonState لقراء البيانات من مستشعر تجنب الحواجز بالأشعة تحت الحمراء.
void loop()
{
int buttonState = digitalRead(Signal);
ستتم قراءة البيانات من مستشعر تجنب الحواجز إذا كان هناك حاجز أمام الحساس سيتحرك محرك السيرفو بزاوية 90.
servo.attach(servopin); delay(1); servo.write(90);
وإذا لم يكن هناك حاجز أمام مستشعر تجنب الحواجز سيتوقف محرك السيرفو عن العمل ويعود للزاوية صفر.
servo.write(0); delay(1000); servo.detach();
يمكنك اختبار آلة توزيع الحلوى بعد رفع الكود البرمجي للوحة الاردوينو.
لا تنسَ فصل مصدر الطاقة بعد الانتهاء من استخدام النظام.

