Сервомотор дергается

mabanza
Offline
Зарегистрирован: 30.01.2016

Привет.

Не могу избавиться от дерганий сервомотора, навешенного на pin 6 Arduino Uno.

Очевидно что этот тремор происходит при выводе чего-нибудь в сериальный порт (COM4 в моем случае).

В чем может быть причина?

Спасибо.

std
Offline
Зарегистрирован: 05.01.2012

Какие-то завороты с неидеальностью синтеза PWM сигнала. Понять и простить, либо использовать внешний, типа TLC5940 или что в этом духе. Гуру пишут что-то адруине на чистом AVR C и повышают тем частоту синтеза, вроде проблема уходит. Но это для любителей покрасноглазить. Если интересно, то достаточно подождать, думаю напишут. Я не напишу т. к. сервы использую редко и мне на эту проблему теперь плевать.

Да, ещё она заткнётся, если сделать detach(), но по-моему, это навсегда. Лично у меня не вышло всё по условию делать: если в setup() назначить и не освобождать серву, то норм. Как только пытаюсь делать всё в loop() - хрен.

mabanza
Offline
Зарегистрирован: 30.01.2016

Этот самый синтез делает код в библиотеке Servo.h из тактов ардуинного сипию, не так ли? Не кажется, что проблема в нем. Дергается как раз в моменты, когда что-то (текст) выводится оператором Serial.write(). Какая-то банальная помеха по цепи питания. Сейчас проверил это навесив электролит 100 мкф на питание сервы - дерганья уменьшились, но не пропали. Увеличить вкорость обмена по сериальному порту (сейчас 9600), чтоб сделать ее высокой и недосягаемой для сервы?