Всем привет!
Это проект, цель которого спроектировать, а также изготовить платы освещения в пассажирских вагонах Tillig "среднего" размера, 155мм.
На плате располагается DCC-декодер и включением света можно управлять любой командной станцией DCC (рокомышка или Roco multiMAUS, например).
На текущий момент схема протестирована на макетке, написана черновая версия прошивки и заказан пучок плат в китае.
Хотелки:
Чтобы свет не горел всегда одним рисунком - планирую на остановках зажигать "стояночное" освещение, которое будет дополнительно подсвечивать тамбуры и коридоры около тамбура.
Ходовых огней не планирую, т.к. в фонарь на корпусе нарисован и не хочется портить корпус попытками вживить туда светодиод, да и 4-х каналов маловато, чтобы адекватно обеспечить зажигание заднего огня только с одной стороны.
Плата будет предназначена только для указанного вагона, однако сам декодер универсален.
Планируемое использование каналов:
1. Тамбуры, дежурное освещение (2 диода)
2. Салон (8 диодов)
3. Туалет (1 диод)
4. Тамбуры, стояночное освещение. (2 диода)
Схема и прошивка:
Сердце декодера - Attiny85, за образец взята одна из схем. Пока планируется только 4 канала, возможно, с регулировкой яркости.
В планах добавить 74HC595 и получить 8 каналов, но без регулировки яркости.
Прошивка самодельная, на основе библиотеки NmraDcc.
Прошивку можно скачать тут.
Вопросы:
- сколько примерно светодиодов оптимально на один погонный см сидячего вагона?
- будет ли ровным освещение, если разместить светодиоды посередине потолка салона? (вагон сидячий)
- какие вообще грабли/нюансы ожидать?
Возможности:
- 4 независимых канала
- из них 2 может работать в ШИМ режиме
- каждый канал можно закрепить за любым из 29(?) функциональных кнопок
- запись CV и сохранение при отключении питания
- макс. ток нагрузки - 100мА(?).
Прошивка:
- потребуется дополнительная Arduino Nano, Uno, Mega. Будет использоваться как программатор
- скачиваем и устанавливаем среду Arduino IDE . Запускаем ее.
- подключаем Ардуино к USB кабелю, кабель к компьютеру
- если в Arduino IDE после подключения кабеля не появился новый порт (Инструменты - Порт), то пробуем установить драйвер для ардуины с чипом CH340,
- заливаем прошивку в Attiny. Как заливать прошивку в Attiny85 с помощью Arduino Uno (Nano). Сначала прошить(?) bootloader для Attiny85 - 16MHz, internal, выбрав плату и процессор Attiny85, 16MHz, internal.
- подключаем декодер к DCC (ставим вагон на рельсы ) и через запись значения 1 в CV8 сбрасываем декодер к "заводским" настройкам
- сбрасываем декодер(отключаем от питания), чтобы CV с новым адресом начало действовать
- включаем декодер, теперь у него адрес 20 в CV1
- далее настраиваем остальные CV по вкусу.
- фьюзы: lfuse: F1 , hfuse: DC, efuse: FF. Как прошивать фьюзы, например тут.
Режимы для CV_CHANNELx_MODE:
MODE_SIMPLE = 0
просто включить выключить
MODE_PATTERN_CYCLE= 1
бесконечно проигрывать 64-х битовый шаблон, шаг шаблона = Option1 *Option2 *100ms.
Битовый шаблон занимает восемь CV. Для каждого канала отдельный шаблон. CV_CHANNELx_PATTERN1 - CV_CHANNELx_PATTERN8
MODE_PATTERN_START_AND_ON= 2
проиграть один раз при включении битовый шаблон и оставить включенным, шаг шаблона = Option1 *Option2 *100ms
например, моргание стартера при включении фонаря
MODE_PATTERN_START_AND_OFF = 3
проиграть один раз при включении битовый шаблон и оставить выключенным, шаг шаблона = Option1 *Option2 *100ms
например, одинокая вспышка, молния,
MODE_ON_AND_PATTERN_END = 4
зажигается при включении, а при выключении проигрывает один раз битовый шаблон , шаг шаблона = Option1 *Option2 *100ms
например то, что при выключении функции будет моргать
MODE_OFF_AND_PATTERN_END = 5
при включении НЕ зажигается, а при выключении проигрывает один раз битовый шаблон , шаг шаблона = Option1 *Option2 *100ms
Биты CV_CHANNELx_CONFIG (слева направо):
7 и 6 - не используются
5 и 4 - режим ШИМ (работает только для каналов 0 и 1 , пины D0, D1), "00" - не использовать ШИМ, "01" - использовать. Уровни яркости для режимов ВКЛ и ВЫКЛ находятся в CV_CHANNELx_PWMLVL_LOW и CV_CHANNELx_PWMLVL_HIGH.
3 и 2 - условия скорости для включения. "00" - не зависит от скорости, "01" - включать, если скорость 0, "10" - включать если скорость больше 0
1 и 0 - условия направления для включения, "00" - не зависит от направления, "01" - если направление вперед, "10" - если направление назад.
Внимание: если задействованы оба условия на скорость и направление, то для включения требуется выполнение обоих условий.
оффтопик