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を使用しています。
私はあなたのAltSoftSerialを使用することをお勧めします。SoftwareSerial.SoftwareSerialよりも優れています。 – Billa
変更したときに直面した問題を指定できますか?間違いを見つけられませんでした – Billa
ServoおよびSoftwareSerialライブラリを使用する場合、彼らの間の葛藤myServoのセットアップ行を追加するとき: 'myServo.attach(servoPin); myServo.writeMicroseconds(2000); // Tower Pro SG 90サーボの2 ms myServo.write(90); //サーボの中点 'で初期化すると、SoftwareSerialは正しく動作しません。 –