أنت هنا:إصنعها»أردوينو»مشاريع أردوينو»التعامل مع حساسين للحركة تآنيا

التعامل مع حساسين للحركة تآنيا

كتبه مشاريع أردوينو 10793 كن أول من يعلق
آخر تعديل في الأربعاء, 09 كانون1/ديسمبر 2020 13:12
التعامل مع حساسين للـحركة تآنيا
قيم الموضوع
(3 أصوات)

سيتم استخدام حساسين للحركة مع بطاقة أردوينو لترقب الحركة.

 


الأجزاء الرئيسية

العربية

الإنجليزية

الفرنسية

الكمية

القيمة أو الصيغة

مقاومة

Resistor

Resistance

2

220 أوم

2

10 كيلوأوم

حساس الحركة

PIR- Pyroelectric Infrared Sensor

2

هو عبارة عن مستشعر للأشعة تحت الحمراء

محرك سيرفو

Servo Motor

1

 

صمام ضوئي

LED

2

 

بطاقة أوردوينو

Arduino

1

Deumilanove-w/ATMEGA328

لوحة تجميع مكونات كهربية

Breadboard

1

 

جسر

Jumper

Cavalier

على حسبك

 

مصدر كهربائي

 

بطارية 9 فولط أو خذ الطاقة من بطاقة أردوينو مباشرة

 


تقديم

سنقوم باستخدام حساسين يعملان بالأشعة تحت الحمراء (PIR) وتوصيلهما ببطاقة أردوينو للشعور بالحركة سواء من اليمين أو اليسار. والنتيجة ستكون إضاءة صمام ضوئي صغير يمثل كل حساس. ومن الممكن أيضا تركيب محرك صغير بحيث يدور لليمين أو اليسار لتحديد المرور بجوار أي حساس.

 

يمكننا استخدام حساس واحد فقط بدل من اثنين. وعلى كل حال،فـهذا مشروع للمبتدئين فنحن لن نستطيع تحديد السرعة والإتجاه ولكنه بداية لفعل ذلك.

  


عمل الدارة الكهربائية

سترى الآن أنها مجرد بضع أسلاك ليس أكثر.

ضع المقاومة 220 أوم بين موجب الصمام الضوئي (الـقطب الطويل) وبين بطاقة أردوينو.

صل الحساس ببطاقة أردوينو بالطرف الآخر للمقاومة 10 كـيلوأوم كما هو موضح بالصور.

01

 


البرمجة

قم بنقله إلى البرنامج كما هو إلا إذا أردت عمل تعديلات فيه طبعا.

 

/**********************************************

سنتحكم بحساس على اليمين وآخر على اليسار

عندما يتم تنشيط الحساس الأيمن فإن صمامه الضوئي يشتعل ويتحرك المحرك السيرفو

حتى لا يتم التقاط أي حركة. ويحدث نفس الشيء بالنسبة للحساس الأيسر. 

إذا قام الحساسان معا بالتقاط الحركة فهذا يعني أن الجسم المتحرك يقع في المجال بينهما

**************************************************************************/

 

// http://www.arduino.cc/playground/ComponentLib/Servo  بالنسبة لمكتبة السيرفو فيمكنك الحصول عليها من هنا

 

#include <....> //أكتب إسم المكتبة مكان النقاط

 

Servo myservo;          // ننشئ متغيرا للمحرك سيرفو

int pos =0;                   // متغير لحفظ زاوية السيرفو بالدرجة

int pinPIRleft =4;        // المربط الرقمي 4 يمثل الحساس الأيسر

int pinLEDleft =8;      // المربط الرقمي 8 يمثل الصمام الضوئي

int pinPIRright =2;     // المربط الرقمي 2 يمثل الحساس الأيسر

int pinLEDright =10;  // المربط الرقمي 10 يمثل الصمام الضوئي

 

void setup()

{

pinMode(pinLEDleft, OUTPUT);    // نجعل الصمامين الضوئين كمخرجين

pinMode(pinLEDright, OUTPUT);

pinMode(pinPIRleft, INPUT);         // نجعل الحساسين كمدخلين

pinMode(pinPIRright, INPUT);

myservo.attach(9);                            // نربط المحرك بالمربط الرقمي 9

}

 

void loop()

{ 

if(digitalRead(pinPIRleft)== LOW// إذا حدد الحساس الأيسر الحركة

{

digitalWrite(pinLEDleft, HIGH);      // أشعل صمامه الضوئي

 

// إذا كانت الزاوية أقل من 180 درجة وأن الحساس الأيمن غير مفعل فنقوم إذن بتشغيل المحرك سيرفو

if ((pos < 180) && (digitalRead(pinPIRright) == HIGH))

{

pos +=1;                                               // نزد في زاوية المحرك بواحد

myservo.write(pos);                           // إرسال الأمر بتحريك السيرفو نحو الزاوية الجديدة

delay(15);

}

}

else

{

digitalWrite(pinLEDleft, LOW);       // وإلا فسنقم بإيقاف الصمام الضوئي ولا حركة أيضا

}

 

if (digitalRead(pinPIRright) == LOW)

{

digitalWrite(pinLEDright, HIGH);

if ((pos >= 1) && (digitalRead(pinPIRleft) == HIGH))

{

pos -= 1;

myservo.write(pos);

delay(15);

}

}

else

{

digitalWrite(pinLEDright, LOW);

}

 

if ((digitalRead(pinPIRleft) == LOW) && (digitalRead(pinPIRright) == LOW)) {

// نفس الشيء أعلاه بالنسبة للحساس الأيمن

}

  


في النهاية

يمكنك بالنهاية وضع حساس ثالث زيادة وتطوير المشروع إذا اردت.

  


تأليف

 

تأليفLucky Larry

ترجمة بتصرف: عبد الله سعد عبد الستار فراج (الجيزة – مصر) 

{jumi [*3]} 


المراجع

 

http://luckylarry.co.uk/arduino-projects/arduino-very-basic-motion-tracking-with-2-pir-sensors/

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث