0
КОРЗИНА
0 ТОВАРА

Библиотека iarduino_RF433 для работы с радио модулями на 433 МГц

tremaru / iarduino_RF433

★ Обновлено: 16:30 23.03.2021 ☆ Создан: 19:10 21.05.2019

Релизы

archive
23.03.2021
Cкачать

Описание библиотеки:

Библиотека использует внешнее прерывание для получения данных с приёмника. В связи с чем приёмник может быть подключен только к выводу использующему внешнее прерывание. Назначение и синтаксис функций используемых в данной библиотеке аналогичен назначению функций библиотеки RF24, что облегчает написание и восприятие скетчей для разных типов модулей. Достоверность полученных данных проверяется в библиотеке передачей и проверкой циклически избыточного кода.

При подключении библиотеки создается отдельный объект для приёмника (если он используется) и отдельный объект для передатчика (если он используется), что экономит память, если используется только передатчик или только приёмник.

Подключение библиотеки:

Для передатчика:

#include <iarduino_RF433_Transmitter.h> // Подключаем библиотеку для работы с передатчиком FS1000A
iarduino_RF433_Transmitter radioTX( №_ВЫВОДА ); // Создаём объект radioTX с указанием вывода подключённого к передатчику

Для приёмника:

#include <iarduino_RF433_Receiver.h> // Подключаем библиотеку для работы с приёмником MX-RM-5V
iarduino_RF433_Receiver radioRX( №_ВЫВОДА ); // Создаём объект radioRX с указанием вывода подключённого к приёмнику

Выводы к которым можно подключить приёмник:
Плата Arduino Выводы использующие внешнее прерывание
Uno, ProMini, Nano, Ethernet 2, 3
Leonadro, Micro 2, 3, 0, 1, 7
Mega 2560 2, 3, 18, 19, 20, 21
Due Любые выводы

Функции для работы с передатчиком:

Подробное описание работы с библиотекой, находится в разделе Урок 26.6 Соединяем две arduino по радиоканалу 433 МГц.

Функция begin();
  • Назначение: Инициализация передатчика
  • Синтаксис: begin( [СКОРОСТЬ] );
  • Параметры:
    • СКОРОСТЬ - не обязательный параметр, целое число, указывающее скорость передачи данных (бит/сек).
      Если скорость указана и её не требуется менять, то можно не вызывать функцию setDataRate().
  • Возвращаемые значения: Нет.
  • Примечание:
    • Функция вызывается 1 раз в коде setup.
    • Скорость передачи данных должна совпадать, как для передатчика так и для приёмника.
Функция setDataRate();
  • Назначение: Указание или изменение скорости передачи данных.
  • Синтаксис: setDataRate( СКОРОСТЬ );
  • Параметры:
    • СКОРОСТЬ - целое число, указывающее скорость передачи данных (бит/сек).
  • Возвращаемые значения: Нет.
  • Примечание:
    • Если скорость указана при вызове функции begin() и её не требуется менять, то данную функцию можно не вызывать.
    • Скорость передачи данных должна совпадать, как для передатчика так и для приёмника.
    • Скорость можно указать как целым числом, так и константами:
      • i433_5KBPS
      • i433_4KBPS
      • i433_3KBPS
      • i433_2KBPS
      • i433_1KBPS
      • i433_500BPS
      • i433_100BPS
    • Скорость можно менять во время работы передатчика.
Функция openWritingPipe();
  • Назначение: Открытие трубы для передачи данных
  • Синтаксис: openWritingPipe( НОМЕР_ТРУБЫ );
  • Параметры:
    • НОМЕР_ТРУБЫ - целое число, от 0 до 7.
  • Возвращаемые значения: Нет.
  • Примечание:
    • Номер трубы это адрес передатчика, по которому приёмник «решит» получать или нет отправленные данные.
    • Передатчик может передавать данные только по одной из труб (от 0 до 7)
    • Номер трубы можно менять во время работы передатчика.
Функция write();
  • Назначение: Передача данных.
  • Синтаксис: write( ССЫЛКА_НА_МАССИВ , КОЛИЧЕСТВО_БАЙТ );
  • Параметры:
    • ССЫЛКА_НА_МАССИВ - ссылка на массив любого типа (в том числе и на строку), данные которого требуется передать.
    • КОЛИЧЕСТВО_БАЙТ - число определяющее, какое количество байт требуется передать.
  • Возвращаемые значения: Нет.
  • Примечание: Если Вы используете несколько передатчиков, то используйте интервалы между передачей данных.

Функции для работы с приёмником:

Функция begin();
  • Назначение: Инициализация приёмника
  • Синтаксис: begin( [СКОРОСТЬ] );
  • Параметры:
    • СКОРОСТЬ - не обязательный параметр, целое число, указывающее скорость приёма данных (бит/сек).
      Если скорость указана и её не требуется менять, то можно не вызывать функцию setDataRate().
  • Возвращаемые значения: Нет.
  • Примечание:
    • Функция вызывается 1 раз в коде setup.
    • Скорость приёма данных должна совпадать, как для передатчика так и для приёмника.
Функция setDataRate();
  • Назначение: Указание или изменение скорости приёма данных.
  • Синтаксис: setDataRate( СКОРОСТЬ );
  • Параметры:
    • СКОРОСТЬ - целое число, указывающее скорость приёма данных (бит/сек).
  • Возвращаемые значения: Нет.
  • Примечание:
    • Если скорость указана при вызове функции begin() и её не требуется менять, то данную функцию можно не вызывать.
    • Скорость приёма данных должна совпадать, как для передатчика так и для приёмника.
    • Скорость можно указать как целым числом, так и константами:
      • i433_5KBPS
      • i433_4KBPS
      • i433_3KBPS
      • i433_2KBPS
      • i433_1KBPS
      • i433_500BPS
      • i433_100BPS
    • Скорость можно менять во время работы приёмника, но если во время изменения скорости принимался пакет данных, он будет пропущен.
Функция openReadingPipe();
  • Назначение: Открытие трубы для приёма данных
  • Синтаксис: openReadingPipe( [НОМЕР_ТРУБЫ] );
  • Параметры:
    • НОМЕР_ТРУБЫ - необязательный параметр, целое число, от 0 до 7.
  • Возвращаемые значения: Нет.
  • Примечание:
    • Номер трубы это адрес передатчика (от 0 до 7), открывая трубу мы соглашаемся принимать данные от указанного передатчика.
    • Функцию можно вызвать несколько раз, открывая несколько труб для приёма данных.
    • Если вызвать функцию без параметра, то будут открыты все трубы от 0 до 7.
Функция closeReadingPipe();
  • Назначение: Закрытие трубы от приёма данных
  • Синтаксис: closeReadingPipe( [НОМЕР_ТРУБЫ] );
  • Параметры:
    • НОМЕР_ТРУБЫ - необязательный параметр, целое число, от 0 до 7.
  • Возвращаемые значения: Нет.
  • Примечание:
    • Действие противоположное функции openReadingPipe().
    • Функцию можно вызвать несколько раз, закрывая несколько труб от приёма данных.
    • Если вызвать функцию без параметра, то будут закрыты все трубы от 0 до 7.
Функция startListening();
  • Назначение: Включение прослушивания открытых труб
  • Синтаксис: startListening();
  • Параметры: Нет.
  • Возвращаемые значения: Нет.
  • Примечание: Открывать и закрывать трубы, можно и после начала их прослушивания.
Функция stopListening();
  • Назначение: Выключение прослушивания открытых труб
  • Синтаксис: stopListening();
  • Параметры: Нет.
  • Возвращаемые значения: Нет.
  • Примечание: Данная функция отключает обработку внешнего прерывания, что может ускорить выполнение скетча.
Функция available();
  • Назначение: Проверка наличия принятых данных, доступных для чтения функцией read()
  • Синтаксис: available( [ССЫЛКА_НА_ПЕРЕМЕННУЮ] );
  • Параметры:
    • ССЫЛКА_НА_ПЕРЕМЕННУЮ - необязательный параметр, ссылка на переменную типа uint8_t, в которую будет записан номер трубы, если данные приняты и доступны для чтения.
  • Возвращаемые значения: true / false - имеются данные доступные для чтения или нет.
  • Примечание: По номеру трубы можно определить, данные какого передатчика были приняты.
Функция read();
  • Назначение: Передача данных.
  • Синтаксис: read( ССЫЛКА_НА_МАССИВ , КОЛИЧЕСТВО_БАЙТ );
  • Параметры:
    • ССЫЛКА_НА_МАССИВ - ссылка на массив любого типа (в том числе и на строку), в который требуется прочитать данные.
    • КОЛИЧЕСТВО_БАЙТ - число определяющее, какое количество байт требуется прочитать.
  • Возвращаемые значения: Нет.
  • Примечание:
    • Если указанное количество байт больше размера массива на который ссылается ссылка, то данные запишутся за пределы массива, что может вызвать некорректную работу скетча.
    • Если указанное количество байт больше чем реально принято, то в массив запишутся только реально принятые байты, а оставшиеся байты массива останутся без изменений.
Гарантии и возврат Используя сайт Вы соглашаетесь с условями
Есть вопрос?