В продолжение темы
http://forum.modelldepo.ru/showthread.php?t=18902 , но, с приложением рук...
Скетч, схема и архив в Gerber для производства - на GitHub
https://github.com/vhar/scsmd.
Работает в двух режимах - "ручном" и "DCC".
Для переключения между режимами нажимаем и держим кнопку на плате пока не начнет мигать светодиод
В течении 15 секунд повторно нажимаем и держим кнопку, пока светодиод не погаснет.
В DCC режиме, игнорируются сигналы на входах "ручного" управления и наоборот, в "ручном" режиме - игнорируется все, что приходит по DCC.
Для программирования адреса декодера - зажимаем на 1,5 сек кнопку на плате, светодиод на Ардуине начинает мигать одинарной короткой вспышкой - далее в течении 15 секунд ожидается получение адреса. Для этого, посылаем любую команду на нужный аксессуарный адрес. Светодиод перестает мигать - новый адрес запомнен.
Чтобы было понимание - запоминается именно адрес декодера, а не адрес аксессуара (стрелки), т.е. все работает как у местного AJL. Занимается 4 адреса подряд.
Скажем, отправили команду на 7-ю стрелку, на декодере на 1-м выходе будет адрес стрелки 5, на втором -6, на третьем 7, на четвертом 8.
Если в течении 15 сек ничего не получено, то автоматом выходим из режима "обучения".
В DCC режите, запоминается последнее положение стрелки и при включении, дается команда на перевод ее в это положение. В ручном режиме - при загрузке происходит опрос входов управления и перевод стрелок в зависимости от состояния этих входов.
Вроде все
При сборке и обкатке полученных печаток "всплыло" два косяка.
1. "бочонок" мешает подключению разъема
2. выводы А6/А7 работают только как аналоговые входы и не имеют встроенных pullup резисторов. пришлось снизу напаять
Все это учтено и исправлено, на GitHub лежат уже исправленные версии (в данном сообщении также заменены картинки)