Проблема с Serial и Arduino Servo Library

сегодня я попытался настроить серводвигатель, работающий вместе с этим эскизом на Arduino. По какой-то причине, когда я добавляю строки настройки для сервопривода, программный последовательный порт не получает данные нормально. Я попытался изменить серийный номер программного обеспечения на обычный последовательный порт на 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

Решение

NeoSWSerial является подходящей заменой для SoftwareSerial, NeoSWSerial не будет мешать сервоприводу, потому что он не использует никаких дополнительных ресурсов и не блокирует прерывания на длительные периоды времени.

Это также доступно из Менеджера библиотеки IDE, под меню Эскиз -> Включить библиотеку -> ManageLibraries.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]