Обзор радиомодуля на FS1000A (RF-5V)
В данной статье расскажу как организовать радио связь между двумя Arduino на популярной частоте 433 МГц с помощью передающего (FS1000A) и принимающего (RF-5V) модуля. Данный модуль подойдет для тех, кому необходим недорогое и компактное устройство, из минусов можно сразу отнести радиус работы (~ 3 м без внешней антенны), а так же данные передаются в одном направлении.
Технические параметры радиомодуля FS1000A (RF-5V)
► Напряжение питания приемника: 5 В
► Частота работы приемника: 433 МГц
► Длина провода антенны приемника: 32 см
► Чувствительность приемника: 105 dB
► Напряжение питания передатчика: 3.5 – 5 В
► Длина провода антенны передатчика: 25 см
► Дальность передачи: 20 – 200 м, в зависимости от напряжения, поданного на передатчик;
► Габариты передатчика: 19,2 х 19,0 (25,0) х 7,5 мм
► Габариты приемника: 30,0 х 13,5 (19,2) х 9,0 мм;
Общие сведения
Давайте рассмотрим поближе данный радио модуль, начнем с передатчика FS1000A, он самый маленький. В центре расположен резонатор FST (LR 443A), настроенный на работу в диапазоне 433.xx МГц, на обратной стороне установлен переключающий транзистор и несколько пассивных компонентов, вот и все. Так же на модуле установлена антенна, но предусмотрен выход для подключения внешний антенны.
Принцип работы прост, если на вход «DATA» подается логическая «1» открывается транзистор и генератор работает, генерируя несущую волну на частоте 433 МГц, а когда на вход «DATA» устанавливается логическая «0», генератор останавливается.
Приемник RF-5V устроен по сложнее, но такой же простой как модуль передатчика. Состоит из радиочастотной схемы и пары операционных усилителей для усиления сигнала от передатчика.
Назначение контактов передающего модуля FS1000A:
► DATA — принимает цифровые данные для передачи.
► VCC и GND — Питание передатчика от 3.5 В до 12 В, чем выше напряжение, тем больше диапазон работы.
Назначение контактов принимающего модуля RF-5V:
► VCC и GND — Питание приемника, 5В.
► DATA — выводят полученные цифровые данные, два центральных вывода связаны между собой.
Подключение передатчика и приемника 433 МГц к Arduino UNO
Необходимые детали:
► Радиомодуль на FS1000A, RF-5V, 433 МГц x 2 шт.
► Arduino UNO R3 (DCCduino, CH340G) x 1 шт.
► Комплект проводов DuPont x 1 шт.
Подключение:
Подключение несложное, для передатчика необходимо три провода. Первым делом, подключаем VCC и GND к выводу 5 В и GND на Arduino, вывод «Data» должен быть подключен к 12 цифровому контакту Arduino.
После подключения передатчика можно перейти к приемнику, необходимо также три провода. Подключаем вывод VCC и GND к выводу 5 В и GND на Arduino. Любой из двух средних выводов «Data» должен быть подключен к 11 цифровому выводу на Arduino. Принципиальную схему подключения радио модуля на 433 МГц и Arduino показана на рисунке ниже.
Программа для передатчика:
Теперь, когда схема собрана, необходимо подготовить скетч и загрузить его в соответствующую плату Arduino. Прежде чем копировать скетч, необходимо установить дополнительную библиотеку «RadioHead» которая не входит в среду разработки Arduino IDE.
В примере просто отправляем текстовое сообщение от передатчика к получателю. Будет полезно понять, как использовать модули, и это может послужить основой для более практических экспериментов и проектов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <RH_ASK.h> // Подключение библиотеки RadioHead #include <SPI.h> // Подключение библиотеки SPI RH_ASK rf_driver; // Cоздаем объект "RH_ASK" для работы с библиотекой RadioHead void setup() { rf_driver.init(); // Инициализация библиотеки RadioHead. } void loop() { const char *msg = "Hello RobotChip"; // Подготовка сообщения rf_driver.send((uint8_t *)msg, strlen(msg)); // Отправка сообщения rf_driver.waitPacketSent(); delay(1000); // Пауза |
Описание скетча:
Программа начинается с подключении библиотек «RH_ASK» и «SPI«. Далее создаем объект «RH_ASK» для работы с функциями библиотеки.
1 2 3 |
#include <RH_ASK.h> #include <SPI.h> RH_ASK rf_driver; |
В void setup() инициализируем библиотеку RadioHead.
1 |
rf_driver.init(); |
В void loop() подготавливаем сообщение, для этого текст «Hello RobotChip» сохраняем в «msg», не более 27 символа, в моем случае 15.
1 |
const char *msg = "Hello RobotChip"; |
Теперь, сообщение необходимо передать с помощью функции send()
, а функцией waitPacketSent()
ожидаем завершение передачи данных.
1 2 3 |
rf_driver.send((uint8_t *)msg, strlen(msg)); rf_driver.waitPacketSent(); delay(1000); |
Программа для приемника:
Подключите вторую плату Arduino к компьютеру и загрузите следующий скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <RH_ASK.h> // Подключение библиотеки RadioHead #include <SPI.h> // Подключение библиотеки SPI RH_ASK rf_driver; // Создаем объект "RH_ASK" для работы с библиотекой RadioHead void setup() { rf_driver.init(); // Инициализация библиотеки RadioHead. Serial.begin(9600); // Настройка последовательной связи } void loop() { uint8_t buf[15]; // Создаем буфер для получения сообщения uint8_t buflen = sizeof(buf); if (rf_driver.recv(buf, &buflen)) // Включение радиомодуля и чтение сообщения { Serial.print("Message Received: "); // Печать текста Serial.println((char*)buf); // Печать полученного сообщения } } |
Описание скетча:
Как и скетч передатчика, начинается с загрузки библиотек «RadioHead» и «SPI» и создания объект «ASK«.
1 2 3 |
#include <RH_ASK.h> #include <SPI.h> RH_ASK rf_driver; |
В void setup() инициализируем библиотеку RH_ASK, а так же настраиваем «Последовательную связь«.
1 2 |
rf_driver.init(); Serial.begin(9600); |
В void loop() создаем создаем буфер размером с передаваемое сообщение, в нашем случае это 15.
1 2 |
uint8_t buf[11]; uint8_t buflen = sizeof(buf); |
Далее мы вызываем recv()
функцию, которая включает приемник
1 2 3 4 5 |
if (rf_driver.recv(buf, &buflen)) { Serial.print("Message Received: "); Serial.println((char*)buf); } |
Затем мы возвращаемся к началу цикла и делаем все заново.
Откройте мониторинг порта, есть схема собрана правильно будет приходить сообщения показанные ниже.
Ссылки
Библиотека RadioHead Library
Купить на Aliexpress
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Радиомодуль на FS1000A, RF-5V, 433 МГц
Комплект проводов DuPont, 2,54 мм, 20 см
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Радиомодуль на FS1000A, RF-5V, 433 МГц
Комплект проводов DuPont, 2,54 мм, 20 см