Собрал проект, распределил выводы, посмотрите. В проекте работает индикация и настройки, больше ничего. Вход в настройки - удержание кнопки SET более 2 сек.
Теперь по алгоритму.
Не вникал, что за привод будет управлять каким краном, но очень сомневаюсь, что вот эти все разгоны-торможения будут адекватно работать. Если будут работать вообще.
Поскольку контроллер отслеживает только конечные положения, то работа по времени является весьма неточной. Разве что гарантировано точное время полного хода привода. Но скорее всего время будет зависеть от многих внешних факторов и всегда будет разное. Поэтому, теоретически, закрыться вентиль может как на стадии торможения, так и на стадии закрытия, а может даже и на стадии разгона. А может и не закрыться, так как на стадии разгона может и не стронуться с места.
На начальном этапе (разгон), как правило делают совсем наоборот. Нужно сделать толчок, чтобы преодолеть момент инерции и сорвать привод с места. То есть, сразу подается 100% (или около этого), а потом уже выход на заданное значение. У меня даже куллер на блоке питания стартует только с 40%, так у него механическое сопротивление почти нулевое.
Если попытка закрывания вентиля неудачная (не получен сигнал от конечника «Закрыто»), устройство делает два оборота вентиля
Тут уточните, это еще дополнительно два оборота?
Вопросы еще есть и будут по мере написания прошивки - я только бегло прошелся по алгоритму, но пока давайте согласуем схему.