Всем привет!
Столкнулся с такой проблемой: есть скетч для управления сервомашинкой.
#include <Servo.h>
int servoPin = 8; // порт подключения сервы
int myAngle; // будет хранить угол поворота
int pulseWidth; // длительность импульса
void servoPulse(int servoPin, int myAngle)
{
pulseWidth = (myAngle * 11) + 755; // конвертируем угол в микросекунды
digitalWrite(servoPin, HIGH); // устанавливаем серве высокий уровень
delayMicroseconds(pulseWidth); // ждём
digitalWrite(servoPin, LOW); // устанавливаем низкий уровень
delay(20); //
}
void setup()
{
pinMode(servoPin, OUTPUT); // конфигурируем пин сервы, как выход
}
void loop()
{
// медленно поворачиваем серву от 0 до 180 градусов
for (myAngle=0; myAngle<=90; myAngle++) {
servoPulse(servoPin, myAngle);
}
delay(1000);
// а теперь обратно
for (myAngle=90; myAngle>=0; myAngle--) {
servoPulse(servoPin, myAngle);
}
delay(1000);
}
На маленьких сервах все отлично работает. Но тут недавно приобрел большую серву (мощную). И начала твориться какая-то фигня. Серва крутится два раза по часовой, три раза против. Как быть? Питание у меня отдельное. Заранее спасибо!