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); // 2毫秒用於Tower Pro SG 90伺服器 myServo.write(90); //在伺服的中間點 處初始化,SoftwareSerial不起作用。 –