![راه اندازی ماژول آلتراسونیک SR04 با آردوینو 1 FPD8ETGH994RT1X](https://blog.eca.ir/wp-content/uploads/2016/11/FPD8ETGH994RT1X-780x470.jpg)
راه اندازی ماژول آلتراسونیک SR04 با آردوینو
اساس کار ماژول های آلتراسونیک:
این ماژول امواج صوتی با فرکانس بالا ایجاد میکنند و موج بازتاب شده را دریافت و تحلیل میکنند. این ماژول با محاسبهٔ زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه میکنند.
تفاوت ماژول آلتراسونیک SRF05 و SR04:
این دو ماژول در بسیاری از ویژگی ها مشابه هم هستند ماژول SRF05 در واقع تکمیل شده و اصلاح شده ماژول SR04 می باشد. پایه ها و نوع طراحی این ماژول ها به طوری است که می توان با یک برنامه از هر دو ماژول استفاده کرد در زیر تصویر هر دو ماژول را می بینید.
همان طور که در تصویر هم مشخص است پایه ی out به ماژول SRF05 اضافه شده که این پایه در ماژول دیگر موجود نیست از این پایه برای تعیین عملکرد ماژول اشتفاده می شود. در ادامه بیشتر در مورد این پایه بحث می کنیم.
راه اندازی ماژول با Trigger و Echo جداگانه (سازگار با ماژول SR04):
در این حالت از پایه های جداگانه برای Trigger و Echo استفاده می شود و ساده ترین حالت استفاده از این ماژول می باشد. در ابن حالت تمام کد های موجود برای SR04 با SRF05 نیز کار می کند. برای استفاده از این مد کافی است این پایه OUT را به جایی وصل نکنید در ماژول SRF05 این پایه با مقاومت به صورت داخلی pull up شده است.
عملکرد این ماژول در این حالت :
ابتدا باید یک پالس با طول حداقل ۱۰ میکرو ثانیه به پایه TRIG اعمال شود. ماژول به صورت اتوماتیک ۸ عدد پالس با فرکانس ۴۰ کیلو هرتز ارسال میکند. وقتی که پالس ها ارسال شد پایه ECHO یک میشه و تا زمانی که برگشت پالس ها از جسم را دریافت نکند این پایه یک باقی میماند. پس با اندازه گیری مدت زمانی که این پایه در سطح منطقی ۱ بوده است میتوان زمان رفت و برگشت صوت را بدست آورد. برای اندازه گیری پالس روی پایه ECHO باید از تایمر استفاده کرد. بعد از اطلاع از زمان رفت و برگشت سیگنال اولتراسونیک با استفاده از رابطه زیر فاصله سنسور تا مانع به راحتی محاسبه می شود.
راه اندازی ماژول با پایه ی مشترک برای Trigger و Echo :
در این حالت از یک پایه برای تریگر و اکو استفاده می شود این حالت برای صرفه جویی در پایه های I/O ی میکروکنترلر یا هر سیستم دیگری طراحی شده است. برای استفاده از این باید پایه ی OUT به زمین وصل شود. و از پایه ی Echo برای تریگر و گرفتن پالس اکو استفاده می شود. نمودار برای استفاده از این حالت در عکس زیر مشخص است.
ابزار لازم برای راه اندازی ماژول آلتراسونیک SR04 با آردوینو
- برد آردوینو UNO
- ماژول آلتراسونیک SR04
- برد برد
- سیم برد بردی
- LED سبز
- LED قرمز
شماتیک اتصال ماژول آلتراسونیک SR04 به آردوینو
برنامه نمونه راه اندازی ماژول آلتراسونیک 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); }
با عرض سلام و ادب. ببخشید سوالی که داشتم اینه که با این برنامه ای که شما ارائه دادین میتوان ماژول sr05 را راه اندازی کرد یا خیر؟ باتشکر
سلام
نه نمیشه
خیلی استفاده کردم عالی بود
سلام وخسته نباشید.خیلی از برنامه های شما لذت بردم. واقعا عالی ممنون از شما…
مهندس جان ی سوال..در این پروژه وقتی جسمی به ماژول نزدیک میشه ال ای دی قرمز روشن میشه..اگه بخایم تایم به این پایه ال ای دی بدیم که مثلا ۲ ثانیه بعد از روشن شدن کامل خاموش بشه چه دستوری لازم داره؟؟؟ ممنون از راهنمایی تون…
سلام ببخشید من مرحله به مرحله جلورفتم کار میکنه ولی ال ای دی ها روشن نمیشن
سلام خدا خیرت بده عالی کار کرد واقعا ممنون. کدش هم ایراد نداشت هم ساختن ساده بود.🙂🙂🙂🙂