Доделал софт для декодера. За основу взят скетч с сайта
Digital ModellBahn Филиппа Гатова для 4-х канального серводекодера и переписанный под свои нужды.
Переделал вход в режим программирования позиций сервопривода, с помощью локомотивных команд скорости и направления(от крутилки Мультмауса). В этом режиме декодер принимает только локомотивные команды, игнорируя стрелочные.
Теперь этот режим активируется при помощи записи значения 2 в CV20. Естественно для этого сначала надо активировать сам режим программирования CV, т.к. по-умолчанию он выключен.
Это делается при помощи кнопки на декодере. Её надо нажать перед подачей питания на декодер.
После настройки нужного положения, на пульте нажимаем следующие функциональные кнопки, для записи значения угла в EEPROM:
1. FL и F1 для первой позиции
2. FL и F2 для второй позиции
Для выхода из этого режима можно нажать комбинацию из трёх функциональных кнопок(F1 + F2 и далее FL), либо записать 1 в CV20, для выхода из режима программирования позиции в режим записи CV, либо 0 для выхода из всех сервисных режимов, в обычный режим работы.
На декодере предусмотрена следующая индикация его состояний:
1. Светодиод не горит - обычная работа декодера
Декодер принимает и обрабатывает только стрелочные команды.
Локомотивные и команды программирования CV игнорируются.
2. Светодиод горит - активен режим программирования CV(только запись)
Декодер принимает и обрабатывает стрелочные команды, а также команды программирования CV.
Локомотивные команды игнорируются.
Вход в режим - удерживаем нажатой сервисную кнопку на декодере, перед подачей питания.
Выход из режима - запись 0 или 2 в CV20
3. Светодиод мигает - активен режим программирования позиций сервопривода, с помощью
локомотивных команд.
Декодер принимает и обрабатывает только локомотивные команды.
Стрелочные команды игнорируются.
Вход в режим - запись 2 в CV20
Выход из режима - запись 0 или 1 в CV20, либо активирование следующих локомотивных функций(F1 + F2 и далее FL), в этом случае декодер переходит во второй режим.
Смена полярности на крестовине происходит следующим образом:
При получении стрелочной команды на свой адрес, декодер снимает питание с крестовины и начинает перемещение сервопривода. При завершении перемещения, питание противоположной полярности снова подаётся на крестовину.