در این مقاله ، ما فاصله سونار اولتراسونیک HC-SR04 را به آردوینو وصل خواهیم کرد.
ضروری است
- - آردوینو ؛
- - سنسور اولتراسونیک HC-SR04؛
- - اتصال سیم ها
دستورالعمل ها
مرحله 1
عملکرد فاصله سنج مافوق صوت HC-SR04 بر اساس اصل echolocation است. تکانه های صوتی را در فضا منتشر می کند و سیگنالی را از یک مانع منعکس می کند. فاصله تا جسم توسط زمان انتشار موج صوتی تا مانع و برگشت تعیین می شود.
موج صدا با اعمال یک پالس مثبت حداقل 10 میکروثانیه ای به پایه TRIG فاصله سنج تحریک می شود. به محض پایان پالس ، فاصله سنج انفجار پالس های صوتی با فرکانس 40 کیلو هرتز را به فضای مقابل خود منتقل می کند. در همان زمان ، الگوریتم تعیین زمان تاخیر سیگنال منعکس شده راه اندازی می شود و یک واحد منطقی در پایه ECHO فاصله سنج ظاهر می شود. به محض اینکه سنسور سیگنال منعکس شده را تشخیص می دهد ، یک منطق صفر روی پین ECHO ظاهر می شود. مدت زمان این سیگنال ("تاخیر اکو" در شکل) فاصله تا جسم را تعیین می کند.
محدوده اندازه گیری فاصله مسافت یاب HC-SR04 - تا 4 متر با وضوح 0.3 سانتی متر زاویه مشاهده - 30 درجه ، زاویه موثر - 15 درجه. مصرف فعلی در حالت آماده به کار 2 میلی آمپر است ، در حین کار - 15 میلی آمپر.
گام 2
منبع تغذیه فاصله سنج اولتراسونیک با ولتاژ +5 ولت انجام می شود. دو پایه دیگر به هر درگاه دیجیتال آردوینو متصل هستند ، ما به 11 و 12 متصل خواهیم شد.
مرحله 3
حال بیایید طرحی بنویسیم که فاصله مانع را مشخص کرده و آن را به درگاه سریال منتقل کند. ابتدا تعداد پین های TRIG و ECHO را تنظیم می کنیم - این پایه های 12 و 11 هستند. سپس ماشه را به عنوان خروجی و اکو را به عنوان ورودی اعلام می کنیم. ما پورت سریال را در 9600 باود مقدار دهی اولیه می کنیم. در هر تکرار حلقه () ، فاصله را می خوانیم و آن را به پورت می دهیم.
تابع () getEchoTiming یک پالس ماشه ایجاد می کند. این فقط یک جریان پالس 10 میکرو ثانیه ایجاد می کند ، که ماشه ای برای شروع تابش توسط فاصله سنج یک بسته صدا به فضا است. سپس او زمان شروع انتقال موج صدا تا رسیدن پژواک را به یاد می آورد.
تابع getDistance () فاصله تا جسم را محاسبه می کند. از دوره فیزیک مدرسه به یاد می آوریم که فاصله برابر است با سرعت ضرب در زمان: S = V * t. سرعت صدا در هوا 340 متر بر ثانیه است ، زمان در میکرو ثانیه که می دانیم "دواتو" است. برای به دست آوردن زمان در چند ثانیه ، بر 1.000.000 تقسیم کنید. از آنجا که صدا دو برابر مسافت را طی می کند - تا جسم و عقب - شما باید فاصله را به نصف تقسیم کنید. بنابراین به نظر می رسد که فاصله تا جسم S = 34000 سانتی متر در ثانیه * مدت زمان / 1.000.000 ثانیه / 2 = 1.7 سانتی متر در ثانیه / 100 ، که ما در طرح نوشتیم. میکروکنترلر ضرب را سریعتر از تقسیم انجام می دهد ، بنابراین من "/ 100" را با معادل "* 0 ، 01" جایگزین کردم.
مرحله 4
همچنین ، بسیاری از کتابخانه ها برای کار با یک دور یاب اولتراسونیک نوشته شده اند. به عنوان مثال ، این یکی: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. کتابخانه به روشی استاندارد نصب می شود: بارگیری ، از فهرست کتابخانه ها که در پوشه ای با Arduino IDE قرار دارد ، از حالت فشرده خارج شوید. پس از آن ، می توان از کتابخانه استفاده کرد.
پس از نصب کتابخانه ، بیایید یک طرح جدید بنویسیم. نتیجه کار آن یکسان است - مانیتور پورت سریال فاصله تا جسم را به سانتی متر نشان می دهد. اگر float dist_cm = ultrasonic. Ranging (INC) را در طرح بنویسید ، فاصله در اینچ نمایش داده می شود.
مرحله 5
بنابراین ، ما فاصله سنج اولتراسونیک HC-SR04 را به آردوینو متصل کردیم و داده ها را از آن به دو روش مختلف دریافت کردیم: استفاده از کتابخانه مخصوص و بدون آن.
مزیت استفاده از کتابخانه این است که میزان کد به میزان قابل توجهی کاهش می یابد و خوانایی برنامه نیز بهبود می یابد ، شما مجبور نیستید در پیچیدگی های دستگاه نفوذ کنید و می توانید بلافاصله از آن استفاده کنید. اما این نیز یک ضرر است: شما کمتر می دانید که دستگاه چگونه کار می کند و چه فرآیندهایی در آن انجام می شود. در هر صورت ، روش استفاده از شما بستگی دارد.