Связь МК при помощи RF модулей

На сегодняшний день все популярнее становятся примочки, работающие с микроконтроллером по радиочастотным схемам (модулям). В статье мы постараемся разобраться как же все-таки можно работать с двумя модулями — приемником XY-MK-5V и передатчиком XY-FST (FS1000A) (такова маркировка на платах модулей). Внешне же такие модули выглядят следующим образом:

Именно эти модули работают на частоте 433 МГц, но как видно из фото, возможны конфигурации таких же модулей, работающих на частотах 315 МГц и 330 МГц. И насколько мне известно, количество конфигураций по частоте этими тремя не ограничивается. Важно отметить, что оба модуля должны быть настроены на одну и ту же частоту, в противном случае они не будут работать друг с другом. Мало ли кому-нибудь взбредет в голову. 🙂

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

Хочется также отметить несколько фишек таких модулей относительно вышесказанного. Если мы берем два модуля, подключаем их к питанию, к выводу данных приемника подключаем светодиод, а к выводу данных передатчика подключаем или плюс питания или минус. Как ожидается светодиод будет или гореть, или не гореть в зависимости от того куда подключен вывод данных передатчика. А не тут то было! В обоих случаях будем иметь просто хаос на выводе данных приемника, а самые наблюдательные могут заметить в начальный период подключения вывода данных передатчика к плюсу, что светодиод коротко ярко вспыхивает и снова начинает хаотически изменять яркость. Все дело в том, что в радиоэфире очень много помех, особенно в городских условиях. Теперь вы спросите и зачем же нам такое «шило»? Не стоит паниковать! Помните, в начальный момент то светодиод на долю секунда все же срабатывал как ожидалось в самом начале — горит, не горит? Так вот берем и просто увеличиваем частоту импульсов на выводе данных передатчика. Можно подключить генератор туда, а осциллографом наблюдать за состоянием вывода данных приемника. Генератор настраиваем на частоту прямоугольных импульсов от 10 Гц до 10 кГц. И на экране осциллографа происходит то чудо, которого мы ожидаем — прямоугольник, подобный тому, что на генераторе, может быть лишь слегка искаженный.

Забегая немного вперед, осциллограмма от приемника, передается значение в двоичном виде 1110-1110:

А если передатчик находится в состоянии покоя, данные не передаются, осциллограмма от приемника будет иметь просто хаотический набор импульсов:

Данные все же будут передаваться не постоянно, вывод данных передатчика не все время будет принимать сигналы от микроконтроллера, поэтому необходима будет защита от подобного хаотического сигнала (шума).

Итак, рассмотрим параметры модулей приемника и передатчика:

Приемник:

  • напряжение питания 5 В
  • потребляемый ток 4 мА
  • частота 433,92 МГц
  • чувствительность -105дБ
  • антенна — 32 см одножильного провода

Передатчик:

  • расстояние передачи от 20 до 200 метров в зависимости от напряжения питания и условий окружающей среды
  • напряжение питания от 3,5 до 12 В
  • скорость передачи до 4 kb/s
  • мощность передатчика 10 мВт
  • частота 433 МГц
  • длинна антенны 25 см 

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

Рисуем схему электрическую принципиальную:

Схема демонстрирует связь между двумя микроконтроллерами по радио каналу по средствам модулей XY-MK-5V и XY-FST (FS1000A). Прошивка и исходный код для обоих микроконтроллеров прилагаются ниже.

Логика работы следующая — микроконтроллер Attiny13 динамически изменяет переменную и постоянно передает ее значение по радиоканалу на микроконтроллер Atmega8. Во втором микроконтроллере данные принимаются и значение переменной выводится на LCD дисплей. Ради справедливости стоит отметить, что все же иногда проскакивают помехи в полезные данные. Выше было указано, что шум как-то нужно фильтровать. Организована фильтрация так — чтобы принять полезные данные, первый байт передачи должен быть как бы адресным. Как лишь значение первого байта совпадет с заложенным, то второй байт можно смело принимать как полезные данные. Данные передаются несколько раз подряд для предотвращения потери данных. Все достаточно просто. Для увеличения помехоустойчивости длину адресной информации можно увеличить до 2-х или 3-х байт.

Сигнал для передатчика формируется в зависимости от числа, которое нужно передать. Число в двоичном виде представляет собой последовательность нулей и единиц. Таким образом в зависимости от состояния каждого бита в байте на передатчик подается ноль или единица — так формируется прямоугольный (цифровой) сигнал. Приемник этот сигнал принимает и также в зависимости от состояния (ноль или единица) формируется 8 бит байта и получаем переданное число и далее делаем с ним (с принятой информацией) все что нам нужно.

Для индикации используется жидко кристаллический (ЖК или LCD) дисплей. Мною использовался дисплей 2004А — 4 строки по 20 символов, однако можно применять дисплей более привычный — 2 строки по 16 символов. ЖК дисплей подключается к микроконтроллеру по 4-х битной системе. Переменный резистор R2 необходим для регулировки контраста символов на дисплее. Вращением движка этого резистора добиваемся наиболее четких для нас показаний на экране. Подсветка ЖК дисплея организована через вывод «А» и «К» на плате дисплея. Подсветка включается через резистор, ограничивающий ток — R1. Чем больше номинал, тем более тускло будет подсвечиваться дисплей. Но пренебрегать этим резистором не стоит во избежание порчи подсветки. Кнопки S1 и S2 необходимы для сброса микроконтроллеров. К выводам reset обоих микроконтроллеров подключены резисторы, подтягивающие плюс питания к выводу. Это необходимо для предотвращения самопроизвольного перезапуска микроконтроллеров в случае наличия помех или шума. 

Питается вся схема от простого модуля питания на силовом трансформаторе. Переменное напряжение выпрямляется четырьмя диодами VD1 — VD4 марки 1N4007, пульсации сглаживаются конденсаторами C1 и C2. Четыре выпрямительных диода можно заменить одним диодным мостом. Трансформатор применен марки BV EI 382 1189 — преобразует 220 вольт переменного тока в 9 вольт переменного тока. Мощность трансформатора составляет 4,5 Вт, этого вполне достаточно и ещё с запасом. Такой трансформатор можно заменить любым другим силовым трансформатором, подходящим для Вас. Либо данный питающий модуль схемы заменить на импульсный источник напряжения, можно собрать схему обратноходового преобразователя либо применить иже готовый блок питания от телефона, например — все это дело вкусов и потребностей. Выпрямленное напряжение с трансформатора стабилизируется на микросхеме линейного стабилизатора L7805, ее можно заменить на отечественный аналог пяти вольтового линейного стабилизатора КР142ЕН5А, либо применить другу микросхему стабилизатора напряжения в соответствии с подключением ее в схеме (например LM317 или импульсные стабилизаторы LM2576, LM2596, MC34063 и так далее).

Если схему планируется использовать не просто как знакомство с RF модулями, то второму микроконтроллеру будет необходим отдельный источник питания.

Вся схема была собрана и отлаживалась на макетных платах для микроконтроллеров Atmega8 и Attiny13:

Как видно, модули использовались без антенн, конечно же на небольшом расстоянии связь будет осуществляться, но качество связи будет хуже. Моему примеру не стоит следовать в этом плане — не ленитесь сделайте антенны для модулей и припаяйте их. Производитель указывает длину антенн 32 и 25 сантиметров для приемника и передатчика соответственно. Но в примечании пишется, что важно использовать антенну длинной 17 см. Тут я немного и запутался какой же длинны должна быть все же антенна. Также производитель отмечает, что расположение антенны также сказывается на качестве приема сигнала. Здесь наилучшее расположение можно подобрать методом научного тыка — в каком положении лучше сигнал, там и расположить антенну. В китайских устройствах с применением подобных модулей ее делают в виде спирали и располагают просто вдоль приемника.

Несколько слов о применении — при помощи таких схем можно передавать и принимать информацию о температуре или ещё о чем-нибудь в точках, отдаленных от основного микроконтроллера. Также при помощи принятого кода можно управлять какими-либо не сложными схемами дистанционно (по типу включить / выключить). Ну и вообще применять там, где лишь захочется.

Для программирования нужно знать конфигурации фьюз битов микроконтроллеров для Atmega8:

и Attiny13:

К статье прилагаются прошивки для микроконтроллеров, исходники в AVR studio, а также видео демонстрирующее работу схемы и передачу информации от микроконтроллера к микроконтроллеру (tiny13 считает от 0 до 255 и передает постоянно значение другому микроконтроллеру, на котором это значение отображается на экране LCD дисплея, на видео значение будет передаваться до 111 и в этот момент разъединим линию данных от модуля передатчика, цифра останется в последнем переданном состоянии — 111).


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

IC1
МК AVR 8-битATmega81
IC2
МК AVR 8-битATtiny13A1
VR1
Линейный регуляторL7805AB1
VD1-VD4
Выпрямительный диод1N40074
RF1
RF приемникXY-MK-5V1
RF2
RF передатчикFS1000A1
XY-FSTC1, C9
Электролитический конденсатор10 мкФ2
C2, C4-C7, C10
Конденсатор100 нФ6
C3
Электролитический конденсатор1000 мкФ1
C8
Электролитический конденсатор220 мкФ1
R1
Резистор22 Ом1
R2
Подстроечный резистор10 кОм1
R3, R4
Резистор10 кОм2
HG1
LCD-дисплей2004A1
Tr1
ТрансформаторBV EI 382 11891
220В — 9В ACS1, S2
Тактовая кнопкаTC-A1092
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.