поворот позиционного серводвигателя более чем на 180 градусов

Мой радиоуправляемый серводвигатель способен поворачиваться более чем на 180 градусов (около 200 градусов), когда я поворачиваю его физически, но когда я использую свой код, он поворачивается только на 180°.

Есть ли способ закодировать его так, чтобы он превращался в 200 вместо 180?

, 👍0

Обсуждение

о каком коде вы говорите?, @jsotola


2 ответа


1

Сначала несколько основ, чтобы прояснить определения:
Серводвигатель обычно не вращается на 360 градусов. Вместо этого он ограничен диапазоном 180, 270 или 90 градусов в зависимости от марки или типа. Управляющий сигнал отправляется на сервопривод, чтобы расположить вал под нужным углом.
Обычный серводвигатель
В обычном аналоговом серводвигателе для управления двигателями используется ШИМ-сигнал с периодом 20 мс. Сигнал длительностью 20 мс имеет частоту 50 Гц.

Ширина импульса варьируется от 1 до 2 мс для управления положением вала двигателя.

  • Ширина импульса 1,5 мс заставит вал сервопривода остановиться в положении 90 градусов, то есть в центре его хода.
  • Ширина импульса 1 мс приведет к тому, что вал сервопривода остановится в положении 0 градусов.
  • Ширина импульса 2 мс заставит вал сервопривода остановиться в положении 180 градусов.

Изменение ширины импульса от 1 мс до 2 мс приведет к перемещению вала сервопривода на полные 180 градусов его хода. Вы можете остановить его под любым углом, соответствующим образом отрегулировав ширину импульса.

Таким образом, если ваш сервопривод представляет собой 270-градусный сервопривод (например, domanrc DM-S0903MD или DS3218 270-градусный цифровой радиоуправляемый сервопривод), стандартный скетч развертки (библиотека Arduino Servo) позволит вашему сервоприводу развернуться в диапазоне от 0 до 270, даже если * .ino его myservo.write(180); Таким образом, чтобы просто проверить, вы можете использовать write(map(desired_angle, 0, 270, 0, 180))
Если вы хотите контролировать его более точно, используйте микросекунды.

servo.attach(5,500,2500)
servo.writeMicroseconds(1500);

И вы должны использовать дополнительный источник питания для 270-градусных сервоприводов, 5V от Arduino заставит их двигаться или только дрожать.
Если у вас просто есть «дефектный» сервопривод на 180 градусов, который по какой-то причине поворачивается, скажем, на 190 градусов, вы можете попробовать микросекундный метод, играя со значениями в приложении, также используйте дополнительный источник питания, но для реального действия на 180 градусов получите сервопривод на 270 градусов.

,

0

Тот факт, что сервопривод можно вручную повернуть более чем на 180 градусов, не означает, что его нужно поворачивать более чем на 180 градусов.

Большинство сервоприводов имеют в своей конструкции определенный запас хода, чтобы уменьшить повреждения от внешних сил, но внутренняя конструкция будет 1 рассчитана на работу в диапазоне более 180 градусов.

Хотя можно "перегрузить" двигатель, изменив синхронизирующие сигналы ШИМ (см. справку по подключению сервопривода()). страница), это может привести к повреждению самого сервопривода.


1: игра слов

,