Главная » Статьи » Проекты

Встраиваемый модуль радиоуправления на nRF24L01
 Представляю готовый модуль для дистанционного управления чем либо, построенный на широко известных радиотрансиверах nRF24L01. Так как модули нельзя назвать дальнобойными, устройство пойдет для управления в пределах комнаты или квартиры. 
 
 

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

 На выходе приемника активным состоянием, т.е. когда выход включен, является высокий уровень. Для отладки и демонстрации работы на выходы поставил по светодиоду.
 
 
 
 Так как логика работы приемника может быть разной, и зависит от области применения привожу сразу три прошивки, в которых реализована разная логика работы. 
 
 Первый режим работы
 Кратенько поясню какие команды передает передатчик. Пульт управления передает команды одной цифрой, эта цифра обозначает номер нажатой кнопки. Приемник соответственно принимает эту цифру и дальше выполняет программу переключения выходов.
 В первом режиме работы приемник выставляет высокий уровень на одном выходе в зависимости от номера нажатой кнопки. Высокий уровень находится постоянно, пока не придет команда переключиться на другой выход. Это состояние сохраняется в энергонезависимой памяти, поэтому если даже пропадет питание на приемнике, после включения на выходах будет такое же состояние как и до выключения. 
 
 
 
 
 
 
 Второй режим работы
 Во втором режиме при нажатии на кнопку происходит кратковременное (1 сек.) изменение уровня на выходе модуля приемника. 
 
 
 
 
 
 
 
 
 Третий режим работы
В третьем режиме нажатие на кнопку приводит к включению или выключению выхода. Нажали один раз - включили, нажали второй раз - выключили. Можно выставить на выходе любою комбинацию. Эта комбинация, также как и в первом варианте, сохраняется в энергонезависимой памяти. 
 
 
 

UPD: по прошествии 3 недель, в течении которых я каждый день нажимал несколько раз на кнопки, пульт продолжает работать от этой батарейки. Напряжение на ней упало с 3 до 2,6 вольта.
 

Еще одна версия пульта от товарища Polle:
 

 
 
 
Категория: Проекты | Добавлено: 12.09.2013
Просмотров: 58677 | Комментарии: 106 | Теги: NRF24L01 | Рейтинг: 5.0/20
Всего комментариев: 106« 1 2 3 4
+1   Спам
16 Valera18   (22.09.2013 15:04) [Материал]
Передатчик работал всё ночь и сейчас работает, каждые 8 секунд отправляет 5 байт после уходил в сон (Powerdown), тем самым имитирует нажатие кнопки. На данный момент с имитировано 7650 раз нажатия кнопки. Батарейку CR2032 использую старую, вчера через 2 часа при первом включение напряжение упало до 2,81V сегодня напряжение = 2,81V, имеется небольшая просадка напряжения при передачи вероятно из-за малой ёмкости танталового конденсатора нужно поставить >150 мкф 6,3V. Раньше без танталового конденсатора просадка была больше, вероятно из-за этого быстро разряжалась батарейка.
Спасибо kip96, так как Он использовал танталовый конденсатор, поэтому и Я решил использовать кондёр.
Фьюзы оставил такие же, как в комментарии №12, так как при этом наименьшее потребление тока, добавил только танталовый конденсатор.

15 Valera18   (21.09.2013 21:22) [Материал]
kip96 использует Atmega48, я думаю у Attiny2313a потребление меньше.
Буду проводить полевые испытания Attiny2313a + nRF24L01 + CR2032 + решил ещё подпаять танталовый конденсатор на 47 мкФ. Посмотрю что выйдет.

+1   Спам
14 kip96   (21.09.2013 20:21) [Материал]
Ну так здесь смотрел? http://avrproject.ru/forum/3-138-1. Уже пол года без перерыва работает,каждые 8 сек. отправляет данные. За это время напряжение на CR2032 упало на 0,04 вольта

13 Valera18   (21.09.2013 19:54) [Материал]
Кто ещё замерял потребление тока у передатчика, какие результаты?

12 Valera18   (21.09.2013 19:07) [Материал]
Давно уже пробовал делать пульт с режимом энергосбережения, но свернул проект из-за того что батарейка CR2032 разряжалась за 3 дня.

Сегодня заново сделал макетку:
Передатчик на Attiny2313A-SU + nRF24L01 + две кнопки (подключил к INT0 и INT1), светодиод пока не стал подключать.
Приёмник на Atmega8 + nRF24L01 + светодиод (сигнализирует о приёме).

Как и раньше решил использовать команду Powerdown (спящий режим).
Плюс (+) питания nRF24L01 подключил к ножки Attiny2313, чтобы можно было включать и выключать nRF24L01.
Кнопки и ножку Reset (у Attiny2313) подтянул 10 кОм к плюсу питания.

В прошивке у передатчика выставил частоту на 1 МГц ($crystal = 1000000).
Фьюзы у Attiny2313A-SU запрограммировал так:
http://s2.ipicture.ru/uploads/20130921/j2IRv7ZJ.jpg


Сделав все эти настройки добился НАИМЕНЬШЕГО потребления тока.
Замерил ток потребления с помощью резистора на 1 Ом (1%):
в режиме сна (Powerdown) = 0,0005 А или 000,5 мА
в режиме работы = 0,002 А или 001,8 мА, примерно 2 мА.

Всё же думаю, что потребление высокое...
Сейчас подключил к батарейки CR2032, буду испытывать.

11 active85   (20.09.2013 00:18) [Материал]
Я не сильно ограничен размерами пульта, питать буду li-pol аккумулятором.
Еще вопросик - мне надо 5 кнопок. Добавил в исходник код. Вход назначал и на PD.3 и на PD.1 выход на PC.4 или я не все учел, но на приемнике D5 отрабатывает, а выходные светодиоды ни по одному каналу не включаются. Можно исходник на 5 кнопок?
p.s. правда у меня PD.3 и PD.1 в воздухе висят, но это ведь не должно влиять?

10 exersizze   (19.09.2013 18:52) [Материал]
active85, отлично! чем планируете питать передатчик?

9 active85   (19.09.2013 14:39) [Материал]
Спасибо! Все заработало, правда печатки пришлось в Sprint-Layout 6.0 делать, так как мой ЛУТ из исходника не получался.

8 max   (15.09.2013 17:36) [Материал]
Ну вот еще одно применение модуля. Спасибо!

7 exersizze   (14.09.2013 14:35) [Материал]
У меня стоит 2.3.0.3
74HC14 в SOIC'e, ширина примерно 0,3 мм.

6 top   (14.09.2013 13:49) [Материал]
Версия DipTrace 2.2.0.9 при открытии платы ошибка "Некорректный формат". Поэтому спрошу так)
74hc14 в каком корпусе?
какая ширина дорожек?

5 exersizze   (14.09.2013 12:17) [Материал]
Спасибо. RD3AVJ, помню как еще в марте обсуждали этот пульт и с Максом (Max), говорили о возможности подключения трансивера к attiny2313.
Valera18 , работает уже 3 недели, но уже с перебоями. У CR2016 никудышная емкость, гораздо меньше чем у CR2032. Точных данных не знаю но думаю что где-то около 100мА/ч. Да и к тому же  я использовал всего лишь режим сна микроконтроллера (Idle) а не полное отключение (Powerdown), просто с наскока не получилось что-то у меня с ним и решил пока попробовать простой режим сна. Такчто возможность снизить электропотребление схемы еще есть возможность.

4 Valera18   (13.09.2013 22:59) [Материал]
Пульт на nRF24L01 - это хорошая идея.
Что нравится в модулях nRF24L01 - это простота работы.
Я тоже пробовал делать пульт на nRF24L01, это уже было давно, так-же использовал связку nRF24L01 + Attiny2313a, планировал дистанционно управлять нагрузкой, но свернул проект, так-как батарейки 3V CR2032 хватало на 3 дня в режиме ожидания-энергосбережения. В режиме постоянной работы батарейки 3V CR2032 хватило на 1 день.
Думал проблема в режиме энергосбережения у Attiny2313a, но повторные испытания оказались не успешными.
Ножка питания модуль nRF24L01 была подключена в порту Attiny2313a, поэтому nRF24L01 включался только при режиме передачи, но по какой-то причине сама микросхема Attiny2313a разрежала батарейку за 3 дня.

В общем, буду ожидать полевые ИСПЫТАНИЯ Вашего пульта.
Особенно, интересно как долго у Вас проработает пульт в режиме энергосбережения от батарейки CR2016.

3 alex182   (13.09.2013 19:09) [Материал]
Хорошая штука,особенно 3 режим работы буду пробовать.
Одно но печатки в дипе. Хотел давно предложить переводить в лаут.
Так как все мы пользуемся разными прогами,а лаут маленький и нетребует установки можно даже сфлешки.

2 RD3AVJ   (13.09.2013 18:07) [Материал]
Молодчина! А я все ждал: когда же это пульт в статье проявится))). Отличная статья! nyam

1 top   (13.09.2013 11:22) [Материал]
Вот это новый уровень, вот это супер-круто!))

1-30 31-60 61-90 91-106
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация
Логин:
Пароль: