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

حسگر اولتراسونیک

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

قطعات مورد نیاز

:: میکروکنترلر ATmega8 | خرید

:: LCD کاراکتری 2*16 | خرید

:: یک عدد پتانسیومتر خوابیده 10 کیلو اهم | خرید

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

نقشه شماتیک ساخت فاصله سنج با ماژول حسگر اولتراسونیک و AVR

این مدار شامل یک میکروکنترلر ATmega8 یک LCD کاراکتری 2 در 16 و یک ماژول حسگر اولتراسونیک است. ماژول اولتراسونیک استفاده شده در این پروژه دارای چهار پایه است که دو پایه شماره 3 و 1 به ترتیب به VCC و GND متصل می شوند. پایه شماره 2 به پایه D6 میکروکنترلر AVR متصل می گردد و در صورت دریافت امواج صفر می شود. پایه شماره 4 نیز که به پایه B7 میکروکنترلر وصل است, برای فرستادن امواج فراصوت به کار می رود. مدار شماتیک راه اندازی این ماژول حسگر اولتراسونیک را در شکل زیر مشاهده می کنید.

توجه : در این پروژه جهت اندازه گیری فاصله از ماژوهای آماده اولتراسونیک استفاده شده که می توانید به راحتی آن ها را با قیمتی بسیار مناسب از فروشندگان قطعات الکترونیکی تهیه نمائید. این موضوع به این معنا می باشد که دیگر نیازی نیست تا مدار اضافی با هزینه زیاد برای تولید فرکانس جهت راه اندازی سنسورهای اولتراسونیک طراحی نمائید. همچنین به یاد داشته باشید از روش ارائه شده در این پروژه می توانید برای راه اندازی تمامی مدل های ماژول های اولتراسونیک توسط میکروکنترلر AVR استفاده کنید.

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

توجه : شماتیک ارائه شده در تصویر بالا مربوط به LCD برای برنامه نویسی میکروکنترلر در محیط نرم افزار BASCOM-AVR پیکربندی شده است. به منظور استفاده از این مدار برای نرم افزار Code Vision AVR, پایه ها را مطابق آنچه در محیط نرم افزار Code Wizard AVR نشان داده شده است, به ال سی دی lcd وصل کنید. همچنین از پایه d7 میکروکنترلر به جای پایه b7 استفاده نمایید.

برنامه در محیط Code Vision AVR

ابتدا با استفاده از محیط برنامه نویسی Code Wizard AVR تنظیمات نوع میکروکنترلر را (ATmega8) و فرکانس کاری آنرا (8MHz) در زبانه Chip انجام دهید و در زبانه LCD پورت B را به عنوان پورتی که ال سی دی کاراکتری به آن وصل می شود، انتخاب کنید. سپس در زبانه Timer1 تنظیمات را به صورت شکل زیر انجام دهید تا در حالت تایمر پیکربندی شود.

نحوه پیکربندی Timer 1 به صورت تایمر در محیط Code Wizard AVR

برنامه در محیط Bascom-AVR

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

ابتدا تایمر یک Timer1 را در حالت تایمر, پیکربندی و به صورتی تنظیم می نمائیم که تقریبا هر 30ms وقفه ای ایجاد کند. یک پایه را به عنوان خروجی و پایه دیگر را به عنوان ورودی تعیین می کنیم. خروجی میکروکنترلر را به فعالساز فرستنده فراصوت و ورودی آن را به خروجی مدار حسگر اولتراسونیک متصل می کنیم.

توجه : در مداری که این برنامه بر حسب آن نوشته شده است. خروجی مدار فراصوت هنگام دریافت امواج فراصوت صفر می شود. ممکن است این مقدار در موارد دیگر متفاوت باشد.

برای ارسال امواج فراصوت, پایه خروجی میکروکنترلر را حدود 30us میکرو ثانیه فعال می سازیم. سپس تایمر را فعال می کنیم تا اندازه گیری زمان از همان لحظه آغاز شود. تایمر باید تا صفر شدن ورودی میکروکنترلر فعال باشد. اگر زمان برگشت امواج فراصوت بیشتر از حدود 70ms میلی ثانیه شود, تایمر سرریز می گردد و با ایجاد وقفه, عبارت Fail روی ال سی دی LCD به نمایش در می آید. در غیر اینصورت صفر شدن ورودی میکروکنترلر, بدین معناست که امواج فراصوت دریافت شده اند و محتوای تایمر به نمایش در خواهد آمد. برای پیشگیری از تداخل ارسال امواج جدید با امواج قبلی, تاخیری 10ms میلی ثانیه ای بین دو ارسال ایجاد می گردد. سپس روند ارسال از ابتدا تکرار می شود و امواج فراصوت دوباره به مدت 30us میکرو ثانیه در محیط منتشر می گردند و تایمر از مقدار صفر شروع به کار می کند.

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

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

 حجم فایل : 118 کیلو بایت

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

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

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

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

8 دیدگاه

  1. تا چه فاصله ای رو اندازه میگیره

  2. بین دو الی سه متر

  3. سلام. در این قسمت برنامه بین دستور while
    while (PIND.6); نباید PIND.6=1بشه؟

  4. سلام دوست عزیز
    به هر دو شیوه نیز می توانید دستور را بنویسید.

  5. سلام و عرض ادب خدمت شما
    من داشتم سایتتون رو برسی میکردم که به این نتیجه رسیدم که همینجا ازتون تشکر کنم
    بابت چند مورد
    یکی اینکه اموزشاتون رایگانه
    اموزشای خیلی خوبی دارید
    عمده ی فعالیتتون توی عرصه های مهم برق مثل صنعتی و الکترونیک و تاسیساتی هستش
    پروژه هاتون رایگانه
    مثلا پی ال سی
    اردوینو
    ای وی ار
    سایتتون نرم افزار ها رو داره ( البته مهم هارو )
    در مجموع ممنونم از سایت خیلی خوبتون
    شاید این کامنت زیر پست مناسب نیست ولی گفتم همینجا ازتون تشکر کنم
    انشالله همیشه موفق و پیروز باشید
    دنیا به ادمای خیر خواهی مثل شماها زیاد نیاز داره .

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

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

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

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

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

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