L88556698 發表於 2016-5-30 22:46:38

超音波與伺服馬達問題

各位大大我有一些程式上的問題希望可以解惑
我現在把超音波模組裝在伺服馬達上讓他左右來回轉當超音波感測距離小於5公分時
我讓伺服馬達停下來
當感測大於五公分時
我要讓伺服馬達繼續轉
程式碼如下
if(q==1){                           
    hc_sr04_1();      
if(cm1<5)g=0;            
if(g==1){                     
    angle+=2;
    servo.write(angle);
    delay(40);
    if(angle>180){
    g=-1;
    angle=180;}
    }
if(g==-1){                        
    angle-=3;
    servo.write(angle);
    delay(40);
    if(angle<0){
    g=1;
    angle=0;}
    }
}

我現在可以讓他停下來
但是我要如何可以讓他繼續轉

超新手 發表於 2016-5-31 06:47:58

這樣寫最簡單
if(cm1<5)g=0;
else if(g==0) g=1;

L88556698 發表於 2016-5-31 09:03:41

回復 2# 超新手
但是因為超音波會議感測這樣寫不會卡在g=1里面嗎?
我之前試了
if(cm1<5)
g=0;
if(cm1>5)
g=1;
他會一直卡在g=1
就不會左右轉了

超新手 發表於 2016-5-31 12:42:36

你這樣寫, 確實會卡.
但我這樣寫也會卡嗎?

L88556698 發表於 2016-5-31 21:18:18

回復 4# 超新手
謝謝你的回復已經OK了
謝謝
頁: [1]
查看完整版本: 超音波與伺服馬達問題