آموزش راه اندازی سنسور فاصله سنج التراسونیک US-100 با آردوینو

ویژگی های سنسور فاصله سنج التراسونیک US-100

US-100 یک ماژول فرستنده و گیرنده ی امواج التراسونیک (فراصوت) است که برای اندازه گیری فاصله استفاده می شود. عملکرد این سنسور بسیار ساده است. برای اندازه گیری فاصله کافیست زمان رفت و برگشت امواج فراصوت اندازه گیری شود، سپس این زمان تقسیم بر 2 شده و در سرعت صوت ضرب شود. محدوده اندازه گیری این سنسور 2 تا 450 سانتی متر است.
نکته

ماژول US-100 دارای 2 راه ارتباطی مختلف است.

راه اول: استفاده از ارتباط سریال

راه دوم: استفاده از Trigger و Echo (مشابه ماژول های SRF04 و SRF05)

اگر جامپر پشت برد وصل باشد، ارتباط به صورت سریال، و در غیر این صورت، ارتباط با ماژول به روش دوم فعال است.

دیتاشیت سنسور US-100 را می توانید از اینجا دانلود کنید.

معرفی پایه ها (Pinout) سنسور فاصله سنج التراسونیک US-100

ماژول سنسور US-100 دارای 5 پایه است. پایه های کاربردی این ماژول به شرح زیر است:

  •  5V: تغذیه ماژول – 3.3 تا 5 ولت
  •  GND: زمین
  •  Trig/Tx: به این پایه باید یک پالس 10 میکرو ثانیه بدهید تا فرستنده امواج التراسونیک شروع به کار کند. همچنین از این پایه می توان به عنوان فرستنده (RX) در ارتباط سریال استفاده کرد.
  •  Echo/Rx: زمان رفت و برگشت امواج را به صورت پالس نشان می دهد. همچنین از این پایه می توان به عنوان گیرنده (RX) در ارتباط سریال استفاده کرد.

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

آردوینو UNO R3 × 1
ماژول فاصله یاب التراسونیک ، سنسور مسافت US-100 × 1
سیم جامپر نری به مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی سنسور فاصله سنج التراسونیک US-100 با آردوینو

گام اول: سیم بندی

اگر می خواهید از ارتباط سریال استفاده کنید، ماژول را به صورت زیر به آردوینو وصل کنید.
اگر می خواهید از پایه های Trigger و Echo استفاده کنید، ماژول را به صورت زیر به آردوینو وصل کنید.

گام دوم: کد راه اندازی با ارتباط سریال

کد زیر را روی برد آردوینو آپلود کنید. این کد، نتایج خوانده شده از سنسور را در پنجره ی سریال نمایش می دهد.
/*
  US-100 Ultrasonic Sensor - Serial Mode
  modified on 26 Sep 2020
  by Mohammad Reza Akbari @ Electropeak
  Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=yWhzRnR53i" data-secret="yWhzRnR53i" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
*/

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 2);

unsigned int HighByte = 0;
unsigned int LowByte  = 0;
unsigned int Len  = 0;

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

void loop() {
  mySerial.flush();
  mySerial.write(0X55);                           // trig US-100 begin to measure the distance
  delay(500);                                  
  if (mySerial.available() >= 2)                  // check receive 2 bytes correctly
  {
    HighByte = mySerial.read();
    LowByte  = mySerial.read();
    Len  = HighByte * 256 + LowByte;          // Calculate the distance
    if ((Len > 1) && (Len < 10000))
    {
      Serial.print("Distance: ");
      Serial.print(Len, DEC);          
      Serial.println("mm");                  
    }
  }
  delay(300);                                    
} 
Arduino
خروجی کد به شکل زیر است.

گام سوم: کد راه اندازی با Trigger و Echo

کد زیر را روی برد آردوینو آپلود کنید. این کد، نتایج خوانده شده از سنسور را در پنجره ی سریال نمایش می دهد.
/*
  US-100 Ultrasonic Sensor - Triggrt_Echo Mode
  modified on 26 Sep 2020
  by Mohammad Reza Akbari @ Electropeak
  Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=yWhzRnR53i" data-secret="yWhzRnR53i" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

*/

const int pingPin = 5; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensor

long duration;

void setup() {
  pinMode(pingPin, OUTPUT);
  pinMode(echoPin, INPUT);
  digitalWrite(pingPin, LOW);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(pingPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  Serial.print(duration / 29 / 2);
  Serial.println(" cm");
  delay(300);
}
Arduino
خروجی کد به شکل زیر است.

آموزش های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد.