آموزش آردوینوپروژه های آردوینو

اتصال سنسور التراسونیک به آردوینو (آموزش جامع)

در آموزش پیش رو، اتصال سنسور اولتراسونیک به آردوینو برای اندازه گیری فاصله و نمایش آن در سریال مانیتور را بررسی خواهیم کرد. درابتدا نحوه اتصال سنسور اولتراسونیک را توضیح داده و در انتها، نمایشگر LCD I2C را نیز به پروژه اضافه میکنیم.

قطعات لازم راه اندازی التراسونیک

  1. برد آردوینو (مثل آردوینو Uno)
  2. سنسور اولتراسونیک HC-SR04
  3. نمایشگر LCD I2C (مثل 2*16 کاراکتری)
  4. سیم های جامپر
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

در آموزش های قبلی، از سنسور اولتراسونیک HC-SR04 و آردوینو، رزبری پای و میکروکنترلر PIC برای ساخت پروژه های جذاب دیگری استفاده کرده ایم که بعضی از آن ها را در زیر میبینید.

معرفی سنسور اولتراسونیک HC-SR04

این سنسور 4 پایه دارد : VCC،Trig ،Echo و GND

معرفی سنسور اولتراسونیک HC-SR04

  • VCC: پایه تغذیه ماژول HC-SR04 است.
  • GND: پایه زمین ماژول است.
  • Trig: پایه تریگر (ارسال موج) ماژول HC-SR04 است.
  • Echo: پایه اکو یا پژواک ماژول سنسور HC-SR04 است.

جزئیات سنسور اولتراسونیک

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

نحوه کار سنسور اولتراسونیک

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

این امواج از اشیا موجود در مسیر منعکس شده، توسط گیرنده اولتراسونیک شناسایی میشوند. دو تراشه یا آی سی LM324 موجود در سمت چپ، این پالس اولتراسونیک را به سیگنال الکتریکی تبدیل کرده و به پایه های echo میفرستند. گیرنده، امواج انعکاسی را به سیگنال های الکتریکی تبدیل میکند.

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

Speed= Distance x Time

میدانیم که سرعت صوت، 343.2 متر بر ثانیه است. برای محاسبه فاصله، ابتدا باید سرعت صوت را به سانتی متر بر میکروثانیه تبدیل کنیم که معادل 0.03432 سانتی متر بر میکروثانیه میشود. همچنین مدت زمان که 500 میکروثانیه است را هم از سنسور اولتراسونیک دریافت کرده ایم.

Distance= (0.03432 cm/us x 700uS) / 2 = 8.58 cm

از این رو، محاسبه کردیم که فاصله جسم تا سنسور 8.58 سانتی متر است.

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

1-محدوده ماکزیمم سنسور اولتراسونیک چقدر است؟

محدوده ماکزیمم سنسور اولتراسونیک میتواند با توجه به مدل و طراحی آن تغییر کند اما محدوده معمول برای سنسورهای استاندارد بین 2 سانتی متر(0.79 اینچ) تا چندین متر (ده ها اینچ) است. سنسورهای تخصصی میتوانند برای کاربردهای خاص محدوده بزرگتری هم داشته باشند.

2-آیا سنسورهای التراسونیک تحت تاثیر شرایط محیطی قرار میگیرند؟

بله، سنسورهای اولتراسونیک میتوانند تحت تاثیر عوامل محیطی مانند دما، رطوبت یا فشارهوا قرار گیرند. تغییرات در هرکدام از این موارد، میتواند باعث تغییر سرعت صوت شود و درستی اندازه گیری فاصله را تحت تاثیر قرار دهد.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

3-آیا سنسورهای التراسونیک قادر به شناسایی چندین جسم به طور همزمان هستند؟

بله، سنسورهای اولتراسونیک میتوانند چندین شی را تا جایی که این اجسام در محدوده شناسایی سنسور باشند، شناسایی کنند. هرچند ممکن است به دلیل نزدیکی اجسام به هم ودرنتیجه هم پوشانی پژواک هایشان، در تفکیک و جداسازی آن ها دچار مشکل شود و به سختی بیفتد.

مدار اتصال آردوینو و سنسور اولتراسونیک

مدار اتصال آردوینو و سنسور اولتراسونیک

برای اتصال سنسور و آردوینو، پایه TRIG ( تریگر) سنسور را به پایه 4 آردوینو متصل کنید. هم چنین باید پایه ECHO سنسور به پایه 5 آردوینو، VCC سنسور به 5V آردوینو و پایه زمین (GND) سنسور به GND آردوینو متصل شود.

کد آردوینو برای اتصال سنسور اولتراسونیک به آردوینو

در این قسمت، کد را به طور کامل و خط به خط برایتان توضیح میدهیم. میتوانید کد کامل را در انتهای این مطلب مشاهده کنید.

const int trigPin = 4;
const int echoPin = 5;

در این خط ها، 2 ثابت trigPin و echoPin را برای مشخص کردن اینکه کدام پایه های آردوینو به پایه های trigger  و echo متصل شده اند، تعریف میکنیم. (یعنی پایه 4 به trigger و پایه 5 به echo  متصل است.)

long duration;
int distance;

دو متغیر یکی duration از نوع long  و دیگری distance از نوع int تعریف میکنیم. ار این متغیرها برای ذخیره کردن به ترتیب طول پالس پژواک یا اکو و فاصله محاسبه شده استفاده میکنیم.

void setup() {
  Serial.begin(9600);

در تابع ()setup با آردوینو، ارتباط سریال را با نرخ باد 9600 بیت در ثانیه آغاز میکنیم. و از طریق آن با سریال مانیتور روی صفحه کامپیوتر ارتباط برقرار کرده و فاصله های اندازه گیری شده را میبینیم.

pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

در اینجا، trigPin را به عنوان خروجی و echoPin را به عنوان ورودی پیکربندی میکنیم. این پیکربندی برای کنترل سنسور اولتراسونیک ضروری است. پایه تریگر(TRIG) سیگنال را ارسال میکند (پس خروجی است) درحالیکه پایه اکو (ECHO) سیگنال های بازگشتی را دریافت میکند. ( پس ورودی است)

void loop() {
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

درون تابع ()loop، این خط ها اندازه گیری را از سنسور آغاز میکنند. ابتدا پایه تریگر (TRIG)، روی حالت LOW تنظیم میشود و برای مدت کوتاهی در این حالت باقی میماند تا تابع ()delayMicroseconds سیگنال تریگر تمیز را تضمین کند. سپس 10 میکرو ثانیه به حالت HIGH رفته و دوباره به حالت LOW برمیگردد. با وجود این ترتیب درعملکرد، سنسوراولتراسونیک را برای ارسال یک پالس التراسونیک تحریک میکنیم.

 duration = pulseIn(echoPin, HIGH);

در این خط از تابع ()pulsen برای اندازه گیری طول پالس دریافتی از پایه اکو (ECHO) بر حسب میکروثانیه استقاده میکنیم.به این صورت که، از زمانی که پایه ECHO به حالت HIGH میرود، تا زمانی که  دوباره به  LOW برسد صبر میکند و فاصله زمانی این دو اتفاق را اندازه گیری میکند.

 distance = duration * 0.034 / 2;

کد دراین قسمت، فاصله را براساس طول پالس اکو محاسبه میکند. فرمول استفاده شده در اینجا، براساس سرعت صوت درهوا ( تقریبا 0.034 سانتی متر بر میکروثانیه) است. هم چنین باید درنظر داشته باشیم که پالس به سمت جسم رفته و برمیگردد. پس باید کل مسیر طی شده که همان مسیر رفت و برگشت با هم هست را بر 2 تقسیم کنیم تا فاصله یک مسیر به دست آید.

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

این خط ها، فاصله محاسبه شده را بعد از عبارت “Distance is: “  که یک عبارت توصیفی برای اعداد تولید شده است، در سریال مانیتور نشان خواهند داد. هم چنین بعد از هر عدد محاسبه شده، cm هم برای نشان دادن واحد اندازه گیری نوشته میشود.

 delay(1000);

در نهایت یک تاخیر 1000 میلی ثانیه ای ( 1 ثانیه)، سرعت اندازه گیری فاصله را کنترل میکند. میتوان مقدار این تاخیر را برای تغییر فرکانس اندازه گیری مطابق با نیازمان تنظیم کنیم.

مدار اتصال التراسونیک به آردوینو و LCD

مدار اتصال التراسونیک به آردوینو و LCD

مطابق آنچه گفته شد، سنسور و آردوینو را به هم متصل کنید. ( پایه TRIG به پایه 4 و پایه ECHO به پایه 5 آردوینو)

و برای اتصال نمایشگر LCD I2C به آردوینو پایه SDA را به پایه A4 آردوینو، SCL را به پایه A5 آردوینو، VCC را به 5V و GND را به GND متصل کنید.

باید کتابخانه LCD I2C را نصب کنید. برای این منظور میتوانید از کتابخانه LiquidCrystal I2C استفاده کنید. آن را از Arduino Library Manager هم میتوانید نصب کنید.

کتابخانه LiquidCrystal I2C

کد کامل اتصال آردوینو، سنسور التراسونیک و LCD در پایین موجود است که میتوانید آن را کپی پیست کرده و روی آردوینو خود آپلود کنید.

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

موارد موجود در فایل : سورس کامل

4.7 (6 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *