آردوینو Arduinoمطالب آموزشی

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

اساس کار ماژول های آلتراسونیک:

این ماژول امواج صوتی با فرکانس بالا ایجاد می‌کنند و موج بازتاب شده را دریافت و تحلیل می‌کنند. این ماژول با محاسبهٔ زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه می‌کنند.

تفاوت ماژول آلتراسونیک SRF05 و SR04:

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

hy-srf05-top

hy-srf05-%d8%a7%d9%84%da%a9%d8%aa%d8%b1%d9%88%d9%84%d8%a8

همان طور که در تصویر هم مشخص است پایه ی out به ماژول SRF05 اضافه شده که این پایه در ماژول دیگر موجود نیست از این پایه برای تعیین عملکرد ماژول اشتفاده می شود. در ادامه بیشتر در مورد این پایه بحث می کنیم.

راه اندازی ماژول با Trigger و Echo جداگانه (سازگار با ماژول SR04):

در این حالت از پایه های جداگانه برای Trigger و Echo استفاده می شود و ساده ترین حالت استفاده از این ماژول می باشد. در ابن حالت تمام کد های موجود برای SR04 با SRF05 نیز کار می کند. برای استفاده از این مد کافی است این پایه OUT را به جایی وصل نکنید در ماژول SRF05 این پایه با مقاومت به صورت داخلی pull up شده است.

عملکرد این ماژول در این حالت :

%d8%b1%d8%a7%d9%87-%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%85%d8%a7%da%98%d9%88%d9%84-%d8%a2%d9%84%d8%aa%d8%b1%d8%a7%d8%b3%d9%88%d9%86%db%8c%da%a9-srf05-%d9%88-sr04-%d8%a8%d8%a7-avr

ابتدا باید یک پالس با طول حداقل ۱۰ میکرو ثانیه به پایه TRIG اعمال شود. ماژول به صورت اتوماتیک ۸ عدد پالس با فرکانس ۴۰ کیلو هرتز ارسال میکند. وقتی که پالس ها ارسال شد پایه ECHO یک میشه و تا زمانی که برگشت پالس ها از جسم را دریافت نکند این پایه یک باقی میماند. پس با اندازه گیری مدت زمانی که این پایه در سطح منطقی ۱ بوده است میتوان زمان رفت و برگشت صوت را بدست آورد. برای اندازه گیری پالس روی پایه ECHO باید از تایمر استفاده کرد. بعد از اطلاع از زمان رفت و برگشت سیگنال اولتراسونیک با استفاده از رابطه زیر فاصله سنسور تا مانع به راحتی محاسبه می شود.

راه اندازی ماژول با پایه ی مشترک برای Trigger و Echo :

در این حالت از یک پایه برای تریگر و اکو استفاده می شود این حالت برای صرفه جویی در پایه های I/O ی میکروکنترلر یا هر سیستم دیگری طراحی شده است. برای استفاده از این باید پایه ی OUT به زمین وصل شود. و از پایه ی Echo برای تریگر و گرفتن پالس اکو استفاده می شود. نمودار برای استفاده از این حالت در عکس زیر مشخص است.

srf

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

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

f1t3tq2h994bxmb-large

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

/*
 HC-SR04 Ping distance sensor]
 VCC to arduino 5v GND to arduino GND
 Echo to Arduino pin 13 Trig to Arduino pin 12
 Red POS to Arduino pin 11
 Green POS to Arduino pin 10
 560 ohm resistor to both LED NEG and GRD power rail
 More info at: http://goo.gl/kJ8Gl
 Original code improvements to the Ping sketch sourced from Trollmaker.com
 Some code and wiring inspired by http://en.wikiversity.org/wiki/User:Dstaub/robotcar
 */

#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 4) {  // This is where the LED On/Off happens
    digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
  digitalWrite(led2,LOW);
}
  else {
    digitalWrite(led,LOW);
    digitalWrite(led2,HIGH);
  }
  if (distance >= 200 || distance <= 0){
    Serial.println("Out of range");
  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
  }
  delay(500);
}

ویدیوی عملکرد مدار راه اندازی ماژول آلتراسونیک SR04 با آردوینو

نوشته های مشابه

6 دیدگاه

  1. با عرض سلام و ادب. ببخشید سوالی که داشتم اینه که با این برنامه ای که شما ارائه دادین میتوان ماژول sr05 را راه اندازی کرد یا خیر؟ باتشکر

  2. سلام وخسته نباشید.خیلی از برنامه های شما لذت بردم. واقعا عالی ممنون از شما…
    مهندس جان ی سوال..در این پروژه وقتی جسمی به ماژول نزدیک میشه ال ای دی قرمز روشن میشه..اگه بخایم تایم به این پایه ال ای دی بدیم که مثلا ۲ ثانیه بعد از روشن شدن کامل خاموش بشه چه دستوری لازم داره؟؟؟ ممنون از راهنمایی تون…

  3. سلام ببخشید من مرحله به مرحله جلورفتم کار میکنه ولی ال ای دی ها روشن نمیشن

  4. سلام خدا خیرت بده عالی کار کرد واقعا ممنون. کدش هم ایراد نداشت هم ساختن ساده بود.🙂🙂🙂🙂

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

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

دکمه بازگشت به بالا