در این پروژه قصد داریم به کمک سنسور اولتراسونیک یک فاصله سنج طراحی کنیم. می توان با استفاده از این سنسور یک موج فراصوت ارسال و دریافت کرد. از آنجایی که سرعت صوت در هوا ثابت است، با محاسبه اختلاف زمان ارسال و دریافت می توان فاصله سنسور تا یک جسم را حساب کرد. در ادامه با ما همراه باشید.
قطعههای مورد نیاز
- میکروکنترلر Arduino Uno
- ماژول اولتراسونیک
- سیم جامپر
- بردبرد (خرید برد بورد)
- Adrafruit LCD
آموزش بستن مدار ماژول اولتراسونیک و آردوینو
ماژول اولتراسونیک دارای 4 پایه است. نام هر پایه در کنار آن نوشته شده است. در شکل زیر، میزان دقت سنسور، زاویه ارسال و تشخیص، جریان گذرنده از سنسور و محدوده تشخیص آن ذکر شده است.
دو پایه VCC و GND ماژول را به پین های 5v و GND آردوینو و پایههای Trig و Echo را به دو پین 2 و 3 دیجیتال آردوینو وصل کنید. پایه Trig ورودی ماژول است و فرمان ارسال موج اولتراسونیک به آن وارد میشود. پایه Echo خروجی ماژول است و به موج دریافتی از محیط حساس است.
آموزش کدنویسی آردوینو برای ماژول اولتراسونیک
در این برنامه می خواهیم با فعال کردن پین trig به مدت 10 میکرو ثانیه و دریافت موج توسط echo، مدت زمان رفت و برگشت موج را محاسبه کنیم و مقدار آن را روی سریال مانیتور نشان دهیم.
۱. ابتدا پین های 2 و3 را به ترتیب trig و echo در نظر می گیریم. سپس پین trig را به عنوان خروجی و پین echo را به عنوان ورودی در نظر می گیریم. نرخ ارسال داده (Baudrate) روی پورت سریال را مشخص می کنیم.
۲. ابتدا پین trig را LOW می کنیم تا وضعیت این پین را ریست کند. پس از 2 میکروثانیه این پین را HIGH می کنیم و به مدت 10 میکروثانیه روشن است، سپس آن را خاموش می کنیم و با تابع pulseIn مقدار زمان رفت و برگشت را داخل متغیر duration قرار می دهیم. برای کاربرد های ساده، سرعت صوت در هوا را مقدار ثابتی در حدود 334 m/s در نظر میگیریم و از طریق فرمول زیر مقدار فاصله را بر حسب سانتی متر محاسبه می کنیم:
distance = duration*0.034/2
سپس با استفاده از ارتباط سریال، مقدار فاصله را روی سریال مانیتور نشان می دهیم. برای این کار کد های زیر را وارد می کنیم:
Serial.print(“Distance: “);
Serial.print(distance);
Serial.println(” cm”);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#define trig 2 #define echo 3 void setup() { Serial.begin(9600); pinMode(trig, OUTPUT); pinMode(echo, INPUT); } void loop() { digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig, HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); float time = pulseIn(echo, HIGH); float velocity = 334; float distance = ((time / 2) * velocity) * 0.0001; // conversion to cm if (distance >= 2 && distance <= 400) { Serial.print("Distance= "); Serial.println(distance); } else { Serial.println("Out of range"); } delay(1000); } |
امتحان کردن ماژول با کمک آردوینو
برای دیدن خروجی سنسور طبق مسیر زیر وارد سریال مانیتور شوید:
Tools>Serial Monitor
شکل (3): مسیر باز کردن سریال مانیتور
در شکل زیر خروجی سریال مانیتور را مشاهده می کنید. دو کد Serial.print() به ما کمک کردند که عبارت های distance و cm را در سریال مانیتور نمایش دهیم. سرعت ارسال اطلاعات به میزان مجموع delay ها بستگی دارد که 12 میکروثانیه است.
نکته: دقت داشته باشید که میزان Baudrate تعریف شده توسط Serial.begin() در تابع setup() با مقدار Baudrate تعیین شده در سریال مانیتور یکی باشد.
تبریک میگوییم! ماژول اولتراسونیک شما راه اندازی شده و میتوانید در پروژههای فاصله سنجی از آن استفاده کنید!
کدام مدل ماژول اولتراسونیک برای این پروژه مناسب است؟
اگر نگاهی به محصولات اولتراسونیک در بازار بیاندازید، چندین نوع سنسور پیدا میکنید. نمونههایی مانند HC-SR04 ، HC-SR05 ، SRF06 ، US-100 و JSN-SRF04T نحوه کارکرد این سنسورها تقریبا یکسان است و تفاوت آنها عمدتا به میزان دقت، محدوده کاری، ضد آب بودن و غیره مربوط میشود. پرکاربردترین سنسور اولتراسونیک ماژول HC-SR04 است که یک سنسور ارزان قیمت و با دقت مناسب است. محدوده کاری این سنسور 2 – 4 cm و دقت کاری آن 0.5cm است.
برای مشاهده مدلهای بیشتر میتوانید به بخش خرید ماژولهای اولتراسونیک در فروشگاه جم ترونیک مراجعه کنید.
جمعبندی
با استفاده از سنسور اولتراسونیک توانستیم فاصله سنسور تا یک جسم را محاسبه کنیم و مقدار آن را از روی سریال مانیتور بخوانیم. مقدار خوانده شده توسط سنسور را می توان روی یک LCD نمایش داد. از این سنسور می توان برای محاسبه ارتفاع در بسیاری از پروژه ها استفاده کرد. درصورتی می خواهید دقت بالاتری داشته باشید می توانید با استفاده از سنسور دما و رطوبت، پارامتر های دیگری که در سنجش آن تأثیر دارند را بررسی کنید و با لحاظ کردن آن، فاصله را بسنجید. برای شناخت بیشتر ماژولهای اولتراسونیک میتوانید پست ماژول اولتراسونیک چیست؟ را بخوانید.