محتویات
سلام. پروژه فاصله سنج با سنسور التراسونیک HC-SR04 و میکروکنترلر PIC را آماده کرده ایم. فیلم عملکرد مدار را ببینید !
پروژه فاصله سنج با سنسور التراسونیک PIC
در این آموزش یاد خواهیم گرفت که چگونه می توان با استفاده از میکروکنترلر PIC و سنسور اولتراسونیک HC-SR04 یک فاصله سنج میسازیم. HC-SR04 یک سنسور اولتراسونیک است که می تواند برای اندازه گیری مسافت در هر نقطه بین 2 سانتی متر تا 450 متر (از نظر تئوری) استفاده شود. این سنسور در بسیاری از پروژه ها که مثل شناسایی موانع ، اندازه گیری مسافت ، نقشه برداری از محیط و غیره کاربرد دارد.ما اطلاعات دریافتی از سنسور را توسط میکروکنترلر PIC16F877A محاسبه میکنیم و زمان رفت و برگشت و فاصله را با ال سی دی کاراکتری نمایش میدهیم.
مدار پروژه اندازه گیری فاصله با PIC
- میکروکنترلر PIC16F877A ( دیتاشیت PIC16F877A )
- سنسور التراسونیک HC-SR04
- ال سی دی کاراکتری
- مقاومت 10 کیلو اهم
- خازن 2pf – دو عدد
- کریستال 20 مگا هرتز
توضیحات سنسور التراسونیک HC-SR04
ما باید یه اطلاعات کلی نسبت به سنسور التراسونیک داشته باشیم. ما میدانیم که ارتعاش صدا نمیتواند از طریق جامدات نفوذ کند. بنابراین وقتی یک منبع صدا باعث ایجاد ارتعاش شود ، آن ارتعاش از طریق هوا با سرعت 220 متر در هر ثانیه حرکت میکند. همانطور که گفتیم این ارتعاش ها نمیتوانند از طریق جامدات نفوذ کنند ، یعنی وقتی به یک سطح مثل دیوار برخورد کنند ، با همان سرعت برمیگردند به سمت سنسور ، این تکنیک اکو (ECHO) نامگذاری شده است.
سنسور التراسونیک HC-SR04 یک سیگنال خروجی متناسب با فاصله بر اساس اکو فراهم می کند. سنسور در اینجا یک لرزش صدا را در محدوده سنسور ایجاد می کند، و بعد از فرستادن یک ارتعاش ، برای بازگشت صدا منتظر می ماند.
فرستنده یک موج التراسونیک را در فرکانس 40 هرتز ساطع می کند ، این موج از طریق هوا عبور می کند و هنگامی که یک جسم را حس می کند باز میگردد. امواج برگشتی توسط گیرنده مشاهده می شود. اکنون می دانیم زمان لازم برای بازتاب و بازگشت این موج گرفته شده است و سرعت موج التراسونیک 3400 سانتی متر در ثانیه است. با استفاده از این اطلاعات و فرمول زیر میتوان فاصله را حساب کرد [ فاصله = سرعت موج * زمان ]
توضیح کد PIC قسمت محاسبه فاصله
زمان رفت و برگشت را از طریق فرمول زیر به دست می آوریم:
Time = (16-bit register value) * (1/5000000) * (4) = (16-bit register value) * (4/5000000) = (16-bit register value) * 0.0000008 seconds (OR) Time = (16-bit register value) * 0.8 میکرو ثانیه
همانطور که گفته شد فاصله توسط ضرب سرعت موج * زمان بدست می آید. چون زمان ما رفت و برگشت است باید آن را تقسیم به دو کنیم. همانطور که در خط اول کد زیر میبینید.
Distance = (Speed*Time)/2 = (34000 * (16-bit register value) * 0.0000008) /2 Distance = (0.0272 * 16-bit register value)/2
در خط دوم ما خط برای خط اول عدد گذاری کردیم. 34000 سرعت موج است ضربدر زمان رفت و برگشت تقسیم بر 2 میشود. در بالا فهمیدیم که زمان رفت و برگشت از ضرب 0.8 میکروثانیه در مقدار رجیستر 16 بیت به دست آید.
در خط سوم کوتاه شده فرمول خط دوم را مشاهده میکنید یعنی فاصله برابر است با 0.0272 ضربدر مقدار رجیستر 16 بیت تقسیم بر 2.
موارد موجود در فایل : فایل سورس کامل ، شماتیک کامل و …
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
موقع build کردن برنامه، ارور finished (with error) میده، باید چیکار کنیم؟
سلام
16-bit register value چه پارامتری هست؟ کجا باید تعریف بشه
سلام ارادتمندم.
نرم افزار mplab مثل کدویژن ویزارد دارد؟