Нашел на Схем.нет хорошую схему дистанционного выключателя освещения с управлением по ИК каналу пультом ДУ от телевизора. Допилил программу для возможности управления любым пультом ДУ формата RC5.
Схема идеальна. Повторил ее, ничего не меняя. Только «развел» печатку под свои детали. С программой МК все не так гладко. Сама программа написана классно – хороший алгоритм распознавания и запоминания кнопок ПДУ. Недостаток только в том, что у автора дома пульты только формата NEC – которые, при нажатии кнопки, не повторяют команду многократно. А у меня дома (как и у всех нормальных людей) все пульты формата RC5 – они быстро и многократно повторяют команду, пока удерживается кнопка. Таким образом, реле в момент нажатия кнопки успевало включиться и тут же выключиться. Написал автору комментарий на страничке, но ответа жду до сих пор.
Пока автор игнорирует мои просьбы решил сам «доработать» исходник. Ну нет у меня дома других пультов кроме RC5, а кратковременно нажимать на кнопку очень неудобно, особенно когда засыпаешь. До этого с «сиасемблером» не общался совсем никак, пришлось учить заново. Благо понимание процесса имеется в голове, да и учить много не пришлось. Сначала немного освоил CodeVisionAVR, потом вычислил команду которую мне нужно и как ею правильно пользоваться. Немного разобрался в алгоритме исходника и с третьей попытки все таки «втыкнул» паузу в нужное место. Не знаю, правильно или нет, но все заработало как я и хотел. Теперь после приема сигнала с пульта и включения реле программа не возвращается быстренько к новому приему, а ждет 900мс и только после возвращается к приему сигнала. А кнопка то уже в этот момент отпущена и повторного срабатывания не происходит. Ниже картинка, на которой указано, что нужно изменить, если нужно подкорректировать задержку.
Автор безвозмездно предоставил исходник для общего пользования. Спасибо ему, оказалось все в моих руках. Еще добавил задержки в подпрограмму мигания светодиодом, а то он очень быстро и незаметно вспыхивал. Теперь он мигает ярко и четко. Более подробно схема описана на первоисточнике.