2013-01-14 11 views
7

Pracuję z Arduino, podłączyłem silnik serwo i normalny silnik. Oba działają, ale gdy uruchamiam normalny skrypt silnika, silnik serwo wykonuje małe spastyczne rzeczy. Czy ktoś może mi w tym pomóc?Serwo silnik reaguje na inne rzeczy

// 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

Definicja: Czy ma małe spastyczne treści? – fuzz

+1

Są one zawsze trudne do rozwiązania bez obejrzenia schematu, jednak w zależności od silnika i prędkości, z jaką je uruchomisz, może to powodować hałas zwrotny w liniach, które mają wpływ na serwomotor. Spróbuj dodać filtr do zwykłej linii silnika i sprawdź, czy to pomaga. –

+1

Dlaczego to pytanie ma znacznik PHP oznaczony? –

Odpowiedz

2

Większość silników (hobby) serwo będzie drgać lub dać trochę szarpnięcie, gdy są zasilane w górę, zwłaszcza jeśli przed jazdą serwomechanizmu (zapewniającej stawny), które zasila silnik elektryczny. Rozwiązaniem jest napisanie do linii kontrolnej do serwomechanizmu przed zezwoleniem na zasilanie. Niektóre proste rozwiązania obejmują:

  1. kontrolowania zasilanie serwa przez coś można wyłączyć/włączyć
  2. o wtórną podręcznik przełącznik zasilania można przełączać raz kontroler jest (PWM MOSFET czyjejś pomocy tutaj?) działa i działa.

Zasadniczo nic nie można zrobić w kodzie, nie mając możliwości uruchomienia obwodu bez zasilania serwomotoru, dopóki nie zostanie uruchomiony układ sterowania położeniem.