Данный проект реализован на более мощном контроллере - atmega8. Он имеет уже 7 команд, появилась дополнительная команда - отключение и включение питания.
Вкратце поясню принцип работы устройства: Нажимая на кнопки CD DVD AUX или TUNER, включается реле этого входа и мигает 3 раза светодиод этого входа, потом постоянно горит.
Нажимая на кнопки POWER AC1 или AC2, включается соответствующее реле. Повторное нажатие отключает текущее реле выхода (триггерный характер работы реле).
Если запрограммировать команды с пульта - нажимая на кнопки ДУ, будет точно так же работать реле и индикация модуля.
Теперь модуль поддерживает команды с пульта (универсальный протокол). Для того, чтобы управлять пультом, нужно всего лишь запрограммировать его кнопки в меню.
Вход в режим программирования: Зажимаем кнопку sel и нажимаем интересующую нас кнопку модуля. Мигнет светодиод выбранной команды. И нажимая на кнопку пульта, произойдет захват команды. Если захват прошел успешно, светодиод модуля снова мигнет. И так программируются все команды модуля.
Чтоб стереть запрограммированные команды, нужно удерживать длительное время (около 10сек.) кнопку sel, после стирания мигнут все светодиоды входов.
Данный модуль был протестирован на 5-ти разных пультах, вот они на фото:

Он отлично работал с этими ДУ! К сожалению, эта версия прошивки не поддерживает команды протокола SONY SIRC 12bit... В будущем планирую обязательно решить эту проблему! Так как этот алгоритм буду применять в других своих проектах.
Чтобы запрограммировать контроллер, нам понадобится программатор для AVR микроконтроллеров. С завода этот МК запрограммирован на тактовую частоту 1 МГц от внутреннего генератора. Нам эта частота не подходит, поэтому придется залазить во фьюз биты микроконтроллера. Нам нужно изменить фьюз биты отвечающие за тактирование.
Можно настроить на внутренний генератор 4 МГц, а можно настроить на внешний кварцевый резонатор частотой 4 МГц. Для надежной работы декодера Я НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ настроить МК на внешний кварцевый резонатор частотой 4 МГц.
Фьюзы для этого нужно записать так: CKSEL 3...0 = 1111 все остальные значения трогать не надо.
В этой версии исходный код не выкладываю, так как алгоритм декодера закрытый!
Собравших данное устройство прошу писать в комментариях какие ДУ удалось подружить, а какие не удалось.

Обновления:
Версия 1.1:
- введена поддержка Sony SIRC протокола и улучшен алгоритм кодирования/декодирования данных.
Версия 2.0:
- при подаче питания устройство находится в дежурном режиме, появилась отдельно индикация питания, когда питание включено - светодиод горит. Когда питание выключено - светодиод мигает.
- при отключении питания с пульта или кнопкой блокируются и отключаются все входы и выходы. При включении питания сохраняется последняя текущая настройка и через секунду - две активируются входы/выходы.
Версия 3.1:
- появилась возможность регулировать громкость "моторизированный регулятор"
- добавлена дополнительная кнопка "mute" и 3 дополнительные команды для ДУ это: громкость увеличить, громкость уменьшить и режим тишина.
Для того, чтобы запрограммировать команды, надо зажать sel и зажать mute и послать команду с ДУ. Это mute режим.
Для "громкости +" надо зажать sel, cd, tuner и послать команду с ДУ.
Для "громкости -" надо зажать sel, cd, aux и послать команду с ДУ.
После, можно пользоваться пультом.
- появилось новое сервис меню. Для входа, надо при включении питания зажать на 5сек кнопку sel пока не загорятся все 4 светодиода индикации. После той же кнопкой выбрать режим 1 или 2. Зажать кнопку и ждать пока мигнут все светодиоды повторно, отпустить кнопку.
Эти режимы позволяют максимально точно подогнать интересующий ДУ для данного устройства. Режим 1 заточен ближе к Sony, а режим 2 заточен ближе к Panasonic REC-80.
Обновлена схема:
Прикрепленные файлы:
- selector2.rar (80 Кб)


0 Комментарии