Сервопривод постоянного вращения

Тема в разделе "Arduino & Shields", создана пользователем Дмитрий Тимошенко, 23 ноя 2013.

  1. Ребят, помогите, купил сервы постоянного вращения на колеса робота, разумеется крутить их надо то в одну сторону, то вдругую, так вот, в примере эта серва крутится в одну сторону, а как сделать так, чтобы она крутилось в нужную сторону и определенное время???

    #include <Servo.h>
    Servo myservo; // создаём объект servo void setup()
    {
    myservo.attach(9); // серву на 9 ногу
    myservo.write(90); // и повернуть в среднее положение
    }
    void loop()
    { //тупим в вечной петле
    }
     
  2. Alex19

    Alex19 Гуру

    Задача несколько не понятна.
    По сервам хорошее описание есть тут, сам не подскажу, после перерыва в общении с ардуиной.
    http://wiki.amperka.ru/робототехника:сервоприводы

    Код (Text):
    Servo myservo; // создаём объект servo void setup()
    Надо писать
    Код (Text):
    Servo myservo; // создаём объект servo
    void setup()
    Но возможно просто ошиблись при вставке.
    Если по нажатию, то в void loop()
    Проверяем нажата ли кнопка и выполняем определенное действие. Сохраняя в перемененную состояние сервы, если надо знать последнее состояние.

    В определенное время тут не понятно, через какое-то время после какого-то действия:
    Тогда сохраняем текущее значение времени программы и прибавляем, то через которое должно сработать действие.

    Мне видеться как то так. Более подробнее опишите задачу
     
  3. Alex19

    Alex19 Гуру

    Не внимательно прочел, с этими вообще не имел дело. С обычными работал, уже достал их из коробки и сам начал читать статью вспоминать и писать код, давно это было:).

    Извините, по ним ничего подсказать не могу.
     
  4. ну допустим: едет наш робот вперед, сервы крутятся в первом положении, затем обнаруживаем какой либо предмет, и нам нужно отъехать немного назад. Вот как раз и как теперь крутить сервопривод в противоположное направление?
     
  5. Alex19

    Alex19 Гуру

    Очень интересный выбор. Интересно почему выбраны они а не моторы?

    Цитата из вики, так как не общался с такими и нет под рукой.
    Определяем, Servo.write(180) мы едем вперед или назад. Если 180 это вперед, полный газ, 90 остановка, то наз меньше 90, то указав 0 будет полный назад.
     
  6. Alex19

    Alex19 Гуру

    Примерно так, это не код, а пример.

    Код (Text):

    #include <Servo.h>

    Servo myservo; // создаём объект servo

    void setup()
    {
      myservo.attach(9); // серву на 9 ногу
      myservo.write(90); // и повернуть в среднее положение
    }

    unsigned long backGoMillis = 0; // Флаг, а так же переменная, если больше 0, то значит мы едем назад

    void loop()
    {
      //тупим в вечной петле

      if (Что-то, что заставило ехать робота)
      {
        myservo.write(180);  // вперед, полный газ
      }

      if (Сработал датчик)
      {
        myservo.write(90); // остановка
        backGoMillis = millis(); // сохраняем когда поехали назад
        myservo.write(0); // полный назад
      }

      // backGoMillis больше 0, как флаг и через 0,5с. движение назад останавливается
      if (backGoMillis > 0 && ((millis() - backGoMillis) >500))
      {
        myservo.write(90); // остановка
        backGoMillis = 0; // обнуляем флаг
      }
    }
     
  7. спасибо большое)) именно это и искал