إكتشاف العوائق عن طريق الأشعة تحت الحمراء :
هل تبحث عن مكتشف للعوائق للروبوت الخاص بك ؟ سوف نتناول كيفية استخدام مكونات أشعة تحت الحمراء بسيطة للكشف عن الكائنات .
فى هذا المشروع سوف نستخدم ليد أشعة تحت حمراء كمرسل ووحدة (موديول) اكتشاف أشعة تحت حمراء كمستقبل (نوع باناسونيك PNA4602M على سبيل المثال ) .
وحدات اكتشاف الأشعة تحت الحمراء تتطلب وصول إشارة بيانات من حامل (ناقل) للتردد carrier frequency . السلسلة PNA4601M لها أربع أربع ترددات نقل مختلفة :
ونظرا لإننا لسنا معنيين بنقل (حمل) أى إشارة بيانات لمعلومات مفيدة , فكل ماعلينا القيام به فى هذا المشروع هو إنشاء تردد حامل (ناقل) لليد الأشعة تحت الحمراء (المرسل) ( 38.0 KHz) , لإحداث تغيير فى حالة الخرج لوحدة كشف الأشعة تحت الحمراء (المستقبل) PNA4602M .
حالة الخرج العادية ( عدم وجود استقبال لأى بيانات data أوتردد حامل carrier) تكون مرتفعة high (1) لأن خرج وحدة كشف الأشعة تحت الحمراء يوجد به داخليا مقاومة رفع لأعلى (متصلة بالجهد الموجب) .
عندما يتم استقبال بيانات أو تردد حامل يصبح الحرج فى الحالة المنخفضة low (0) .
دائرة الإرسال :
كما ذكرنا قبل ذلك . نحن بحاجة فقط للتردد الحامل 38.0KHz من أجل ليد الأشعة تحت الحمراء ليجعل خرج وحدة استقبال الأشعة تحت الحمراء يتغير عندما يستقبل التردد الحامل , لحسن الحظ , معظم الميكروكونترولر PIC بها وحدة "تعديل بعرص النبضة" PWM , كما أن مترجم الميكروسى مدمج به روتينات لإنشاء PWM .
فيما يلى التوصيل بين الميكروكونترولر وليد الإرسال وكود إعداد التعديل بعرض النبضة PWM .
كود:
Pwm1_Init(38000); // 38.0KHz
Pwm1_Set_Duty(60); // ~23.5% duty ratio
Pwm1_Start(); // Transmission
دائرة الاستقبال :
هذه الدائرة بسيطة للغاية . مجرد توصيل طرف خرج الوحدة PNA4602Mإلى طرف الميكروكونترولر (PORTA.1) . خرج وحدة الاستقبال سوف يكون منخفضا low (0) عندما يستقبل التردد الحامل . الطرف PORTA.1 يجب أن يكون مدخل عن طريق تحديد البت TRISA bit 1 بواحد , والطرف PORTB.0 يجب أن يكون مخرج عن طريق جعل البت TRISB bit 0 بصفر .
[url=http://eeecb.com/up2//uploads/images/domain-80c47efda1.jpg]
[/url
كود:
// My test board: PIC16F877A , 4MHz ,
//PWM output from RC2 , IR input to RA1
void main(){
ADCON1= 6; // All pins >> digital I/O
TRISA=0x02; //pin RA1 as input
TRISB = 0; // port b as outopu
PORTB = 0;// reset output
TRISC = 0;// port c output ( PWM from RC2)
// Transmission
Pwm1_Init(38000); // 38.0KHz
Pwm1_Set_Duty(60); // ~23.5% duty ratio
Pwm1_Start(); // Transmission
while(1){
// receiving
if(PORTA.F1 == 0) PORTB.F0 = 1; // if RA0 >> Low >> LED on
else PORTB.F0 = 0;
}
}
الاختبار :
الضوء المحيط والكائنات القريبة تؤثر على قدرة الكشف . الكائنات القريبة جدا يتم كشفها بسهولة وأيضا المستويات المرتفعة للضوء المحيط تقلل من مسافة الكشف الكلية .