Отключение - подключение сервы
- Войдите на сайт для отправки комментариев
Вс, 17/11/2013 - 21:09
Кручу серву потенциометром и кнопками перевожу в фиксированные положения. При работе с потенциометром всё хорошо. После перевода в фиксированные положения серва дрожит. При возврате в управление потенциометром опять всё гуд. Почитал по форуму о подобных случах, перепробовал разные комбинации с MyServo.detach(); - не получается корректной работы. Как правильно отключить серву после окончания движения в фиксированное положение?
if(inputMode) { MyServo.attach(10); MyServo.slowmove (valPot, 255); } if(A == 0) { ////////////////// крутим потенциометр inputMode = 1; /////////// кнопкой переводим в положение valPot } else if(A == 1) { /////////// кнопкой переводим в положение val1 inputMode = 0; for(pos = valPot; pos < val1; pos += 5) { MyServo.attach(10); MyServo.slowmove (pos, SPEED); } for(pos = valPot; pos > val1; pos -= 5) { MyServo.attach(10); MyServo.slowmove (pos, SPEED); } } else if(A == 2) { /////////// кнопкой переводим в положение val2 inputMode = 0; for(pos = valPot; pos < val2; pos += 5) { MyServo.attach(10); MyServo.slowmove (pos, SPEED); } for(pos = valPot; pos > val2; pos -= 5) { MyServo.attach(10); MyServo.slowmove (pos, SPEED); } }
Использую библиотеку VarSpeedServo.
Увы никак, у сервы нет обратной связи, поэтому узнать повернулась она на нужный угол или нет нет возможности, поэтому я у себя даю delay со временем за которое она гарантированно повернётся и потом детачу. Проблема в том что после детача она похоже как-то вообще снимается - её можно легко провернуть. Правда я использую стандартную библиотеку.
Проблема в том, что у меня меняется скорость поворота и каждый раз будет разная задержка, я уже и формулы пытался придумать для вычисления задержки. Библиотека VarSpeedServo есть немного усовершенствованная Servo.
Ну какая-бы библиотека не была увы у сервы по-крайней мере обычной нет обратной связи.
Увы никак, у сервы нет обратной связи, поэтому узнать повернулась она на нужный угол или нет нет возможности, поэтому я у себя даю delay со временем за которое она гарантированно повернётся и потом детачу. Проблема в том что после детача она похоже как-то вообще снимается - её можно легко провернуть. Правда я использую стандартную библиотеку.
А как применть задержку с детачем для цикла for?
Так работать не хочет
В скобках в delay вместо значения указываете переменную, которую просчитываете где-то в другом месте
Ушёл от цикла for и без всяких детачей никакого дрожания-джиттера. Правда серва цифровая, на дешёвой может так не получится.