Обзор радиомодуля на FS1000A (RF-5V)

Обзор радиомодуля на 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 показана на рисунке ниже.

Обзор радиомодуля на FS1000A (RF-5V)

Программа для передатчика:
Теперь, когда схема собрана, необходимо подготовить скетч и загрузить его в соответствующую плату Arduino. Прежде чем копировать скетч, необходимо установить дополнительную библиотеку «RadioHead» которая не входит в среду разработки Arduino IDE.
В примере просто отправляем текстовое сообщение от передатчика к получателю. Будет полезно понять, как использовать модули, и это может послужить основой для более практических экспериментов и проектов.

#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» для работы с функциями библиотеки.

#include <RH_ASK.h>
#include <SPI.h>
RH_ASK rf_driver;

В void setup() инициализируем библиотеку RadioHead.

rf_driver.init();

В void loop() подготавливаем сообщение, для этого текст «Hello RobotChip» сохраняем в «msg», не более 27 символа, в моем случае 15.

const char *msg = "Hello RobotChip";

Теперь, сообщение необходимо передать с помощью функции send(), а функцией waitPacketSent() ожидаем завершение передачи данных.

rf_driver.send((uint8_t *)msg, strlen(msg));
rf_driver.waitPacketSent();
delay(1000);

Программа для приемника:
Подключите вторую плату Arduino к компьютеру и загрузите следующий скетч:

#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, &amp;buflen))           // Включение радиомодуля и чтение сообщения 
    {
      Serial.print("Message Received: ");       // Печать текста
      Serial.println((char*)buf);               // Печать полученного сообщения
    }
}

Скачать скетч

Описание скетча:
Как и скетч передатчика, начинается с загрузки библиотек «RadioHead» и «SPI» и создания объект «ASK«.

#include <RH_ASK.h>
#include <SPI.h> 
RH_ASK rf_driver;

В void setup() инициализируем библиотеку RH_ASK, а так же настраиваем «Последовательную связь«.

rf_driver.init();
Serial.begin(9600);

В void loop() создаем создаем буфер размером с передаваемое сообщение, в нашем случае это 15.

uint8_t buf[11];
uint8_t buflen = sizeof(buf);

Далее мы вызываем recv() функцию, которая включает приемник

if (rf_driver.recv(buf, &amp;buflen))
{
  Serial.print("Message Received: ");
  Serial.println((char*)buf);         
}

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

Обзор радиомодуля на FS1000A (RF-5V)
Обзор радиомодуля на FS1000A (RF-5V)

Ссылки
 Библиотека RadioHead Library

Купить на Aliexpress
  Контроллер Arduino UNO R3
  Радиомодуль на FS1000A, RF-5V, 433 МГц
  Комплект проводов DuPont, 2,54 мм, 20 см

Купить в Самаре и области
  Купить контроллер Arduino UNO R3
  Радиомодуль на FS1000A, RF-5V, 433 МГц
  Купить комплект проводов DuPont, 2,54 мм, 20 см

Читайте также:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *