طراحی ماژول فاصله یاب اولتراسونیک با MAX232 و AVR

ساخت ماژول اولتراسونیک

در این بخش دانلود پروژه طراحی ماژول فاصله یاب اولتراسونیک با تراشه MAX232 و میکروکنترلر AVR, توسط تیم الکترونیک وبرنامه نویسی الکترونیک ۹۸ برای شما علاقه مندان به پروژه های میکروکنترلر AVR آماده شده است. در این پروژه با استفاده از مدارات فرستنده و گیرنده معرفی شده و میکروکنترلر ATtiny2313, یک فاصله یاب اولتراسونیک کامل می سازیم.

بعد قبل
طراحی ماژول فاصله یاب اولتراسونیک با MAX232 و AVR
طراحی ماژول فاصله یاب اولتراسونیک با MAX232 و AVR
طراحی ماژول فاصله یاب اولتراسونیک با MAX232 و AVR
بعد قبل

میکروکنترلر AVR باید موج اولتراسونیک را برای مدت معینی از طریق فرستنده ارسال کند و بازتاب موج ارسالی را پس از چند لحظه از طریق گیرنده دریافت نماید و با اندازه گیری زمان رفت و برگشت, فاصله را مشخص کند و روی LCD کاراکتری نشان دهد. در صورتی که مانعی وجود نداشته یا خیلی دور باشد, موج بازگشتی وجود نخواهد داشت و پیغام (Over Range) به معنای وجود نداشتن مانع روی, روی ال سی دی LCD ظاهر می شود.

نقشه شماتیک پروژه ساخت ماژول فاصله یاب اولتراسونیک با MAX232 و AVR

نقشه شماتیک کامل مدار پروژه در ادامه نشان داده شده است. در مدار فرستنده بر خلاف معمول, از تراشه MAX232 استفاده شده است. همان طور که می دانید, این تراشه به منظور تغییر سطوح منطقی برای برقراری ارتباط سریال استفاده شده است. همانطور که می دانید, این تراشه به منظور تغییر سطوح منطقی برای برقراری ارتباط سریال بین دو استاندارد TTL و RS232 ساخته شده و در این پروژه برای بالا بردن قدرت فرستنده به کار رفته است. توسط تراشه MAX232 می توان فرستنده اولتراسونیک را با ولتاژ Peak To Peak حدود 20V تحریک کرد.

نقشه شماتیک پروژه ساخت ماژول فاصله یاب اولتراسونیک با MAX232 و AVR

در داخل تراشه max232, مداری برای تبدیل ولتاژ 5v به مثبت و منفی 10v وجود دارد که اصطلاخا Charge Pump نامیده می شود. از آنجا که ممکن است این مدار به دلیل ایجاد نویز, در عملکرد مدار گیرنده تاثیر منفی بگذارد, بهتر است تراشه max232 را پس از پایان ارسال امواج اولتراسونیک به طور کامل خاموش کنیم. برای انجام این کار همان طور که در نقشه شماتیک پروژه مشاهده می کنید از ترانزیستور BC327 استفاده شده است. به این ترتیب با صفر و یک شدن پایه PD3 یا همان TRIGER, تراشه MAX232 به ترتیب روشن و خاموش می شود.

توجه : زمان راه اندازی (Startup Time) برای تراشه MAX232 حدود 10ms میلی ثانیه است, بنابراین باید اول پس از صفر کردن پایه PD3, ده میلی ثانیه دست نگه داریم و پس از آن فرستنده اولتراسونیک را از طریق این تراشه راه اندازی کنیم.

پس از راه اندازی مدار, فرآیند فاصله یابی به طور مداوم و با فاصله زمانی مشخص صورت می گیرد. توسط دیپ سوئیچ (Dip Switch) نشان داده شده در شکل, می توان این فاصله زمانی را در 4 مقدار مختلف بین 200 تا 2000ms تنظیم کرد.

برنامه میکروکنترلر در محیط نرم افزار Bascom AVR

برنامه میکروکنترلر در محیط نرم افزار Code Vision AVR

شرح برنامه میکروکنترلر به زبان بیسیک و زبان C

همانطور که در نقشه شماتیک این پروژه مشاهده می کنید، در این پروژه، نوسان ساز جداگانه ای برای تولید موج مربعی 40KHz استفاده نشده است و در حقیقت تولید این موج بر عهده میکروکنترلر می باشد و توسط تایمر صفر Timer0 انجام می گیرد. با فعال شدن تایمر صفر در زیر روال وقفه این تایمر، پایه های PD4 و PD5 پی در پی صفر و یک می شوند تا در نهایت موج مربعی با فرکانس 40KHz به دست آید. صفر و یک شدن PD4 و PD5 کاملا عکس یکدیگر است و باعث می شود موجع مربعی به دست آمده در خروجی تراشه Max232 بین 10V± نوسان کند. به عبارت دیگر، دامنه موج مربعی اعمال شده به فرستنده اولتراسونیک برابر با 20V پیک تا پیک خواهد بود.

نحوه ارسال موج اولتراسونیک

هر دو تایمر صفر و یک در هنگام راه اندازی، غیرفعالند. در شروع هر چرخه از حلقه اصلی این دو برنامه، ابتدا وقفه خارجی صفر غیر فعال می گردد تا هر گونه تغییر در وضعیت پایه INT0 نادیده گرفته شود. وقفه خارجی صفر تا زمانی که عمل ارسال تمام نشود، غیر فعال می ماند. در ادامه، تایمر صفر با مقدار F4H بار می شود تا برای تولید موج 40KHz آماده باشد. پس از آن تایمر 1 با مقدار 0000H بار می شود. تایمر 1 در این پروژه برای اندازه گیری مدت زمان رفت و برگشت موج اولتراسونیک استفاده شده و چون فرکانس کلاک تایمر یک 1MHz در نظر گرفته شده است، مقدار شمارش شده در این تایمر بر حسب میکروثانیه خواهد بود.

در این لحظه، همه چیز برای ارسال موج اولتراسونیک و شروع شمارش تایمر 1 آماده است. با صفر شدن پایه PD3 توسط دستور Trigger=0 تراشه Max232 روشن می شود. همانظور که اشاره شد برای پایدار شدن مبدل ولتاژ داخلی تراشه، زمانی حدود 10 میلی ثانیه لازم است و بنابراین عمل بعدی ایجاد تاخیر 10ms است. پس از آن، دو تایمر صفر و یک، همزمان راه اندازی می شوند. تایمر صفر پس از 100 میکروثانیه متوقف می گردد، در نتیجه بازه زمانی موج اولتراسونیک ارسالی، تنها 100 میکروثانیه یا 4 سیکل خواهد بود.

نحوه دریافت موج اولتراسونیک و محاسبه فاصله

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

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

پس از محاسبه فاصله، مقدار بدست آمده بر حسب سانتی متر بر روی ال سی دی کاراکتری نشان داده می شود. چنانچه مانعی وجود نداشته باشد یا خیلی دور باشد، موج بازگشتی وجود نخواهد داشت و تایمر 1 پس از زمانی حدود 65 میلی ثانیه سر ریز می شود و پیغام Over range روی LCD نمایان می گردد.

نمودار زمان بندی ارسال و دریافت موج اولتراسونیک

 اطلاعات پروژه

 رمز فایل : www.electronics98.com

 محیط برنامه نویسی : Code Vision | BASCOM-AVR

 برنامه نویسی شده به زبان : C | BASIC

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 9 آگوست 2014

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

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

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

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