Robofun 機器人論壇

標題: 請教! [打印本頁]

作者: zhq    時間: 2012-2-7 21:04
標題: 請教!
大家好!
     我想用Arduino做一個智能小車,實現避懸崖功能,我是這樣想的,小車開始時是向前走的,當遇到地上的黑線時,向後退5S,然後再向前走。下面是我的主程序,實際運行起來實現不了。請高手指教。
     
  void loop()
{
  advance();
  int I;
  I=digitalRead(IRR);
  if(I==HIGH)
{
  back();
  delay(5000);
  }
  else
  {
   advance();
  }
}
其實我也知道是什麼原因,就是只要傳感器觸發一下,然後就後退,不管SENSOR有沒有感應到。是紅色的要修改下。就是不知道用哪個命令,請高手指點,謝謝!
作者: mzw2008    時間: 2012-2-7 22:48
advance();   back();  這兩個函數是自己寫的嗎?!
有沒有單獨測過他們讓馬達動?

再來就是感測黑線的感測器
遇到黑線時是HIGH?
IRR 那根腳確實是感測器那根?

delay(5000);
這行不該接BACK 後面
應該是看BACK()要執行多久, 假設是0.1秒
則需要
for (int a=1;a<=50;a++)
   BACK();
這樣才能真的後退五秒
作者: mzw2008    時間: 2012-2-7 22:49
車子的控制前進, 要作到很人性化, 需要好多好多的努力哩^^
作者: playrobot    時間: 2012-2-8 09:25
除了使用計算副程式執行一次要多久的方法外,可以參考millis() 這指令計算時間,另外如果你是控RC馬達,可以直接搭配servo.h控制,可以更加容易程式也會比較簡短。




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2