norr@manorshi.com         +86-519-89185720
1
مرکز خبر

چگونه از سنسور اولتراسونیک با آردوینو استفاده کنیم؟

بازدید: 164     نویسنده: گریس زمان انتشار: 2021-07-26 منبع: سایت

دکمه اشتراک گذاری فیس بوک
دکمه اشتراک گذاری توییتر
دکمه اشتراک گذاری خط
دکمه اشتراک گذاری ویچت
دکمه اشتراک گذاری لینکدین
دکمه اشتراک پینترست
دکمه اشتراک گذاری واتساپ
دکمه اشتراک گذاری kakao
دکمه اشتراک گذاری اسنپ چت
دکمه اشتراک گذاری تلگرام
این دکمه اشتراک گذاری را به اشتراک بگذارید

نحوه استفاده از سنسور اولتراسونیک با آردوینو: راهنمای HC-SR04

این سنسور اولتراسونیک HC-SR04 یکی از محبوب ترین ماژول های اندازه گیری فاصله برای پروژه های آردوینو است. این به طور گسترده ای در ربات های جلوگیری از موانع، حسگرهای پارک، تشخیص سطح، سطل زباله هوشمند، فاصله سنج و سایر برنامه های سنجش غیر تماسی استفاده می شود.

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

ماژول سنسور اولتراسونیک HC-SR04 برای اندازه گیری فاصله آردوینو

HC-SR04 پارامترهای فنی اصلی

پارامتر ارزش
ولتاژ کاری معمولی 5 ولت DC
جریان کار استاتیک کمتر از 5 میلی آمپر در برخی از نسخه های ماژول
فرکانس کاری موج اولتراسونیک 40 کیلوهرتز
فاصله تشخیص محدوده معمول: 2 سانتی متر تا 400 سانتی متر؛ برخی از نسخه‌های تنظیم‌شده با بهره ممکن است از برد بلندتری پشتیبانی کنند.
زاویه تشخیص معمولا در 15 درجه؛ برخی از نسخه های با بهره بالاتر ممکن است به حدود 30 درجه برسند.
دقت تا حدود 0.3 سانتی متر در شرایط آزمایش مناسب
منطقه کور حداقل فاصله اندازه گیری حدود 2 سانتی متر

توضیحات پین HC-SR04

ماژول اولتراسونیک HC-SR04 دارای چهار پایه است: VCC، TRIG، ECHO و GND. آردوینو یک پالس تریگر کوتاه به پین ​​TRIG می فرستد، سپس پالس برگشتی را از پایه ECHO می خواند.

پین HC-SR04 اتصال آردوینو تابع
VCC 5 ولت منبع تغذیه برای ماژول اولتراسونیک.
TRIG پین دیجیتال 9 ورودی ماشه. آردوینو یک پالس 10 us را برای شروع محدوده اعمال می کند.
ECHO پین دیجیتال 10 خروجی اکو آردوینو عرض پالس را برای محاسبه فاصله می خواند.
GND GND اتصال زمینی

سنسور اولتراسونیک HC-SR04 پینوت VCC TRIG ECHO GND

اصل کار سنسور اولتراسونیک HC-SR04

HC-SR04 با اندازه گیری زمان پرواز کار می کند. آردوینو یک سیگنال ماشه سطح بالا حداقل 10 میکروثانیه را به پین ​​TRIG ارسال می کند. سپس ماژول به طور خودکار هشت پالس اولتراسونیک با فرکانس 40 کیلوهرتز ارسال می کند و منتظر پژواک منعکس شده می ماند.

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

فاصله = زمان اکو در سطح بالا × سرعت صدا / 2

در کد آردوینو، فرمول ساده شده رایج به صورت زیر است:

فاصله بر حسب سانتی متر = مدت زمان × 0.0343 / 2

اصل کار ماژول اولتراسونیک HC-SR04 زمان پرواز

نمودار زمان بندی ماژول اولتراسونیک HC-SR04

فرآیند زمان‌بندی ساده است: آردوینو TRIG را برای مدت کوتاهی پایین نگه می‌دارد، یک پالس بالای 10 us ارسال می‌کند، سپس TRIG را به پایین برمی‌گرداند. HC-SR04 یک انفجار اولتراسونیک را ارسال می کند و ECHO را تا زمانی که سیگنال بازتاب شده برگردد یا زمان اندازه گیری تمام شود، بالا می گذارد.

برای جلوگیری از خوانش های ناپایدار، یک تاخیر کوتاه بین اندازه گیری ها بگذارید. معمولاً از یک چرخه اندازه‌گیری حدود 60 میلی‌ثانیه استفاده می‌شود، بنابراین اکو اولتراسونیک قبلی زمان دارد تا قبل از ماشه بعدی ناپدید شود.

مبانی برنامه نویسی آردوینو: pulseIn Function

تابع Arduino pulseIn () برای اندازه‌گیری مدت زمانی که پین ​​دیجیتال HIGH یا LOW باقی می‌ماند استفاده می‌شود. برای HC-SR04، آردوینو از pulseIn(echoPin، HIGH) برای خواندن عرض پالس سطح بالا از پین ECHO استفاده می کند.

نحو معنی
pulseIn (پین، مقدار) مدت زمان یک پالس HIGH یا LOW را می خواند.
pulseIn (پین، مقدار، مهلت زمانی) پالس را با مقدار بازه زمانی در میکروثانیه می خواند.

استفاده از تایم اوت توصیه می شود. اگر هیچ اکو برگردانده نشد، تابع می تواند به جای مسدود کردن برنامه برای مدت طولانی، انتظار را متوقف کند و 0 را برگرداند.

برد آردوینو با سنسور فاصله اولتراسونیک HC-SR04 استفاده می شود

نحوه اتصال سنسور اولتراسونیک HC-SR04 به آردوینو

سیم کشی ساده است. VCC را به 5 ولت، GND را به GND، TRIG را به پایه خروجی دیجیتال آردوینو و ECHO را به پایه ورودی دیجیتال آردوینو وصل کنید. مثال زیر از Arduino Uno، TRIG در پایه 9 و ECHO در پایه 10 استفاده می کند.

نمودار سیم کشی برد برد آردوینو Uno برای سنسور اولتراسونیک HC-SR04

سنسور التراسونیک HC-SR04 کد آردوینو

برنامه معمولی آردوینو زیر یک پالس ماشه 10 us ارسال می کند، عرض پالس ECHO را می خواند، فاصله را بر حسب سانتی متر محاسبه می کند و نتیجه را در مانیتور سریال چاپ می کند.

const int trigPin = 9; const int echoPin = 10; مدت طولانی؛ فاصله شناورCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode (echoPin، INPUT)؛   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicroseconds(2);   digitalWrite (trigPin، HIGH);   delayMicroseconds (10);   digitalWrite (trigPin، LOW)؛   مدت زمان = pulseIn (echoPin، HIGH، 30000)؛   if (دوره == 0) { Serial.println('خارج از محدوده');   } else { distanceCm = duration * 0.0343 / 2;     Serial.print('Distance: ');     Serial.print(distanceCm);     Serial.println('cm');   } تاخیر(60); }

اگر مقادیر فاصله را در مانیتور سریال مشاهده کردید، حسگر اولتراسونیک HC-SR04 و سیم کشی آردوینو به درستی کار می کنند. سپس می‌توانید از داده‌های فاصله برای تشخیص موانع، کنترل حرکت ربات، درب‌های خودکار، یادآورهای پارکینگ یا پروژه‌های سطح مایع استفاده کنید.

برنامه محدوده سنسور اولتراسونیک آردوینو HC-SR04

چگونه می توان دقت اندازه گیری HC-SR04 را بهبود بخشید

  • جسم اندازه گیری شده را در محدوده فاصله توصیه شده و خارج از ناحیه کور 2 سانتی متری نگه دارید.

  • برای انعکاس بهتر اولتراسونیک از یک سطح هدف صاف و جامد استفاده کنید.

  • از اندازه گیری مواد نرم، زاویه دار، متخلخل یا جاذب صدا خودداری کنید.

  • از منبع تغذیه 5 ولت پایدار استفاده کنید و سیم کشی را کوتاه و ایمن نگه دارید.

  • یک بازه زمانی به pulseIn() اضافه کنید تا از مسدود شدن طولانی در صورت عدم بازگشت اکو جلوگیری کنید.

  • برای کاهش نویز، چندین قرائت را به طور متوسط ​​یا میانه فیلتر کنید.

  • برای دقت بیشتر، دما را جبران کنید زیرا سرعت صدا با دمای هوا تغییر می کند.

کاربردهای متداول پروژه های سنسور آلتراسونیک آردوینو

برنامه نحوه استفاده از HC-SR04
ربات جلوگیری از موانع اشیاء نزدیک را تشخیص می دهد و به ربات کمک می کند تا جهت خود را تغییر دهد.
سنسور فاصله پارکینگ فاصله بین وسیله نقلیه و مانع را اندازه گیری می کند.
تشخیص سطح مایع فاصله سنسور تا سطح مایع را بدون تماس اندازه گیری می کند.
سطل زباله هوشمند دست یا شیء نزدیک را تشخیص می دهد و باعث باز شدن خودکار درب می شود.

خلاصه

برای استفاده از حسگر اولتراسونیک HC-SR04 با آردوینو، VCC را به 5 ولت، GND را به GND، TRIG را به پایه خروجی دیجیتال و ECHO را به پایه ورودی دیجیتال وصل کنید. یک پالس تریگر 10 us ارسال کنید، مدت زمان اکو را با pulseIn() بخوانید و فاصله را با فرمول زمان پرواز محاسبه کنید.

HC-SR04 ارزان، استفاده آسان و مناسب برای بسیاری از پروژه های اندازه گیری فاصله آردوینو است. برای بهترین نتیجه، به سطح هدف، زاویه اندازه گیری، ناحیه کور، توان پایدار، کنترل زمان و اثرات دما توجه کنید.

سوالات متداول درباره سنسور آلتراسونیک آردوینو HC-SR04

حسگر اولتراسونیک HC-SR04 چگونه با آردوینو کار می کند؟

آردوینو یک پالس 10 us را به پین ​​TRIG می فرستد. HC-SR04 هشت پالس اولتراسونیک با فرکانس 40 کیلوهرتز ساطع می کند و پایه ECHO را تا زمانی که صدای منعکس شده برگردد بالا قرار می دهد. آردوینو این زمان پالس را اندازه گیری می کند و فاصله را محاسبه می کند.

فرمول فاصله برای پروژه های HC-SR04 آردوینو چیست؟

فرمول فاصله = مدت زمان × سرعت صدا / 2 است. در سانتی متر، یک فرمول رایج آردوینو فاصلهCm = مدت زمان × 0.0343 / 2 است که مدت زمان بر حسب میکروثانیه اندازه گیری می شود.

چرا نتیجه سنسور اولتراسونیک را بر 2 تقسیم می کنیم؟

زمان پژواک اندازه گیری شده زمان رفت و برگشت از سنسور به جسم و بازگشت به سنسور است. تقسیم بر 2 فاصله یک طرفه بین سنسور و جسم را نشان می دهد.

از کدام پین های آردوینو برای TRIG و ECHO استفاده کنم؟

شما می توانید از اکثر پین های دیجیتال آردوینو استفاده کنید. در بسیاری از نمونه ها، TRIG به پین ​​دیجیتال 9 و ECHO به پین ​​دیجیتال 10 متصل می شود. کد باید با پین های استفاده شده در سیم کشی شما مطابقت داشته باشد.

چرا سنسور اولتراسونیک HC-SR04 من مقادیر صفر یا تصادفی را برمی گرداند؟

علل رایج عبارتند از: سیم‌کشی شل، برق 5 ولت ناپایدار، شماره‌های پین TRIG یا ECHO اشتباه، نداشتن شی در محدوده، سطوح هدف زاویه‌دار، مواد نرم، سرهای سنسور مسدود شده، یا عدم وجود مهلت زمانی در عملکرد pulseIn() است.

ناحیه کور سنسور اولتراسونیک HC-SR04 چیست؟

منطقه کور حداقل فاصله ای است که ماژول نمی تواند به طور قابل اعتماد اندازه گیری کند. برای HC-SR04، ناحیه کور معمولاً حدود 2 سانتی متر است. اجسام نزدیک تر از این ممکن است خوانش های ناپایدار ایجاد کنند.

آیا HC-SR04 می تواند سطح آب را با آردوینو اندازه گیری کند؟

بله، اگر سنسور از رطوبت محافظت شده و بالای سطح مایع نصب شده باشد، می توان از HC-SR04 برای پروژه های ساده سطح آب بدون تماس استفاده کرد. برای مخازن مرطوب، فضای باز یا صنعتی، سنسور اولتراسونیک ضد آب توصیه می شود.

چگونه می توانم خوانش سنسور اولتراسونیک آردوینو را پایدارتر کنم؟

از یک منبع تغذیه پایدار استفاده کنید، سنسور را عمود بر هدف نگه دارید، از سطوح نرم یا زاویه دار اجتناب کنید، زمان pulseIn را اضافه کنید، چندین بار قرائت کنید، از فیلتر میانه استفاده کنید و بین اندازه گیری ها حدود 60 میلی ثانیه فاصله بگذارید.

فهرست مطالب