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

همان طور که می دانید این ماژول یک فاصله یاب آلتراسونیک است .من در اینجا می خواهم که طریقه راه اندازی این سنسور را در حالت مود یک آن که به صورت ورودی و خروجی جداگانه است توضیح دهم . و یک کد برنامه به زبان بیسیک برای آن بنویسم که بتوان آن را به راحتی با میکرو کنترلر های AVR راه اندازی کرد .
ابتدا باید بگویم که این ماژول با توجه به دیتاشیت آن دارای 10 پایه است که 5 تای آن مربوط به برنامه ریزی کارخانه ساخت آن است و 5 تای دیگر برای اتصال به میکرو کنترلر ها تعبیه شده است(سمت چپ تصویر) که در حالت مود یک آن 4 تا از این 5 پایه مورد استفاده قرار می گیرند و یکی از آن ها مدار باز است که دو تا از آن ها برای تغذیه 5 ولتی و دو تای دیگر برای دریافت پالس تریگر و تولید پالس اکو به کار می روند.و در مد دو سه تا از پایه ها استفاده می شود که دوتا برای تغذیه سنسور و یکی برای ارسال و دریافت پالس تریگر و تولید پالس اکو استفاده می شود.در شکل زیر سمت چپ پایه های سنسور را در حالت مود دو نشان میدهد.در این مد تنها یک پایه از میکرو کنترلر برای ارسال و دریافت به سنسور استفاده می شود.

در برنامه زیر از مد دو سنسور برای تشخیص فاصله استفاده شده است.
regfile = "m32def.dat"$
$crystal = 8000000
Dim Zeitmessung As Word
Dim Entfernung As Word
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portc.7 , Rs = Portc.6
Config Lcd = 16 * 2
Config Pina.2 = Output
Do
Porta.2 = 0 'Port Low
Pulseout Porta , 3 , 40 'Min. 10uS Impuls senden
Pulsein Zeitmessung , Pina , 3 , 1
Zeitmessung = Zeitmessung * 10 'mal 10 da Pulsein in 10uS Einheiten Ergebnis ermittelt
Entfernung = Zeitmessung / 58
Home
Lcd "Entfernung: " ; Entfernung
Waitms 50
Loop
End 'end program
:: بازدید از این مطلب : 11061
|
امتیاز مطلب : 11
|
تعداد امتیازدهندگان : 3
|
مجموع امتیاز : 3