Сколько времени требуется сервоприводу, чтобы изменить направление вращения?

У меня есть Arduino Uno и сервопривод Micro Servo 9g A0090.

Учитывая, что Servo.read() просто возвращает последнее значение, записанное в сервопривода, я думаю, нет способа запросить фактическое положение сервопривода.

Если я не могу запросить сервопривод, как я узнаю, что сервопривод повернулся в положение моей последней записи( ) позвонить?

Поворот от 0 до 180 займет больше времени, чем от 0 до 10. Как люди обычно справляются с этим сценарием? Возможно, я просто определяю, сколько времени требуется, чтобы перейти от 0 до 180, а затем всегда вызываю delay() после этого дать сервоприводу время завершить свое вращение?

, 👍2


3 ответа


Лучший ответ:

7

Обычные сервоприводы не обеспечивают никакой обратной связи. Их скорость зависит от характеристик сервопривода и нагрузки.

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

Если вы хотите знать положение сервоприводов, вам нужен сервопривод, который выводит его. Есть сервоприводы, которые выставляют сигнал от своего внутреннего потенциометра.

аналоговый сервопривод с обратной связью

Adafruit продает их и имеет полезное руководство о них.

Вы также можете самостоятельно модифицировать обычный сервопривод, подключив провод обратной связи к контакту потенциометра.

,

1

Я могу представить несколько способов, как это сделать:

  • Вы можете подождать определенное время. Сколько времени требуется для поворота от 0 до 180. Но для малых углов он будет ждать гораздо дольше, чем необходимо.
  • Лучше было бы вычислить задержку по углу (возможно, даже по напряжению питания сервопривода)
  • Другим способом может быть измерение тока питания сервопривода.
  • Вы можете использовать поворотный энкодер. Но для достаточно точного определения положения могут потребоваться дополнительные передачи.
  • Вы можете «взломать» электронику сервопривода и получить положение — обычно это делитель напряжения (потенциометр). Но это может привести к дополнительным помехам, и сервопривод может быть нечетким или нестабильным...
,

0

Для сервопривода 9g 0,10 с для поворота на 60 градусов. Для mg995 от 0,18 до 0,19 с при повороте на 60 градусов. Для сервопривода 3003: от 0,19 до 0,20 или поворот на 60 градусов.

Вы можете проверить спецификации для других сервоприводов. Я дал для обычных сервоприводов выше.

Надеюсь, это поможет.

,