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;
    }
 }
4

1 に答える 1

2

ほとんどの(趣味の)サーボモーターは、特にサーボを駆動する前にモーターに電力を供給する場合(位置制御信号を提供する場合)、電源を入れるとけいれんするか、少しぎくしゃくします。解決策は、サーボに電力を供給する前に、サーボへの制御ラインに書き込むことです。いくつかの簡単な解決策は次のとおりです。

  1. オフ/オンできるものを介してサーボへの電力を制御します(PWM、MOSFET、他の誰かがここで助けますか?)
  2. 二次電源手動スイッチがあるので、コントローラーが起動して実行されたら切り替えることができます。

基本的に、位置制御ラインを駆動するまで、サーボに電力を供給せずに回路を起動させる方法がなければ、コードでできることは何もありません。

于 2013-01-28T20:40:47.670 に答える