Robofun 機器人論壇

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

GP2D12 sharp 避障問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-3-15 21:24:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#define IR_pin 0
int IR_val = 0;
float val = 0;
int pwm_a = 3;
int pwm_b = 11;
int dir_a = 12;
int dir_b = 13;

void setup() {

Serial.begin(9600);
pinMode(pwm_a, OUTPUT);
pinMode(pwm_b, OUTPUT);
pinMode(dir_a, OUTPUT);
pinMode(dir_b, OUTPUT);

}

void loop()
{
val = analogRead(0) ;
val = val*5/1024; //記得換算成電壓
val = 12.726*pow(val,-1.061);

digitalWrite(dir_a, HIGH);
digitalWrite(dir_b, HIGH);
delay(100);
analogWrite(pwm_a, 255);
analogWrite(pwm_b, 255);
delay(100);

if (IR_val < 50) // obstacle detected
{
IR_val = analogRead(IR_pin);   
// Stop both motors...
analogWrite(pwm_a, 10);
analogWrite(pwm_b, 10);

delay(1000); // ...and pause for a second

}
}


可以編譯但是 ,功能不是原程式的方式
不知道該怎樣解決
也想請問高手們如何把讀取的電壓值轉換成公分
謝謝大家的解答
2#
發表於 2012-3-18 08:47:27 | 只看該作者
程式蠻眼熟,其中有指數函式
val = 12.726*pow(val,-1.061);

可以參考鯨魚大的 Arduino書籍大作,
裡面用到excel把收集的距離與電壓資料,轉成指數函式,
這是讓小弟眼睛一亮的做法~~~~數學建模~~~
看到這裡,鯨魚大也應該出來好好解釋一番囉~~
3#
發表於 2012-3-20 05:33:38 | 只看該作者
IR sensor 要手動調教喔 他會根據環境改變參數(val = 12.726*pow(val,-1.061);)<----這行
把你量到的公分數和其電壓繪製成圖 利用excel幫你找參數 如上面大大說的 課本有提的很詳細
4#
發表於 2013-9-6 15:59:00 | 只看該作者
回復 2# marbol
請問一下鯨魚大大的Arduino書籍書名是?

可否麻煩私訊給我!?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-7-3 18:10 , Processed in 0.290831 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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