поворот позиционного серводвигателя более чем на 180 градусов
Мой радиоуправляемый серводвигатель способен поворачиваться более чем на 180 градусов (около 200 градусов), когда я поворачиваю его физически, но когда я использую свой код, он поворачивается только на 180°.
Есть ли способ закодировать его так, чтобы он превращался в 200 вместо 180?
@Ethan Ma, 👍0
Обсуждение2 ответа
Сначала несколько основ, чтобы прояснить определения:
Серводвигатель обычно не вращается на 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 градусов.
Тот факт, что сервопривод можно вручную повернуть более чем на 180 градусов, не означает, что его нужно поворачивать более чем на 180 градусов.
Большинство сервоприводов имеют в своей конструкции определенный запас хода, чтобы уменьшить повреждения от внешних сил, но внутренняя конструкция будет 1 рассчитана на работу в диапазоне более 180 градусов.
Хотя можно "перегрузить" двигатель, изменив синхронизирующие сигналы ШИМ (см. справку по подключению сервопривода()). страница), это может привести к повреждению самого сервопривода.
1: игра слов
- Как заставить сервопривод вращаться на угол больше 180°
- Подключение Arduino к сервоприводу с внешним источником питания
- Мой сервопривод не работает плавно
- Бесполезная проводка коробки и код
- Почему сервопривод не перемещается по углам должным образом
- Микро сервопривод не работает с Arduino UNO
- Почему loop() останавливается?
- 6 + 1 двигательей подключенных к arduino uno?
о каком коде вы говорите?, @jsotola