天天看點

Arduino - 利用紅外避障(障礙檢測)進行計數

紅外避障使用很簡單,就是OUT口檢測到有效距離内有障礙物時,給OUT發送高電平(或低電平)。可以利用這一特性,進行計數。

需要注意的是,根據障礙物在識别範圍内所停留的時間不同,子產品可能會在障礙物停留的這一段時間頻繁的發送高電平(或低電平),是以,要判斷兩個标志,一個是障礙物進入,一個是障礙物移出,保證在進入後隻記錄一次資料即可。

代碼如下:

int i=; //計數
bool b=false; //障礙物是否進入
void setup() {
Serial.begin();
pinMode(,INPUT);
}
void loop() {
if (digitalRead()==LOW) //如果發送低電平,識别到障礙物進入
{
  if (b==false) { //如果上一次檢測時,障礙物沒有進入,則視為第一次進入。
    b=true;  //先将标志記錄為障礙物已進入。
    i+=;  //計數+1
    Serial.print("OK:");
    Serial.println(i);
   }
}
else {  //如果檢測到障礙物移出
b=false;  //将标志記錄為障礙物已移出。
}
  delay();
}
           

繼續閱讀