Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2716|回復: 3
打印 上一主題 下一主題

請教!

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-2-7 21:04:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家好!
     我想用Arduino做一個智能小車,實現避懸崖功能,我是這樣想的,小車開始時是向前走的,當遇到地上的黑線時,向後退5S,然後再向前走。下面是我的主程序,實際運行起來實現不了。請高手指教。
     
  void loop()
{
  advance();
  int I;
  I=digitalRead(IRR);
  if(I==HIGH)
{
  back();
  delay(5000);
  }
  else
  {
   advance();
  }
}
其實我也知道是什麼原因,就是只要傳感器觸發一下,然後就後退,不管SENSOR有沒有感應到。是紅色的要修改下。就是不知道用哪個命令,請高手指點,謝謝!
2#
發表於 2012-2-7 22:48:36 | 只看該作者
advance();   back();  這兩個函數是自己寫的嗎?!
有沒有單獨測過他們讓馬達動?

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

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

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-24 18:46 , Processed in 0.108402 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表