У меня есть отличная новость! Наконец то я нашёл время допилить прошивку для этого диммера. Но обо всём по порядку.
Схема.
Первое чего мне сильно не хватало в старой версии диммера, так это выключения света без задержки, если он был включен переключателем на плафоне, поэтому пришлось немного изменить схему подключения диммера к плафону.
Схема диммера:
Схема подключения к плафону.
- connect_ATtiny45.GIF (13.87 KiB) Viewed 22082 times
При таком подключении к плафону есть возможность отслеживать чем вызвано включение: концевик двери, тогда на обеих входах (4 и 5) будет "0" или выключетель на плафоне, тогда на входе концевика двери (4) будет "1", а на входе выключателя плафона (5) будет "0". Для тех, кому такой функционал не нужен можно подключать по старому, просто замкнув входы 4 и 5 (или вобще запаяв один диод и поставив перемычку так, чтобы замкнуть 2 и 6 вывод контроллера (между катодами диодов).
- connect_old_ATtiny45.GIF (13.69 KiB) Viewed 22082 times
Функционал.
* плавное включение при открытии двери или включении переключателем на плафоне. Скорость программируется.
* задержка выключения при закрытии двери (0 - 60 сек).
* при заведённом моторе (Uпит > 12,85 В) выключение без задержки. Порог программируется в диапазоне от 12,5В до 14В.
* выключение без задержки, если свет был включен переключателем на плафоне.
* "безопасное" выключение света, если дверь открыта более 30 минут. (программируется от 0 до 60 минут). 0 - "безопасное выключение" отключено.
* "безопасное" выключение света, если переключатель включен более 30 минут. (программируется отдельно от 0 до 60 минут). 0 - "безопасное выключение" отключено.
* доп. вход для реализации включения света при снятии с охраны на время от 5 до 60 секунд (программируется, по умолчанию 30). При помощи этого входа также реализуется гашение света при постановке на охрану.
* программирование всех параметров кнопкой концевика двери или переключателем на плафоне. Кнопкой удобнее, почему - поймёте в описании процедуры программирования.
Прошивка.
На данный момент выкладываю только скомпилированную прошивку. Исходнки будут доступны после отладки, добавления коментариев в прошивку. Можно прошить только flash, тогда при первом включении программа не обнаружит настроек в eeprom и запишет их значения "по умолчанию" при этом 5 раз моргнёт свет. Если с настройками всё впорядке, то при подаче питания свет плавно загорается и сразу плавно тухнет. Прошивка в прикреплённых файлах.
Fuses
Аппетит.
В активном режиме (свет горит) устройство потребялет 19 - 20 мА.
В пассивном режиме (свет не горит, но ещё не уснул) устройство потребяет 10 мА.
В режиме сна (через 2,5 секунды после выключения света) МК переходт в режим пониженного потребления тока. В таком состоянии всё устройство потребляет ток 3 мА.
При "безопасном" выключении света, т.е. когда выключатель или концевик двери остались замкнуты устройство в режиме сна потребляет 5 мА.
Программирование параметров.
Исходное состояние - двери открыты.
1) Для входа в режим программирования нужно 10 раз нажать и отпустить концевик двери (закрыть и открыть двери). В конце концевик должен остаться замкнут (двери открыты). Пауза между нажатиями не более 8 секунд.
2) Подтверждение входа в режим программирования - 3 раза моргает (тухнет) свет. Последнее моргание всегда в 2 раза дольше предыдущих. Одиночное моргание всегда двойной длины. Если в течении 30 секунд концевик не нажимать, то устройство выйдет из режима программирования БЕЗ сохранения изменений при этом 2 раза моргнёт свет. Если закрыть дверь на время более 8 секунд, то устройство сохранит изменённые настройки (если они менялись) и 4 раза моргнёт светом.
3) Нажимаем концевик от 1 до 6 раз, тем самым выбирая программируемый параметр. Если концевик отпущен (дверь открыта) более 4 секунд, то переходим к следующему пункту. Если накнопали больше 6 раз, то через 4 секунды вернёмся к вводу номера параметра БЕЗ морганий.
4) через 4 секунды, после последнего отпускания концевика (открытия двери) свет моргает текущую установку.
5) нажимаем концевик необходимое количество раз (новая установка). Или ждём 30 секунд для выхода без сохранения.
6) Моргает свет новую установку. Если накнопали больше, чем допускает текущий параметр, то выбирается максимально допустимое значение и его моргает. Переходим к пункту "3".
Параметры
1) множитель (0..6) порога для определения заведённого мотора. Формула расчёта (U пороговое = 12,5 + 0,35 * множитель.). "0" - одно моргание, "1" - два моргания и т.д. По умолчанию = 1 (12,85 В).
2) Делитель (1..20) скорости зажигания/гашения света. Ориентировочно "1" = 0,25 секунды, "20" = 5 секунд. "1" - одно моргание, "2" - два моргания и т.д. По умолчанию = 3 .
3) Задержка (0..12) до выключения при незаведённом моторе. Время = 5 секунд * задержку. "0" - одно моргание, "1" - два моргания и т.д. По умолчанию = 2 (10 секунд).
4) Задержка (1..12) до выключения при активации по доп входу. Время = 5 секунд * задержку. "1" - одно моргание, "2" - два моргания и т.д. По умолчанию = 6 (30 секунд).
5) Задержка (0..12) до "безопасного" отключения по таймеру при открытой двери. Время = 5 минут * задержку. Т.е. "0" - выключено безопасное отключение. "0" - одно моргание, "1" - два моргания и т.д. По умолчанию = 6 (30 минут).
6) Задержка (0..12) до "безопасного" отключения по таймеру при включенном плафоне. Время = 5 минут * задержку. Т.е. "0" - выключено безопасное отключение. "0" - одно моргание, "1" - два моргания и т.д. По умолчанию = 6 (30 минут).
Обратите внимание. что некоторые параметры начинаются с "0"и при их программировании одно нажатие концевика соответствует нулю, два - единице и т.д. А некоторые параметры начинаются с "1", там одно нажатие соответствует единице, два - двойке...
ЗЫ: себе я только сегодня прошил последнюю версию. Еси будут изменения или дополнения, я сразу их буду выкладывать.