2013-01-14 60 views
7

我正在與Arduino合作,我連接了一臺伺服電機和一臺普通電機。它們都可以工作,但是當我開始正常的電機腳本時,伺服電機會做小痙攣的東西。 任何人都可以幫助我嗎?伺服電機對其他事情起反應

// Includes 
#include <Servo.h> 

// Aanmaken van de variabelen voor in de code 

int ledPin = 13; 
const int motorPin = 2; 
int usbnumber = 0; 
Servo stuurServo; // create servo object to control a servo 
int pos = 90;  // variable to store the servo position 


// De eerste setup maken 
void setup() 
{ 
    pinMode(ledPin, OUTPUT); 
    pinMode(motorPin, OUTPUT); 
    stuurServo.attach(12); 
    Serial.begin(9600); 
    stuurServo.write(pos); 
} 

void loop() 
{ 
    if (Serial.available() > 0) { 
     usbnumber = Serial.read(); 

    } 

    if (usbnumber > 0) { 
     if (usbnumber == 1){ // Lampje knipperen 
      digitalWrite(ledPin, HIGH); 
      delay(1000); 
      digitalWrite(ledPin, LOW); 
      delay(500); 
      digitalWrite(ledPin, HIGH); 
      delay(1000); 
      digitalWrite(ledPin, LOW); 
      delay(500); 
      digitalWrite(ledPin, HIGH); 
      delay(1000); 
      digitalWrite(ledPin, LOW); 
      delay(500); 
     }else if(usbnumber == 2){ // Motor aan voor 5 seconden 
      digitalWrite(motorPin, HIGH); 
      delay(20000); 
      digitalWrite(motorPin, LOW); 
     }else if(usbnumber == 3){ // stuur servo +10 graden 
      if(pos != 180){ 
       pos + 10; 
       stuurServo.write(pos); 
      } 
     }else if(usbnumber == 4){ // stuur servo -10 graden 
      if(pos != 0){ 
       pos - 10; 
      stuurServo.write(pos); 
      } 
     }else if(usbnumber == 5){ // stuur servo liks 
      pos = 0; 
      stuurServo.write(pos); 
     }else if(usbnumber == 6){ // stuur servo rechts 
      pos = 180; 
      stuurServo.write(pos); 
     }else{ 
      delay(500); 
     } 
     usbnumber = 0; 
    } 
} 
+2

定義:小痙攣的東西? – fuzz

+1

這些對於查看原理圖來說總是很難排除故障,然而,根據電機和運行速度的不同,它會在線路中引起反饋噪聲,從而影響伺服電機。嘗試添加一個過濾器到你的普通電機線,看看是否有幫助。 –

+1

爲什麼這個問題有PHP標記標記? –

回答

2

大多數(愛好)伺服電機將抽搐或給一點混蛋的時候都通電,特別是如果你駕駛的伺服(提供位置控制信號)之前電力的電動機。解決辦法是在通電之前將控制線寫入伺服器。一些簡單的解決方案包括:

  1. 通過一些控制電源伺服你可以打開/關閉具有二級動力手動
  2. 切換您可以切換一旦你的控制器(這裏PWM,MOSFET別人幫忙嗎?)啓動並運行。

在代碼中,如果沒有某種方式讓電路在伺服電源沒有供電的情況下啓動,直到驅動位置控制線,那麼基本上沒有任何東西可以做。