Open ZernovTechno opened 1 year ago
возможно в esp либе другая реализация attach/detach. В классической attach сразу вертит серво на текущий угол (по умолч 0), smoothStart по сути дёргает attach detach с паузами, и серво приползает небольшими рывками к нулю, точнее к заданному setCurrentDeg
Я, кажись, разобрался. Servo в ESP8266 (Лежит в папке библиотек ядра ESP8266) в attach вызывает самый обычный write на нужный угол. По дефолту там стоит "какой то", но есть перегруженная версия метода attach, которой можно передать угол на который крутить. В общем вариантов много - можно (все операции проводить с Servo.cpp внутри библиотек ядра ESP8266):
Если вам вообще не надо на attach крутить серво - удалите строку write(value); ( 84-ая в Servo.cpp, находится в методе Servo::attach(int pin, uint16_t minUs, uint16_t maxUs, int value) ).
Если нужно крутить плавно - можно заменить write(value) в Servo.cpp костылём из цикла for.
По идее можно как-то всунуть методы write из библиотеки гайвера в Servo.h.
А вообще, очень надеюсь что библия не заброшена и жду апдейта с решением этой задачи, который, очевидно, должен быть.
А detach корректно работает? SmoothStart работает исходя из того, что детач сразу бросает серву, поэтому если дергать аттач+детач - серва плавно поедет к углу, на который отправляет аттач
Ну у меня включен AutoDetach, с ним вроде всё окей, когда автодетач отключен - замечательно работает обычный detach. Работа SmoothStart для меня независима от детач - одинаково не работает :) Я всё же грешу на разные библии...
Используется - ESP8266 nodeMCU с CP2102 Ядро для ESP8266 - установлено из IDE - 3.1.2 Версия IDE - 2.1.1
Данной функции в примерах я не увидел, может слепой :)
Код:
Серво летит в позицию моментально, а не с ограниченной скоростью. Проблема не у меня одного, тут уже встречался такой же несчастный: тык
Серво подключен на пин 0 (D3), серво и плата питаются от одного источника - 5в 2.4а, просадок по напряжению не было. Провода качественные. Плавное движение в других частях кода работает (setTargetDeg())