تحكم في سيرفو موتور بحساس تحت الاشعة الحمراء | Control the servo motor with an IR sensor - DIY Channel3

DIY Channel3

Arduino│ESP8266│ESP32│Drone│Robot

تحكم في سيرفو موتور بحساس تحت الاشعة الحمراء | Control the servo motor with an IR sensor

مشاركة هذا

 



في هذا المشروع سنقوم بطريقة تحكم في سيرفو موتور بحساس تحت الاشعة الحمراء 

تتكون وحدة مستشعر الأشعة تحت الحمراء بشكل أساسي من جهاز إرسال واستقبال الأشعة تحت الحمراء ، و Opamp ، والمقاوم المتغير (وعاء Trimmer) ، وإخراج LED باختصار.



مرسل IR LED :


ينبعث IR LED الضوء ، في نطاق تردد الأشعة تحت الحمراء. ضوء الأشعة تحت الحمراء غير مرئي بالنسبة لنا لأن الطول الموجي (700nm - 1mm) أعلى بكثير من نطاق الضوء المرئي. تتميز مصابيح LED التي تعمل بالأشعة تحت الحمراء بزاوية انبعاث الضوء تقريبًا. 20-60 درجة ومدى تقريبًا. بضعة سنتيمترات إلى عدة أقدام ، يعتمد ذلك على نوع مرسل الأشعة تحت الحمراء والشركة المصنعة. بعض أجهزة الإرسال لها مدى بالكيلومترات. LED IR أبيض أو شفاف اللون ، لذلك يمكن أن يعطي كمية من الضوء الأقصى.


مستقبل ضوئي :


يعمل الثنائي الضوئي كمستقبل للأشعة تحت الحمراء حيث يعمل عندما يسقط عليه الضوء. الثنائي الضوئي هو عبارة عن شبه موصل له تقاطع PN ، يعمل في عكس الاتجاه ، ويعني أنه يبدأ في توصيل التيار في الاتجاه العكسي عندما يسقط عليه الضوء ، ويتناسب مقدار التدفق الحالي مع كمية الضوء. هذه الخاصية تجعلها مفيدة للكشف عن الأشعة تحت الحمراء. يبدو الثنائي الضوئي مثل LED ، مع طلاء أسود اللون على جانبه الخارجي ، يمتص اللون الأسود أكبر قدر من الضوء.


LM358 Opamp


LM358 هو مضخم تشغيلي (Op-Amp) يستخدم كمقارن للجهد في مستشعر الأشعة تحت الحمراء. سيقارن المقارنة بين مجموعة عتبة الجهد باستخدام الإعداد المسبق (pin2) وجهد المقاوم المتسلسل للديود الضوئي (pin3).

انخفاض جهد المقاوم لسلسلة الصمام الثنائي الضوئي> جهد العتبة = ناتج Opamp مرتفع

انخفاض جهد المقاوم لسلسلة الصمام الثنائي الضوئي <جهد العتبة = خرج Opamp منخفض

عندما يكون خرج Opamp مرتفعًا ، يتحول مؤشر LED في طرف خرج Opamp إلى وضع التشغيل (مما يشير إلى اكتشاف الكائن).

مقاومة متغيرة :

المقاوم المتغير المستخدم هنا هو محدد مسبقًا. يتم استخدامه لمعايرة نطاق المسافة الذي يجب اكتشاف الكائن عنده.


++ اختيار محرك سيرفو الخاص بك :



هناك الكثير من المحركات المؤازرة المتوفرة في السوق ولكل منها تخصصه وتطبيقاته الخاصة. ستساعدك الفقرتان التاليتان في تحديد النوع الصحيح لمحرك سيرفو لمشروعك / نظامك.


تعمل معظم محركات الهواية المؤازرة من 4.8 فولت إلى 6.5 فولت ، وكلما زاد الجهد الذي يمكننا تحقيقه أعلى ، لكن الأكثر شيوعًا أنها تعمل عند + 5 فولت. يمكن أن تدور جميع محركات الهواية تقريبًا فقط من 0 درجة إلى 180 درجة بسبب ترتيب التروس الخاص بها ، لذا تأكد من أن المشروع يمكن أن يعيش مع نصف دائرة إذا لم يكن كذلك ، يمكنك أن تفضل محرك 0 درجة إلى 360 درجة أو تعديل المحرك لجعله دائرة كاملة. تتعرض التروس الموجودة في المحركات بسهولة للبلى ، لذلك إذا كان التطبيق الخاص بك يتطلب محركات أقوى وطويلة التشغيل ، فيمكنك استخدام التروس المعدنية أو مجرد التمسك بمعدات بلاستيكية عادية.


يأتي بعد ذلك العامل الأكثر أهمية ، وهو عزم الدوران الذي يعمل عنده المحرك. مرة أخرى ، هناك العديد من الخيارات هنا ولكن الخيار المتاح بشكل شائع هو عزم الدوران 2.5 كجم / سم والذي يأتي مع محرك Towerpro SG90. إن عزم الدوران 2.5 كجم / سم يعني أن المحرك يمكنه سحب وزن 2.5 كجم عندما يتم تعليقه على مسافة 1 سم. لذلك إذا قمت بتعليق الحمولة عند 0.5 سم ، فيمكن للمحرك سحب حمولة 5 كجم بالمثل إذا قمت بتعليق الحمل عند 2 سم ، فيمكنه سحب 1.25 فقط. بناءً على الحمل الذي تستخدمه في المشروع ، يمكنك اختيار المحرك بعزم دوران مناسب. ستوضح الصورة أدناه نفس الشيء.



المكونات الاساسية :


- Arduino UNO



- IR infrared Sensor Module



- Mini Breadboard



- Servo Motor 9g



- Jumper Wires


++ مخطط الرسم البياني :


  
++ الكود البرمجي هنا :

// Servo motor control via infrared sensor
// Abdellatif Mimoune
// My channel Youtube : https://www.youtube.com/channel/UCiM9zk6QfUmNM03O0A_JiDQ

#include <Servo.h>
Servo myservo; 
int pos;
int Signal = 2;
void setup() 
{
  pinMode(Signal, INPUT);
  myservo.attach(5);  
}
void loop() {
  int buttonState = digitalRead(Signal);
  delay(1); 
if (buttonState == 0)
    {
  for ( ;pos >= 40; pos -= 1) 
   { 
    myservo.write(pos);             
    delay(15);                        
   }
    }
else
    {
  for ( ;pos <= 80; pos += 1) 
  { 
    myservo.write(pos);             
    delay(5);                        
   }
    }
}


No comments:

Post a Comment