Дергается сероврпивод

Abim
Offline
Зарегистрирован: 07.10.2015

Проблема в том, что при управление сервоприводом с помощью потенциометра, серва дергается

Происходит это из за того, что значение получаемое с потенциометра даже в состоянии покоя меняется на +-1

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

Масштабировал значения с помощью команды map, что то сижу и не могу никак придумать, как округлить значение

В поиске искал, не нашел

vk007
Offline
Зарегистрирован: 16.06.2015

Можно попробовать так:

считываем и запоминаем значение потенциометра и крутим серву;

снова считываем значение потенциометра и сравниваем его с предыдущим, при котором мы вертели серву;

если разница (по модулю) больше некой дельты (например, тех же +-1, или 2, или на сколько оно там прыгает), то запоминаем новое значение и крутим серву, иначе игнорируем;

и т.д.

Abim
Offline
Зарегистрирован: 07.10.2015

Спасибо за вариант! Завтра попробую, только получается от этой дельты будет зависеть точность, так? Если взять разность по модулю в 1, то сервопривод будет двигаться только когда я поверну потенциометр на 2+ градусов?

 

А, туплю что то, мы же берем разность из значений потенциометра

vk007
Offline
Зарегистрирован: 16.06.2015

Если важна точность, может стоит рассмотреть вопрос использования энкодера вместо потенциометра?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

отправляй значения с потенциометра в терминал и узнаешь на нем скачут значения или нет