Отключаемые счетчики электроэнергии на пульте. Все с документами пломбами, гарантией и без посредников!

Радиомодули nRF24L01

 Давно уже обзавелся я этими модулями, да все никак руки до них не доходили попробовать. В общих чертах, это радиомодули, работающие на частоте 2.4 ГГц с подключением к микроконтроллеру по SPI-интерфейсу. Для работы требуется напряжение в диапазоне от 1,8 до 3,6 вольт, входы/выходы толерантны к 5 вольтам, поэтому при подключении к пяти вольтовым устройствам дополнительные согласующие цепи ставить нет необходимости.

 Для подключения радиомодуля выведена гребенка контактов, распиновка приведена ниже:

 Так как на плате модуля предусмотрен разъем для подключения, для удобства собрал небольшую платку.  На этой отладочной плате стоит микроконтроллер Atmega8A с обвязкой из внешнего кварца, кнопки сброса и пары светодиодов, ответный разъем под модуль и разъем для подключения программатора. 

 

 Схема всего этого дела выглядит следующим образом:

 Для подключения радиомодуля использованы ножки аппаратного SPI микроконтроллера, поэтому разъемы подключения модуля и подключения программатор дублируют друг друга.  Это сделано, чтобы удобней было прошивать микроконтроллер на отладночной платке, например, если использовать программатор который подает на схему 5 вольт, а для NRF24L01 это слишком большое напряжение. Чтобы перепрошить управляющий микроконтроллер, достаточно выдернуть трансивер с платы, перепрошить и всунуть его обратно – без лишней возни с перепайкой.

 Код для работы с модулем целиком взят с примера AN #151 на официальном сайте mcselec.com  Я только разделил программную часть приемника от программной части передатчика.

Код приемника

Код передатчика

 Код приемника залил в микроконтроллер на тестовой платке. Плату подключил к компьютеру через переходник USB-UART на FT232RL, а питание (3,3 вольта) у меня подается через программатор USBasp

 Горит зеленый светодиод (D1) – приемник готов к работе. При приеме данных загорается красный светодиод (D2)

 Вторую схему – для передатчика – собрал на макетке по той же схеме. Разъем на трансивере оказался не подходящим для того чтобы вставлять плату в макетку и поэтому соединил все проводами. 

 Скорость для соединения приемника с терминалом выставляется 19200 бод. При старте приемник напечатает “RX_device” а дальше – то, что получит с передатчика. В примере передаются постоянные данные “AA+BB+CC+11+#посылки”

 На скрине ниже видно, что номера посылки прыгают, это из-за того что я включал/выключал передатчик пока бродил по двору (максимальное удаление метров 30-40). А видимо проверка CRC в приемнике не пропускала некоторые посылки от передатчика из-за ошибок передачи. 

 

 На мое удивление, когда искал примеры использования этих трансиверов с Bascom-AVR, ничего кроме вышеозвученного апнота #151 не находилось. Хотя в среде ардуинщиков эти трансиверы весьма распространены и под них написано уже куча кода и библиотек. Надо исправлять ситуацию 🙂 Особенно радует цена на них – мне мои достались по 5$ за пару http://www.ebay.com/). 

 Сначала у меня возникли проблемы с зависанием модуля при передаче данных, но спасибо товарищу Valera18 который протестировал эти модули и указал на существующие ошибки в коде. Теперь работает как надо!

Ниже доступны для скачивания материалы статьи:

печатная плата под модуль nRF24L01 в формате DipTrace

исходники и прошивки

документация на чип трансивера

 

>>>использование радиомодулей NRF24L01

Оптимизированный код от пользователя Valera18

В коде удаленны не используемые (действия и регистры).

Данная прошивка передаёт данные “AA+BB+CC+11+№посылки”.

Внимание!!! прошивка только для “ПЕРЕДАТЧИКА” Attiny2313, специально оптимизирована, занимает 37% в памяти.http://avrproject.ru/nrf24l01/peredatchik_dlja_attiny2313.bas

Внимание!!! прошивка только для “ПЕРЕДАТЧИКА” Atmega8, специально оптимизирована, занимает 9% в памяти.http://avrproject.ru/nrf24l01/peredatchik_dlja_atmega8.bas

Внимание!!! прошивка только для “ПРИЁМНИКА” Atmega8, специально оптимизирована, занимает 11% в памяти.http://avrproject.ru/nrf24l01/priemnik_dlja_atmega8.bas

Теперь для проектов свободного места в памяти “много”.


Взято с: avrproject.ru


Категория: AVR
Метки:

Написать коментарий

*
= 5 + 6

Добавить изображение

Последние статьи