Описание библиотеки:
Библиотека использует внешнее прерывание для получения данных с приёмника. В связи с чем приёмник может быть подключен только к выводу использующему внешнее прерывание. Назначение и синтаксис функций используемых в данной библиотеке аналогичен назначению функций библиотеки 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( ССЫЛКА_НА_МАССИВ , КОЛИЧЕСТВО_БАЙТ );
- Параметры:
- ССЫЛКА_НА_МАССИВ - ссылка на массив любого типа (в том числе и на строку), в который требуется прочитать данные.
- КОЛИЧЕСТВО_БАЙТ - число определяющее, какое количество байт требуется прочитать.
- Возвращаемые значения: Нет.
- Примечание:
- Если указанное количество байт больше размера массива на который ссылается ссылка, то данные запишутся за пределы массива, что может вызвать некорректную работу скетча.
- Если указанное количество байт больше чем реально принято, то в массив запишутся только реально принятые байты, а оставшиеся байты массива останутся без изменений.