Официальный сайт компании Arduino по адресу arduino.cc
Шаговый двигатель против серво привода
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ср, 02/05/2018 - 23:55
Товарищи, решил возобновить один из старых своих проектов. В нём требуется вращение вала с 0 до 180 градусов, с 11-ю промежутками (т.е. 12 значений шкалы всего). Вал будет всегда поварачиваться на +/-15 градусов.
Для меня жизненно необходимо всегда знать текущую позицию вала. Т.е. понимать, в каком он сейчас положении. На сколько я понял, с шаговым двигателем это дохлый номер. Отсюда вопрос: умеет ли так серво привод? Т.е. знает ли он текущую свою позицию?
Всем заранее спасибо за ответы!
Нет.
andriano понятно, спасибо!
Т.е. у меня только один вариант: постоянно держать значение поворота в Ардуине? А есть ли хотя бы такое понятие как "стартовая позиция" сервы. Т.е. чтобы по команде перевести его в какую-то позицию по-умолчания?
Если на пальцах:
Серва - привод с абсолютными координатами.
Сказали : беги на 137 градусов- она побежала и встала на этот градус.
И будет достаточно четко бегать туда не взирая ни на что.
Шаговик - привод с относительными координатами.
Сказали сделай 137 шагов влево - он и сделал.
А где оказался - зависит откуда стартовал.
И считать какое-то положение начальным полностью ваша задача.
Можно вскрыть серву и прицепиться к ее потенциометру - будет незамысловатая обратная связь через analogRead. Или приделать к шаговику специальный потенциометр и получить такую же незамысловатый индикатор поворота в пределах окружности. Так же, если денег много, взять мотор от Тринамика с встроенным энкодером. Варианты есть, вопрос в изобретательности, конструктивных нюансах и бюджете.
Сам сколхозил привод десятиоборотный (и не один... ). Потенциометр можно ставить и пятиоборотный, и однооборотный по необходимости. Моторредуктор стеклоочистителя от "Волги" с разборки.
Сам сколхозил привод десятиоборотный (и не один... ). Потенциометр можно ставить и пятиоборотный, и однооборотный по необходимости.
и какова точность позиционирования получилась? ИМХО, разрешение и воспроизводимость значения с потенциометра не особо радуют...
и какова точность позиционирования получилась? ИМХО, разрешение и воспроизводимость значения с потенциометра не особо радуют...
В моем случае точность устраивает. Использую для привода фрамуг в теплице и кранов\вентилей.
В угловых единицах точность не измерял, а в значении АЦП устанавливается точно в заданное значение.
При калибровке задается мин. и макс. положения и значения ШИМ при приближении к заданному положению отдельно на открывание и закрывание.
При работе скорость вращения 1 об/сек при 100% ШИМ. За полоборота до заданного положения ШИМ плавно уменьшается и последние 10-15 градусов при мин. значении ШИМ вал привода становится в нужное положение.
Линейность характеристики потенциометра заявлена +-0.25%.
Вообще человек как я понял спрашивает про настоящий сервопривод, а не те игрушки что используются большинством ардуинщиков.
Так вот есть сервоприводы с абсолютным энкодером, они будут всегда знать в каком положении находится вал. Только цена такого привода не обрадует - от 15-20 т.р.
Линейность характеристики потенциометра заявлена +-0.25%.
спасибо огромное за ответ. А потенциометры как-нибудь отбираете специально? Можно ссылку на те, что использовали?
Судя по виду - это Органический твердый потенциометр Bourns c Aliexpress. Оригинальный стоит дороже всей конструкции ))
спасибо огромное за ответ. А потенциометры как-нибудь отбираете специально? Можно ссылку на те, что использовали?
Потенциометры беру 500 Ом - 1 кОм. Покупал более 20 у разных продавцов. Косяков не замечал.
Из последних заказов
Десятиоборотные
Пятиоборотные у них вал тоньше
Однооборотный бесконтактный. Нет ограничения по углу поворота. При вращении вых. напр. увеличивается от 0 до 5 В, далее снова 0 В. Мертвой зоны нет. Вращается очень легко, просто не ощущается. Только при начале вращения еле заметное усилие. Думаю подшипник качения установлен с избыточным натягом. Ещё никуда не приспособил)
Товарищи, решил возобновить один из старых своих проектов. В нём требуется вращение вала с 0 до 180 градусов, с 11-ю промежутками (т.е. 12 значений шкалы всего). Вал будет всегда поварачиваться на +/-15 градусов.
Для меня жизненно необходимо всегда знать текущую позицию вала. Т.е. понимать, в каком он сейчас положении. На сколько я понял, с шаговым двигателем это дохлый номер. Отсюда вопрос: умеет ли так серво привод? Т.е. знает ли он текущую свою позицию?
Всем заранее спасибо за ответы!
Как вариант косвенно контролировать положение сервы. После команды на поворот контролировать ток сервы. После установки в нужное положение ток уменьшается на 1-2 порядка. Если же что-то мешает серве отработать угол, то ток не уменьшится.
Или к валу пристроить потенциометр и контролировать положение дуней.
Судя по виду - это Органический твердый потенциометр Bourns c Aliexpress. Оригинальный стоит дороже всей конструкции ))
По ценам да. Если я беру моторредукторы с классики по 150 р, а тот, что на фото за 200р. Ну плюс еще драйвер и код. Зато получается умная и мощная серва. А ещё у меня есть моторредуктор на 24 В с какого-то автобуса. Просто зверь))
Большое всем спасибо за ответы! Много полезной информации.
Что касается привязки к пину потенциометра, то я как раз наткнулся вчера на статью: https://habr.com/company/amperka/blog/127773/
Про бюджет могу сказать только то, что я не готов покупать серву за несколько тысяч. Не та задача. Максимум, что готов потратить, это 15-20 долларов.
Я вот выяснил, что сейчас есть не аналоговые, а так называемые цифровые сервы. Может с ними есть какие-то более простые варианты? Положил глаз на этот: https://ru.aliexpress.com/item/Servo-PDI-5508MG-8KG-JX-speed-metal-teeth...
sadman41 вы упомянули встраивание спец.потенциометра. Что вы имеете под этим в виду? :)
Я вот выяснил, что сейчас есть не аналоговые, а так называемые цифровые сервы. Может с ними есть какие-то более простые варианты? Положил глаз на этот: https://ru.aliexpress.com/item/Servo-PDI-5508MG-8KG-JX-speed-metal-teeth-flat-sports-car-drift-car-digital-steering-gear/32704808311.html
sadman41 вы упомянули встраивание спец.потенциометра. Что вы имеете под этим в виду? :)
Не то, чтобы встраивание, скорее - насаживание на вал. Типа такого: https://ru.aliexpress.com/item/SV01A103AEA01R00-rotasi-sensor-angle-Pemangkas-potensiometer-asli-Murata/32339936894.html
https://www.murata.com/en-eu/products/productdetail.aspx?cate=cgsubRotarPositSenso&partno=SV01A103AEA01B00
С серийными цифровыми сервами (во всяком случае за $20) нет никаких других вариантов. Я мельком видел проджект OpenServo. Вот там всю начинку меняли у сервы и она уже могла по I2C отдавать назад позицию: https://openservo.org/ServoDocumentation
sadman41 так это же просто шикарное решение! Если этот потенциометр умеет передавать свою текщую позицию, то ничего другого и не нужно. Правда я ещё окончательно с сервой не определился, и слабо понимаю, к каждому ли валу подойдёт этот потенциометр.
sadman41 так это же просто шикарное решение! Если этот потенциометр умеет передавать свою текщую позицию, то ничего другого и не нужно.
Передавать сам он не будет, вы будете его через analogRead() читать и значение через map() приводить к градусам.
Правда я ещё окончательно с сервой не определился, и слабо понимаю, к каждому ли валу подойдёт этот потенциометр.
Через переходную втулку - к любому, думаю. Если под рукой есть токарь... Тут еще нужно думать, как его соосно посадить на вал и к корпусу мотора приделать. Но тут я вам советовать не могу, так как что вы там задумали - мне неведомо.
sadman41, ммм... теперь стало понятнее. Т.е. трюк с этим потенциометром является альтернативой разборке сервы и подключению к её потенциометру напрямую. Токарь знакомый есть, что угодно может выточить, так что надо лишь придумать что да как.
Задумку я свою как-то уже тут озвучивал, и вы даже мне советовали кое-чего. Но я в то время совершенно ничего про Ардуино не знал, потому многие вопросы уже даже не актуальны на данный момент: http://arduino.ru/forum/obshchii/upravlenie-vodonagrevatelem-s-pomoshchy...
не прошло и полгода, как что-то начало проясняиться ... &