2017-08-29 54 views
-1

我正試圖在學校爲我的項目製作一種「機械臂」。Arduino:伺服器與IR無法「工作」

我的問題是:當爪子得到的東西伺服停止和IR發瘋。我什麼都試過,但我知道沒有什麼工作,並在項目運行已晚...

這類似於我的項目,但我沒有盾牌

enter image description here

#include <IRremote.h> 
#include <Servo.h> 

#define rec A1 
#define claw 5 

Servo g;  
bool i = false; 
IRrecv irrecv(rec); 
decode_results results; 

void setup() { 
    Serial.begin(9600); 
    g.attach(claw); 
    g.write(25); 
    irrecv.enableIRIn(); 
} 

void loop(){ 
    if(irrecv.decode(&results)){ 
    delay(250); 
    Serial.println(results.value); 
    if(results.value == 551522925) { 
     i = !i; 
     change(i); 
    } 
    } 
} 

void change(bool i) { 
    switch (i) { 
    case false: 
     g.write(0); 
     break; 
    case true: 
     g.write(25); 
     break; 
    } 
} 

回答

0

當爪子得到的東西伺服停止和IR發瘋。

很可能這是一個電源問題,提供不同於Arduino電源的電源伺服器,並確保它有足夠的額定電流。

0
  1. 您需要將舵機直接上電到電池/電源。愛好舵機需要4.5-6伏。
  2. 通過嘗試切換您正在複雜的代碼。先用1個按鈕打開爪子,再用另一個按鈕關閉它。
  3. 刪除delay(250)。這將停止所有代碼死亡250毫秒。我想你正試圖阻止命令重複和切換太快,但增加延遲不起作用。首先使用2個按鈕。那麼接收到多個相同類型的命令並不重要。