Представляю готовый модуль для дистанционного управления чем либо, построенный на широко известных радиотрансиверах nRF24L01. Так как модули нельзя назвать дальнобойными, устройство пойдет для управления в пределах комнаты или квартиры.
Пульт
Пульт собран на микроконтроллере ATtiny2313A в SOIC корпусе. Тут все предельно просто - 4 кнопки и модуль трансивера NRF24L01. Кнопки подключены способом, который я описывал ранее. Для обработок нажатия кнопок используется всего одно внешнее прерывание INT0.
Питаться схема планировалась от одной 3-х вольтовой литиевой батарейки. Главная цель была утрамбовать всю схему передатчика в минимальные размеры, чтобы она влезла в заранее купленный корпус-брелок. Я использовал батарейку CR2016, получилось достаточно компактно, плата поместилась в корпус G1402-4B купленном в http://chipnn.ru/ Но чтобы плата влезла в корпус по высоте пришлось перепаять кварц на передатчике (см. фото №3).
Для того чтобы продлить жизнь батарейки, все время пока пульт лежит без дела, микроконтроллер находится в режиме энергосбережения. Передатчик в свою очередь питается напрямую от ножки микроконтроллера (PortD.0), поэтому когда микроконтроллер спит, питание на передатчик не поступает и расход батареи минимален. Посмотрю сколько проживет батарейка в режиме ожидания.
Светодиод D5 на схеме мигает каждый раз при нажатии на кнопки, чтобы было видно что оно работает. Потом можно будет выпаять чтобы не сажало лишний раз батарейку.
Приемник
Приемная часть собрана на микроконтроллере Atmega48, к которому подключен приемник и буферная микросхема, я применил триггер 74hc14. Микроконтроллер тактируется от внутреннего генератора на 1 МГц. Для понижения напряжения питания до 3х вольт применен стабилизатор NCP1117ST33 (U2 на схеме) в корпусе SOT-223. Если сразу использовать для питания 3 вольта, стабилизатор, естественно, можно исключить.
Все собрано на плате размером 35*25 мм, которую можно впаять в уже готовое устройство.
На выходе приемника активным состоянием, т.е. когда выход включен, является высокий уровень. Для отладки и демонстрации работы на выходы поставил по светодиоду.
Так как логика работы приемника может быть разной, и зависит от области применения привожу сразу три прошивки, в которых реализована разная логика работы.
Первый режим работы
Кратенько поясню какие команды передает передатчик. Пульт управления передает команды одной цифрой, эта цифра обозначает номер нажатой кнопки. Приемник соответственно принимает эту цифру и дальше выполняет программу переключения выходов.
В первом режиме работы приемник выставляет высокий уровень на одном выходе в зависимости от номера нажатой кнопки. Высокий уровень находится постоянно, пока не придет команда переключиться на другой выход. Это состояние сохраняется в энергонезависимой памяти, поэтому если даже пропадет питание на приемнике, после включения на выходах будет такое же состояние как и до выключения.
Второй режим работы
Во втором режиме при нажатии на кнопку происходит кратковременное (1 сек.) изменение уровня на выходе модуля приемника.
Третий режим работы
В третьем режиме нажатие на кнопку приводит к включению или выключению выхода. Нажали один раз - включили, нажали второй раз - выключили. Можно выставить на выходе любою комбинацию. Эта комбинация, также как и в первом варианте, сохраняется в энергонезависимой памяти.
UPD: по прошествии 3 недель, в течении которых я каждый день нажимал несколько раз на кнопки, пульт продолжает работать от этой батарейки. Напряжение на ней упало с 3 до 2,6 вольта.
Еще одна версия пульта от товарища Polle:
|