الجمعة، 12 يوليو، 2013

حساس الأشعة تحت الحمراء SHARP 2Y0A21


حساس الأشعة تحت الحمراء لقياس المسافة

SHARP 2Y0A21 Distance Measuring Sensor Unit


في تدوينة سابقة لي , تحدثت عن الألتراسونيك الذي يعد حساساً فعّالاً جداً لقياس المسافة باستخدام الأمواج فوق الصوتية , لذلك نراه يستخدم بكثرة في الروبوتات و بعض اجهزة الأنذار مثل السيارات الحديثة .

هناك طرق اخرى لقياس المسافة باستخدام تقنية الأشعة تحت الحمراء , باستخدام حساس من شركة شارب SHARP 2Y0A21

يمكن الأطلاع على النشرة الفنية الخاصة بالحساس من خلال الرابط

كما أن هذا الحساس يستطيع تحديد المسافة من 10 - 80 سم و سنتحدث عن هذه النقطة بشيء من التفصيل بعد قليل .

توزيع الأرجل :

تتوزع الأرجل في هذا الحساس كما في الصورة .



يتكون فقط من 3 أرجل , التغذية 5V و الأرضي GND و فولتية المخرج V0 و هو عبارة عن فولتية تتناسب بعلاقة مع المسافة .

التوصيل :


ما ستحتاجه لتنفيذ هذه التجربة :

1) بطاقة أردوينو 
2)الحساس SHARP 2Y0A21
3) اسلاك توصيل 



مبدأ العمل :



عمل هذا الحساس بسيط جداً حيث يقوم المرسل Tx بارسال اشعة تحت الحمراء Infrared و في حال اصطدامها بجسم أو حاجز امامها فأنها ترتد و تعود إلى المستقبل في الحساس Rx.

 يعتمد ارتداد الضوء عن الجسم بالأعتماد على طبيعة المادة التي تصتطد بها هذه الأشعة reflective ratio و هو يختلف من مادة لأخرى "اللون الأبيض معامل الانعكاس reflective ratio له كبير أكبر من 90% و اللون الأسود له معامل انعكاس قليل "

حساب المسافة :

المعضلة الكبرى في هذا الحساس هو قياس المسافة بدقة , إذا أن هذا الحساس له علاقة غير خطية non-linear لذلك لا يمكن لنا ايجاد معادلة واضحة أو طريقة سهلة لايجاد العلاقة بين المسافة و فولتية المخرج V0 .



هذا الرسم البياني يوضح هذه العلاقة , و يتضح منها أن العلاقة بين الفولتية و المسافة علاقة أسية Exponantial .

لكن أذا أكملنا تصفح النشرة الفنية نرى علاقة أخرى بين معكوس المسافة و الفولتية , و العلاقة به خطية بصورة كبيرة .




حسناً كيف لنا ان نشتق المعادلة منه ؟

قانون بسيط درسناه في المدارس و هو قانون الميل و اجاد معادلة خطية من نقطتين معلومتين .


يمكن ايجاد الميل إذا علمنا نقطتين في الرسم و يعطى بالعلاقة :


Slope = Y2-Y1 / X2-X1


و قانون المعادلة الخطية يعطى بالعلاقة
Y-Y1=Slope(X-X1)


من التعويض في المعادلتين باستخدام النقطتين (0.14,2.98 ) و ( 0.016,0.5 ) الميل Slope كان 19.53 , و المعادلة النهائية التي تربط مقلوب المسافة بالفولتية هي


distance =X=0.05Y - 0.013

حيث x تعبر عن مقلوب المسافة و y يعبر عن فولتية الخرج .

سنضع هذه المعادلة في البرنامج لنحصل على المسافة بالضبط .

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


البرنامج :
//****************************************************
//Name :Mohannad Rawashdeh .
//Date "1/7 /2013 3:00pm
// Description: This  Code for SHARP IR 2Y0A21 
// Connect V0 To analog pin A0
// Programmed for http://www.genotronex.com/
//****************************************************************
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:
  float voltageValue=sensorValue*4.88E-3;
  float inverseDistance1=(0.05*voltageValue)-0.013;
  float Distance1=1/inverseDistance1;  
  Serial.print("Distance 1= ");
  Serial.print(Distance1);
  Serial.println(" cm ");
  delay(1000);        // delay in between reads for stability
}



وهذا هو كل شيء .

يمكنك ان تفتح شاشة السيريال في الأردوينو لترى المسافة التي يقرأها هذا الحساس





يمكنك استخدام هذا الحساس في بناء روبوتك الخاص أو في كشف مرور الأجسام من مكان ما .



سأتحدث في تدوينة منفصلة عن نوع أخر من هذا الحساس و هو GP2Y0A02 ذو مدى أكبر .


11 التعليقات :

  1. يعطيك العافية صديقي .. اذا ممكن سؤال .. شو الفرق بين الالتراسونك و هذا الحساس !؟ يعني على اي اساس اختار بين النوعين ؟

    ردحذف
    الردود
    1. الألتراسونيك يعتمد على الامواج فوق الصوتية , و تعتمد قراءته على زاوية الجسم المرتدة عنها هذه الأمواج .

      الاشعة تحت الحمراء مداها أقل لكن توصيلها اسهل و التحكم في اشارتها أكثر مرونه منه في الألتراسونيك .

      يجب عليك ان تحدد الوظيفة , أقل مسافة و اعلى مسافة تريد أن تقرأها , فهناك منطقة ميته Dead zone في هذا الحساس عند أقل من 6 سم . أي أنه لا يقرأ المسافة أقل من 6 سم بشكل صحيح .

      حذف
    2. اود الاضافة ان حساسات الاشعة تحت الحمراء قابلة للتشويش الشديد
      .. فمثلا اذا قمت بتشغيل الحساس فى وضح النهار (ساعات الظهيرة) ستجد ان الحساس قد اصابه الجنون و هذا بسبب ان الشمس ترسل اشعة تحت حمراء تشوش على المرسل و المستقبل لذلك يفضل استخدام الموجات فوق الصوتية بدلا منه فى التطبيقات التى تعتمد على الخروج فى ضوء الشمس :)

      حذف
  2. شكراً عبد الله على المعلومة , بصراحة لم انتبه لهذا الموضوع قبلاً

    ردحذف
  3. السلام عليكم الموضوع رائع والف شكرا على الشرح الجميل دا بس انا عندى سؤال ايهما افضل عند الاستخدام تحت الماء وادق فى القياس المسافة تحت الماء وكيفية ربط السنسور بشاشة للقراءه مباشرة وشكراا تحياتى ^_^

    ردحذف
    الردود
    1. الأفضل هو الألتراسونيك بأنواع مخصصة للعمل تخت الماء

      حذف
  4. طيب لما ابي اربط الجهاز هذا بجهاز ثاني يعني لمل يكتشف هالجهاز شي اقدر اخلي جهاز اني يسوي شي ثاني بنفس الوقت

    ردحذف
  5. طيب لما ابي اربط الجهاز هذا بجهاز ثاني يعني لمل يكتشف هالجهاز شي اقدر اخلي جهاز اني يسوي شي ثاني بنفس الوقت

    ردحذف
  6. جميل بارك الله فيك , نريد مستشعر طوووويل المدى وطريقه ربطه بالاردينو

    ردحذف
  7. ممكن صفحتك الشخصية

    ردحذف
  8. السلام عليك أخي أشكرك على هذا المعلومات القيمة و من فضلك لم أفهم voltageValue=sensorValue*4.88E-3; لماذا آلعدد 4.88؟

    ردحذف

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.