Радиомодули 433МГц подключение к Arduino

Опубликовано 28.08.2013 20:29:00


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

В первую очередь берем 2 платы Arduino и подключаем к ним приемник и передатчик, как показано на рисунке:

Подключение радиоприемника и радиопередатчика к Arduino

 

 


 

Перед тем как преступить к работе, нужно указать, что для полноценной работы, к модулям необходимо припаять антенну. Рекомендуемая длина антенны для передатчиков с частотой 433 МГц равна 17 см.

 

Библиотека необходимая для работы с модулем VirtualWire

Её необходимо распаковать и добавить в папку "libraries" в папке с Arduino IDE. Не забывайте перезагрузить среду, если на момент добавления IDEшка была открыта.

Далее подключаем плату с передатчиком и заливаем следующий код:

 

 
Пример программного кода

 

Разберем этот код для полного понимания.

Во первых мы формируем строку strMsg. Используем тип String, т.к. с ним проще работать (можно конкатенировать его с числами, используя оператор '+').

Поскольку все передатчики работают в одном диапазоне частот, то каждый приемник будет принимать информацию с каждого передатчика находящегося в зоне досягаемости. Для того, чтобы отсеять лишние символы в простейшем случае можно просто предварить команды каким-то специальным символом. В нашем случае это символ 'z'.

Далее передадим символ 'c', который может означать выполнение какой-то команды и число 123, как параметр к этой команде. На практике удобно работать именно таким образом.

После этого преобразовываем тип String к стандартному массиву символов при помощи метода toCharArray и передаем его в команду vw_send.

Наш код будет отправлять строку 'z c 123'.


 

Перейдем к коду приемника:

 

 
Пример программного кода

 

Сообщение будет считано в буфер buf, который нужно разобрать.

В первую очередь проверяем наличие служебного символа 'z', затем считываем код команды и затем преобразовываем строковое представление параметра в число.

Информация получена и разобрана, что делать дальше зависит от конкретной задачи. 

В данной статье рассмотрен простейший вариант общения. В идеале нужно задуматься о кодировании передаваемой информации, т.к. её будут получать не только ваши приемники.


 

P.S. Работая с данными модулями, мы наткнулись на один не приятный подводный камень, а именно конфликт, невозможность работы с библиотекой "servo.h".

Для решения этой проблемы необходимо использовать библиотеку ServoTimer2 единственным отличием которой от стандартной Servo.h является то, что в функцию write необходимо передавать количество микросекунд, подробнее о которых расписано в нашей статье Подключение сервоприводов к Arduino.


 

Купить

Купить в России  Радиомодули 433 МГц


А как же комментарии?