Плавная регулировка 2 сервоприводов

Тема в разделе "Arduino & Shields", создана пользователем vlasov-serg-27, 21 июн 2014.

  1. Есть 2 сервопривода, стоят по бокам. 1-ый должен вращаться от 0 до 90 градусов, в это же время 2-ой от 90 до 0. Все это происходит в один момент. Может кто-знает как реализовать данную процедуру.
     
  2. ANV

    ANV Гуру

    А на чем творческое вдохновение закончилось? На подключении, в коде или дошли до проблемы что сервы работают не одинаково и перекашивают ось?
     
  3. Вопрос решен с помощью библиотеки VarSpeedServo.h. Решение взято из примера SweepTwoServos.
    Код программы:
    #include <VarSpeedServo.h>
    VarSpeedServo myservo1;
    VarSpeedServo myservo2;
    const int servoPin1 = 30;
    const int servoPin2 = 31;
    void setup() {
    myservo1.attach(servoPin1);
    myservo1.write(0,0,true);
    myservo2.attach(servoPin2);
    myservo2.write(60,0,true);
    }
    void loop() {
    myservo1.write(0,30);
    myservo2.write(60,40);
    delay(2000);
    myservo1.write(50,30);
    myservo2.write(0,40);
    delay(2000);
    }
     
  4. vvr

    vvr Инженерище

    void loop() {
    myservo1.write(180,127,false);
    myservo2.write(180,127,true);
    myservo1.write(0,30,false);
    myservo2.write(0,30,true);
    }
    это из примера библиотеки - разницу видите?
    В сетапе вы написали, а в лупе уже по другому.
     
  5. да, в лупе уже все подстроено под мою задачу.
     
  6. посмотрите до конца описание библиотеки <VarSpeedServo.h>, если мы хотим что бы сервопривода работали одновременно то нам можно использовать команду: write(value, speed) или write(value, speed, wait), под переменой wait подразумевается: одновременное выполнения или последовательное выполнение.