بنام خدا
با سلام ادامه مبحث..

که در تصویر بالا می ببینید آزمایشی با ماژول انجام داده ام و یک فاصله 30 سانتی را با خط کش(30 سانتی) و ماژول اندازه گرفته ام . همانجور که می بینید دقت ماژول خوب می باشد
معرفی کدها و شبیه ساز مدار:نقشه مدار :
همانطور که می ببینید مدار بسیار ساده می باشد .
PORTD.2 (
که این پایه ،اینتراپت و یا همان وقفه 0 میکروکنترولر هم می باشد)به پایه
ECHO ماژول وصل شده (
پایه ی که سیگنال برگشتی را برای میکرو می فرستد) . و پایه
PORTD.3 که به
TRIG ماژول وصل شده (پ
ایه که ما بدید برایش یک سیگنال بفرستیم تا ماژول شروع به کار کند)
همانطور که می ببینید، برای راحتی کار و جنبه آموزشی بهتره. میزان فاصله با اجسام، به میلی متر و سانتی متر و متر بر روی LCD نمایش داده میشود.
اما کدها.ما باید محاسبه زمان دقیقی انجام دهیم تا بتوانیم فاصله تا جسم را با دقت بالا اندازه بگیریم برای این منظور از تایمر 1 استفاده می کنیم
تایمر 1 راه اندازی می کنیم
Please Login or Register to see this codeدر برنامه ما باید از وقفه صفر استفاده کنیم،تا به محض دریافت سیگنال اکو، متوجه بشویم و بعد به کمک تایمر 1 شروع به شمارش کنیم ،
پس وقفه 0 را فعال و ان را در وضعیت any change قرار می دهیم(در این وضعیت، هر تغییر صورت بگیرد، وقفه فعال می شود،یعنی اگر پایه 0 باشد،یک دفعه 1 شود،یک وقفه صورت می گیرد و اگر باز دوباره 0 شود یک وقفه دیگر صورت می گیرد و ...)
Please Login or Register to see this codeما باید برای فعال سازی ماژول ،کار زیر را انجام دهیم.
Please Login or Register to see this codeسپس باید منتظر باشیم،تا ماژول سیگنال اکو را برای ما ارسال کند! و ما شروع به محاسبه به کمک تایمر 1 کنیم. برای همین منظور باید کاری کنیم،که میکرو صبر کند،برای همین ان را در یک حلقه قرار می دهیم
Please Login or Register to see this codeحال به محض فعال سازی وقفه اتفاق زیر می افتد:(یا دریافت سینگال اکو)
Please Login or Register to see this codeدر ابتدا که وقفه فعال میشود و پایه 1 میشود،تایمر 1 ، صفر میشود،تا شمارش صحیح و بدرستی اغاز شود و در انتها وقتی سیگنال اکو قطع شد و وقفه فعال شد،اخرین شمارش به درون متغیر tim ریخته میشود و سپس شرط حله نقض میشود. و ما با یک فرمول ساده،میزان فاصله تا جسم را بدست می اوریم
فرمول محاسبه.فاصله جسم در کمترین میزان و بیشتر میزان در ماژول(بر اساس زمان طی شده)، بین 100 میکروثانیه تا 25 میلی ثانیه می باشد(می توانید در تصور اخر پست قبلی ببینید) . حال ما با تقسیم کردن این زمان ، بر عدد
58 ، می توانیم فاصله ان را با (سانتی متر) بدست آوریم (برای میلی متر باید
58 را ضربدر 10 کنیم و برای متر تقسیم بر 100 کنیم)
به عنوان مثال ، اگر فاصله جسمی تا ماژول 15 میلی ثانیه (که میشود 15000 میکرو ثانیه) شود ، اگر آن را تقسیم بر 58 کنیم: 258 سانتی متر ، یا 2.58 متر می شود
کل کدهایی برنامه:Please Login or Register to see this code[External Link Removed for Guests]شبیه ساز و برنامه (
برای نمایشگر LCD)
[External Link Removed for Guests]شبیه ساز و برنامه(
برای USART)
باتشکر.