Убрал всё лишнее, оставил только код, управляющий сервой:
Код:
#include <Servo.h>
int del = 700;
Servo myservo1;
Servo myservo2;
Servo myservo3;
void setup(){
myservo1.attach(22);
myservo2.attach(46);
myservo3.attach(50);
}
void loop(){
moveservo(myservo1);
}
void moveservo(Servo cservo){
cservo.writeMicroseconds(1500);
delay(del);
cservo.writeMicroseconds(2300);
delay(del);
cservo.writeMicroseconds(1500);
delay(del);
cservo.writeMicroseconds(700);
delay(del);
}
Пока не "подключаю" в коде вторую и третью серву - они не двигаются, как только прописываю вот это:
Код:
myservo2.attach(46);
myservo3.attach(50);
начинают дёргаться. Причём похоже они дёргаются в конце движения основной сервы.
Попробовал подключить DC-DC преобразователь, взяв с компа 12В, и сделав на выходе 5.95В (практически 6) - результат тот же.
Думал может опять питания не хватает... Похоже не подтвердилось.
Добавлено спустя 12 минут 3 секунды:Попробовал заменить writeMicroseconds на write:
Код:
cservo.write(90);
delay(del);
cservo.write(170);
delay(del);
cservo.write(90);
delay(del);
cservo.write(10);
delay(del);
Результат тот же - подёргиваются...
Добавлено спустя 26 минут 50 секунд:Ещё заметил, если вращать второй сервой:
moveservo(myservo2);
то дёргается только третья серва, а первая не дёргается!
Как такое может быть? Кривая библиотека Servo.h или я что-то не так делаю?