انجمن تخصصی رباتیک و الکترونیک

  1. mrtstar@gmail.com
  2. الکترونیک، رباتیک و کنترل
  3. پنج شنبه, 28 سبتامبر 2017
  4.  اشتراک از طریق ایمیل
با سلام دوستان من سنسور us-100 رو استفاده کردم هر کاری می کنم مقدار برگشتی عدد 0 (Out of Range) میشه. لطفا راهنمایی کنید؟ ممنون
نمونه کد

const int trig = 6;
const int echo = 7;
long time, dist;

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);
time = pulseIn(echo, HIGH);
dist = (time/2) / 29.1;
if(dist>500 or dist==0)
Serial.println("Out of Range";);
else{
Serial.print(dist);
Serial.println(" cm";);
}
delay(500);
}
noroozi پاسخ پذیرفته شده
توی برنامه ای که نوشتید برای عبارت خروجی out of range دو شرط گفته شده. یکی dist==0 و یکی دیگه بزرگتر از 500 این رو بررسی کنید که شرط دوم آیا اتفاق نیوفتاده که این نتیجه رو در خروجی نشون میده؟
مورد دوم اینکه dist وابسته به time است که با دستور pulseIn نوشته شده ، این دستور در دو حالت خروجی 0 میده :
یک ) سیگنال کامل در زمان دیفالت تعریف شده برای پالس (دیفالت این دستور 1 ثانیه است) به برد نرسه
دو ) پالس از سنسور درست به آردوینو نرسه. یعنی اشکال از سنسور باشه.
لین موارد رو بررسی کنید .
مرجع‌ها
  1. https://www.arduino.cc/en/Reference/PulseIn
کامنت ها
هنوز کامنتی ارسال نشده است
  • صفحه :
  • 1


هنوز به این بحث پاسخی داده نشده است.
شما نیز اجازه ارسال پاسخ را ندارید