Сервопривод неправильно работает
- Войдите на сайт для отправки комментариев
Сб, 09/03/2019 - 23:54
День добрый, появилась такая проблема с недавно купленной сервой MG995. Сначала она не работала вообще, плюс, если механически руками крутить, докручивалась до определённой точки и ни туда ни обратно. Разобрал, смазал, залил скетч (предварительно проверенный на sg90). Тумблер переключает с 0 до 160:
#include <Servo.h> Servo ser; int serpin = 33; int toggle = 35; void setup() { ser.attach(serpin); pinMode(toggle, INPUT); } void loop() { boolean wristPos = digitalRead(toggle); if(wristPos) { ser.write(160); } else { ser.write(0); } }
В разобраном виде работает нормально, но как только собираю, начинает глючить: первые несколько переключений всё правильно, затем доходит до 160, возвращается до 0, потом снова до 160. И с каждым переключением количество возвращений увеличивается. При повторном разборе всё снова нормально
Не сталкивался с таким поведением. Питание, подключение .. все сделано "честно"? Какова нагрузка на серву, нет ли затыков по питанию на Ардуино? .. надеюсь это всё проверено, раз полезли разбирать и смазывать..
У нас уже давным-давно штатный setup() имеет такую вставку:
Как-то так, давно не лазил в это место .. суть в том, что при любой перезагрузке Ардуино платы, она 3 сек. мигает встроенным светодиодом перед началом работы. В случае косяков и перезагрузок по питанию, это сильно помогает: плата внезапно "замирает" и начинает моргать светодиодом.
Были усохшие аккумуляторы Ni-MH, которые показывали что "заряжены", но в нагрузку не отдавали больше 2А от слова "совсем". Подключаешь - вроде все работает .. вот, пока не воткнули такую фигнюшку, так и гадал "что происходит".
Теперь не только это стоит, но ещё и питание на плату в обязательном порядке подавется через диод, включенный в прямом направлении и ставим доп. конденсатор на входе в 1000,0х16в. Помогает, если какая-то нагрузка на короткий период просаживает питание в ноль.