2017-05-18 22 views
0

今日、私はArduinoでこのスケッチと一緒に走っているサーボモータをセットアップしようとしました。何らかの理由で、サーボのセットアップラインを追加すると、ソフトウェアシリアルポートはデータを正常に受信しません。私はArduinoのソフトウェアシリアルを通常のシリアルポートに変更しようとしましたが、同じことが起こります。SerialとArduinoサーボライブラリの問題

#include<SoftwareSerial.h> 
#include<Servo.h> 

Servo myServo; 
SoftwareSerial BT1(3,2); // TX, RX 

int val; 
int servoPin = 7; 
int ledPin = 10; 

void setup() { 
    pinMode(ledPin,OUTPUT); 
    BT1.begin(9600); 

    myServo.attach(servoPin); 
    myServo.writeMicroseconds(2000); //2 ms for Tower Pro SG 90 Servo 
    myServo.write(90); //Initialize at servo's middle point 

} 

void loop() { 

    if (BT1.available()) { 
    int i = (int)BT1.read(); 
    setIntensity(i); 
    } 

} 

void setIntensity(int value) { 
    if (value >= 0 && value <= 110) { 
    analogWrite(ledPin, value); 
    } 
} 

私がmyServoの設定行をコメントアウトすると、Arduinoは魅力的な働きをします。これをどうすれば解決できますか?私はArduino Duemilanoveを使用しています。

+0

私はあなたのAltSoftSerialを使用することをお勧めします。SoftwareSerial.SoftwareSerialよりも優れています。 – Billa

+0

変更したときに直面した問題を指定できますか?間違いを見つけられませんでした – Billa

+0

ServoおよびSoftwareSerialライブラリを使用する場合、彼らの間の葛藤myServoのセットアップ行を追加するとき: 'myServo.attach(servoPin); myServo.writeMicroseconds(2000); // Tower Pro SG 90サーボの2 ms myServo.write(90); //サーボの中点 'で初期化すると、SoftwareSerialは正しく動作しません。 –

答えて

0

NeoSWSerialは、SoftwareSerialの代替として適しています。 NeoSWSerialは、余分なリソースを使用しないためServoを妨げず、長い間割り込みをブロックしません。

これは、IDEライブラリマネージャのスケッチ - >ライブラリを含める - >ライブラリの管理の下にもあります。

関連する問題