آموزش راه اندازی ماژول فاصله سنج التراسونیک SRF05 با میکروکنترلر AVR

بازگشت به آموزشگاه

مقدمه

حتما همه واژه التراسونیک را شنیده ایم. سنسورهایی که با امواج التراسونیک کار می کنند ، کاربردهای بسیاری در صنعت دارند. یکی از کاربردهای التراسونیک تشخیص فاصله است. در بسیاری از پروژه ها نیاز به دانستن فاصله با دقت میلیمتری هستیم. برای مثال در کاربردهایی نظیر سنجش ارتفاع آب ، فاصله دو جسم از یکدیگر ، سنسورهای دنده عقب خودرو و … از این سنسورها استفاده می شود. در این آموزش با استفاده از سنسور SRF05 یک فاصله سنج دقیق خواهیم ساخت با ما همراه باشید.

Ultrasonic_Sensor_Concept_Diagram


التراسونیک چیست ؟

کلمه آلتراسونیک Ultrasonic  به معنای مافوق صوت است. محدوده فرکانس شنوایی انسان 20 هرتز تا 20 هزار هرتز است. محدوده فرکانسی امواج مافوق صوت 40 کیلو هرتز تا چندین مگا هرتز می‌باشد. امواج مافوق، کاربردهای فراوانی از جمله در لیزر، تخلیه الکتریکی برای بهبود خواص سطحی و افزایش نرخ باربرداری، سنجش فاصله، عمق مخزن، شستشوی دقیق ظروف آزمایشگاهی، تعیین فشار خون بیمار، همگن کردن مواد مذاب، جوشکاری مواد غیر هم جنس، ریخته گری، تراشکاری، فرزکاری، سوراخکاری و غیره دارد.

Ultrasound_range_diagram

 


سنسور های آلتراسونیک

برای استفاده از امواج فرا صوت از حسگر هایی استفاده می‌شود که این حسگرها بر اساس محدوده فرکانسی خود به دو دسته صنعتی و غیر صنعتی تقسیم بندی می‌شوند. حسگرهای فرا صوت غیر صنعتی در محدوده فرکانسی 40 کیلو هرتز و حسگرهای صنعتی در حد مگا هرتز هستند. حسگرهای آلتراسونیک معمولا دارای یک فرستنده و یک گیرنده آلتراسونیک هستند. امواج فرستاده شده از حسگر پس از برخورد با یک مانع به حسگر بر می‌گردند و توسط گیرنده حسگر دریافت می‌شوند. از این طریق و با در نظر گرفتن زمان بازگشت موج و کیفیت امواج بازتابی می‌توان به اطلاعاتی راجع به عمق، نوع و سرعت مانع به دست آورد. حسگرهای فرا صوت مزیت‌های فراوانی دارند مانند نویز پذیری کم، استفاده در شرایط نوری مختلف و…

امواج فرا صوت همانند امواج دیگر خواص شکست، پراش، بازتاب و عبور دارند. این امواج به سه روش مکانیکی، مغناطیسی و الکتریکی ایجاد می‌شوند.

ultrasonic-sensor

 


معرفی ماژول فاصله سنج SRF05

SRF05 یک فاصله سنج التراسونیک بوده و با استفاده از این ماژول قادر خواهید بود فاصله دقیق یک مانع  را مشخص نمایید. این ماژول به نوعی مدل تکامل یافته SRF04 است. در این ماژول انعطاف طراحی بالا رفته و برد مفید فاصله سنجی ارتقاء یافته است. SRF05 با SRF04 کاملا تطابق داشته و برد آن از 3 متر به 4 متر افزایش یافته است. برای صرفه جویی در پایه های I/O ی میکروکنترلر یا هر سیستم میزبان دیگر امکان جدیدی در SRF05 تعریف شده است. در این حالت میتوانید از طریق یک پایه پالس تریگر را ارسال و سیگنال اکو را دریافت کنید.

srf05

لینک خرید مستقیم ماژول SRF05 از فروشگاه الکترو ولت

ویژگی های ماژول SRF05

ولتاژ کاری : 4.5 تا 5.5 ولت
جریان مصرفی : 10 تا 40 میلی آمپر
حئاکثر زاویه اندازه گیری : 15 درجه
مسافت قابل سنجش:  2cm تا 450cm
دقت اندازه گیری : 3mm
سیگنال تریگر ( ورودی ) : پالس دیجیتال 10us
سیگنال اکو ( خروجی ) : پالس دیجیتال که بستگی به فاصله اندازه گیری شده دارد

 


توضیح عملکرد ماژول SRF05

ترتیب قرار گرفتن پایه های این ماژول همان طور که از روی تصویر مشخص می باشد از قرار زیر است:

  • VCC
  • TRIG
  • ECHO
  • OUT
  • GND

تغذیه این ماژول +۵ ولت می باشد و برای راه اندازی این ماژول باید پایه های TRIG و ECHO به میکروکنترلر وصل شود و عملکرد این پایه ها از قرار زیر می باشد.

srf05-timing

ابتدا باید یک پالس با طول ۱۰ میکرو ثانیه به پایه TRIG اعمال شود. ماژول به صورت اتوماتیک ۸ عدد پالس با فرکانس ۴۰ کیلو هرتز ارسال میکند. وقتی که پالس ها ارسال شد پایه ECHO یک می شود و تا زمانی که برگشت پالس ها از جسم را دریافت نکند این پایه یک باقی میماند. پس با اندازه گیری مدت زمانی که این پایه در سطح منطقی ۱ بوده است میتوان زمان رفت و برگشت صوت را بدست آورد. برای اندازه گیری پالس روی پایه ECHO باید از واحد تایمر میکروکنترلر استفاده کرد. بعد از اطلاع از زمان رفت و برگشت سیگنال اولتراسونیک با استفاده از رابطه های زیر فاصله سنسور تا مانع به راحتی محاسبه می شود.

 

نکته: سرعت صوت در شرایط آب و هوایی مختلف، متفاوت است اما به صورت پیش فرض میتوان سرعت صورت را 340 متر بر ثانیه ( 29.155 میکروثانیه بر سانتی متر ) در نظر گرفت.

 


پروژه ساخت فاصله سنج التراسونیک با AVR

مرحله اول : طراحی سخت افزار در پروتئوس

srf05-proteus

سخت افزار این پروژه را در نرم افزار پروتئوس به صورت فوق رسم کردیم. یک LCD کاراکتری 2 در 16 برای نمایش مسافت در نظر گرفتیم. پایه های تریگر و اکو از ماژول SRF05 نیز به ترتیب به پایه های PC.0 و PC.1 متصل شده اند. پایه های Vcc و GND ماژول نیز به Vcc و GND میکرو و هر دو به یک رگولاتور 7805 وصل هستند.

 

مرحله دوم : طراحی نرم افزار در کدویژن

توضیح عملکرد برنامه :

برای اندازه گیری دقیق زمان از واحد تایمر شماره صفر میکروکنترلر استفاده کردیم و فرکانس آن را روی 1Mhz قرار دادیم. بنابراین به ازای هر واحد افزایش رجیستر تایمر صفر ، یک میکروثانیه زمان سپری می شود و سر ریز شدن آن 256 میکرو ثانیه طول می کشد. برای اینکه پالس 10 میکروثانیه را به ماژول SRF05 اعمال کنیم ، بعد از اینکه پورت PC0 را یک کردیم ، تایمر را راه اندازی کرده و تا زمانی که رجیستر تایمر 10 نشده است صبر می کنیم. سپس PC0 را صفر کرده و منتظر یک شدن PC1 برای دریافت پالس اکو می مانیم. به محض یک شدن PC1 تایمر را راه اندازی کرده سپس تا زمانی که PC1 یک می باشد تایمر را فعال و به محض صفر شدن PC1 تایمر را غیر فعال می کنیم. یک متغیر کمکی برای شمارش زمان تایمر از نوع int تعریف کردیم که هر بار که تایمر پر می شود ( پس از سپری شدن 256 میکروثانیه ) ، یک واحد به آن اضافه می گردد. بنابراین برای تعیین کل زمان عملکرد تایمر از فرمول زیر استفاده می کنیم که در آن فاصله بر حسب سانتی متر بدست می آید و T نیز از رابطه زیر آن بر حسب میکروثانیه بدست می آید.

 

یعنی زمان کل بر حسب میکروثانیه برابر است با مقدار کنونی عدد شمارش شده در تایمر صفر ( TCNT0 ) به اضافه ی تعداد مرتبه هایی که تایمر پر شده است ( timer ) ضربدر 256 میکروثانیه .

سپس برنامه این مقدار را در صورتی که در بازه مجاز قرار داشته باشد رویLCD نشان می دهد و دوباره کار را از سر میگیرد.

 

مرحله سوم : طراحی PCB و پیاده سازی عملی پروژه

 


دانلود سورس برنامه شامل :

  • گزارش کامل انجام پروژه در قالب pdf
  • سورس برنامه به زبان C در نرم افزار کدویژن
  • سورس شبیه سازی در پروتئوس
  • سورس پروژه PCB در نرم افزار آلتیوم
  • دیتاشیت های مورد نیاز

لینک خرید آنلاین سورس این پروژه

4+

دیدگاه (14)

  • Shahab پاسخ

    سلام
    اطلاعی از نحوه کار سنسور های پارک خودرو ( التراسونیک) و طریقه اتصالشون به میکرو رو دارین?
    این سنسور ها فقط دو سیم مثبت و منفی دارن و خبری از Vcc و GND و تریگر نیست!

    2017-07-30 در 15:33
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز هیچ وقت یک سنسور بدون منبع تغذیه ( یعنی VCC و GND ) کار نمی کند مگر اینکه به صورت القایی و با سیم پیچ ( از راه دور ) تغذیه صورت گیرد نظیر کارت های RFid

      2017-07-30 در 16:26
  • abdi پاسخ

    سلام
    من خط 52رو نیفهمم میشه بگی برا ی این خط نوشتی
    اون عد 30000از کجا اومده سپاس

    2017-10-22 در 19:25
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز این ماژول حداکثر تا 4.5 متر برد داره و در صورتی که جلوی ماژول تا 4.5 متر چیزی قرار نگرفته باشه ، یعنی زمانی بیشتر از 30000 سپری شده و اینگونه تشخیص داده می شود

      2017-10-23 در 10:17
  • محمد حسین پاسخ

    سلام.
    ببخشید مگر پایه ی اکو رو به PD.1 وصل نکردین؟
    پس چرا در خط 46 و 50، PINC.1 نوشته شده؟

    2018-06-01 در 16:34
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز این برنامه که در این آموزش هست غلط زیاد داره لطفا از لینک انتهای مطلب برنامه اصلی را تهیه فرمایید

      2018-06-04 در 14:14
  • محمد حسین پاسخ

    سلام
    ببخشید من نفهمیدم در خط 60 اون بعلاوه 100 برای چی هست؟

    2018-06-01 در 18:25
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز اون بعلاوه 100 برای تنظیمات کالیبراسیون هست یعنی باید در عمل طول یک جسمی که اندازه دقیق آن را می دانیم نظیر یک خط کش را اندازه بگیریم و میزان خطای اندازه گیری شده توسط ماژول را به فرمول اضافه ( یا کم ) کنیم.

      2018-06-04 در 14:22
  • محسن پاسخ

    سلام خسته نباشید
    ببخشید تو کدوم قسمت این کد تریگ رو اعمال کردید؟

    2018-07-11 در 14:58
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز سلامت باشید خط 43 تا 45

      2018-07-13 در 10:24
  • Peymanyousefi پاسخ

    سلام میخواستم این پروژه رو واسم کسی درست کنه حالا یا خود ادمین یا کسی ک بتونه درستش کنه هزینشم میدم

    2019-01-30 در 18:52
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز برای انجام این پروژه و گرفتن قیمت آن در تلگرام پیام دهید

      2019-01-31 در 11:26
  • محمد پاسخ

    سلام وقت بخیر خدا قوت و خسته نباشید
    برای اندازه گیری نرخ سوزش میل سوخت جامد استوانه ای شکل که بصوزت سیگاری در محفظه تحت فشار دما بالا میسوزه میخواستم ببینم میشه با روش التراسونیک سرعت سوختن رو اندازه گیری کنم اگه میشه چه سنسوری رو پیشنهاد میکنین؟
    ممنون میشم راهنماییم کنید

    2019-03-26 در 22:02
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز ممنون سلامت باشید
      با استفاده از این ماژول تنها میتوان ارتفاع مایعات درون مخزنی را اندازه گیری کرد و با داشتن مساحت سطح مقطع مخزن ، حجم مخزن در لحظه را محاسبه نمود. با داشتن حجم مخزن در دو لحظه میتوان مقدار متوسط مصرف مایع را نیز محاسبه کرد. البته این ماژول ضد آب نمی باشد و به محض رسیدن مایعات به آن می سوزد.

      2019-03-27 در 14:05

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

3 + دوازده =

بازگشت به آموزشگاه