upd
This commit is contained in:
@@ -1,39 +1,53 @@
|
||||
// демо-пример: инициализация и настройки
|
||||
// крупный приёмник SYN480R [VCC: 3.3-5.5V, logic: VCC]
|
||||
// или MX-RM-5V (RF-5V) [VCC: 5V, logic: 5V]
|
||||
// демо-пример приёма в прерывании
|
||||
// SYN480R, крупный чип: 3.3-5.5V
|
||||
// MX-RM-5V (RF-5V): 5V
|
||||
// RX470 (WL101-341): 3-5V
|
||||
|
||||
// дефайны перед подключением библиотеки
|
||||
//#define G433_MANCHESTER // интерфейс Manchester Coding для экспериментов =)
|
||||
//#define G433_SPEED 1000 // скорость 100-8000 бит/с, по умолч. 2000 бит/с
|
||||
//#define G433_SPEED 2000 // скорость 100-10000 бит/с, по умолч. 2000 бит/с
|
||||
|
||||
#include <Gyver433.h>
|
||||
//Gyver433_RX<пин> rx;
|
||||
//Gyver433_RX<пин, буфер> rx;
|
||||
//Gyver433_RX<пин, буфер, CRC> rx;
|
||||
|
||||
// пин: цифровой пин
|
||||
// буфер: размер буфера в байтах. По умолч. 64
|
||||
// CRC: проверка целостности данных: G433_CRC8 (надёжный), G433_XOR (лёгкий), G433_NOCRC (отключено). По умолч. G433_CRC8
|
||||
// буфер: размер приёмного буфера в байтах. По умолч. 64
|
||||
|
||||
#include <Gyver433.h>
|
||||
Gyver433_RX<2, 20> rx;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
// взводим прерывания по CHANGE
|
||||
attachInterrupt(0, isr, CHANGE);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// "тик" опрашивает радио и вернёт количество успешно принятых байт
|
||||
// tick принимает асинхронно, но может ловить ошибки при загруженном коде
|
||||
// tickWait блокирует выполнение, но принимает данные чётко
|
||||
// тикер вызывается в прерывании
|
||||
void isr() {
|
||||
rx.tickISR();
|
||||
}
|
||||
|
||||
//if (rx.tick()) {
|
||||
if (rx.tickWait()) {
|
||||
// принятые данные доступны в .buffer
|
||||
// и имеют размер .size
|
||||
Serial.write(rx.buffer, rx.size);
|
||||
void loop() {
|
||||
// gotData() вернёт количество удачно принятых байт
|
||||
if (rx.gotData()) { // если больше 0
|
||||
// ЧИТАЕМ. СПОСОБ 1
|
||||
// я знаю, что передатчик отправляет char[15]
|
||||
char data[15];
|
||||
|
||||
// читаем принятые данные в data
|
||||
// если данные совпадают по размеру - ок
|
||||
if (rx.readData(data)) Serial.print(data);
|
||||
else Serial.print("Data error");
|
||||
|
||||
// выведем также качество связи
|
||||
// ЧИТАЕМ. СПОСОБ 2
|
||||
// вывести сырые данные из буфера в порт
|
||||
//Serial.write(rx.buffer, rx.size);
|
||||
|
||||
// выведем также качество соединения
|
||||
Serial.print(", RSSI: ");
|
||||
Serial.println(rx.getRSSI());
|
||||
}
|
||||
|
||||
// имитация загруженного кода. Не влияет на приём
|
||||
delay(50);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user