v1.1
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
// крупный приёмник SYN480R [VCC: 3.3-5.5V, logic: VCC]
|
||||
// или MX-RM-5V (RF-5V) [VCC: 5V, logic: 5V]
|
||||
|
||||
// "медленный режим" для синих модулей SYN480R
|
||||
// Объявляется перед подключением библиотеки
|
||||
// Зелёным модулям не нужен!
|
||||
#define G433_SLOW_MODE
|
||||
|
||||
// можно указать скорость, по умолч. стоит 2000 бит/с
|
||||
// рабочий диапазон: 100-8000 бит/с
|
||||
//#define G433_SPEED 1000
|
||||
|
||||
#include <Gyver433.h>
|
||||
// Gyver433_TX<пин, буфер, CRC>
|
||||
// пин: цифровой пин
|
||||
// буфер: размер приёмного буфера в байтах
|
||||
// CRC: проверка целостности данных: G433_CRC8 (надёжный), G433_XOR (лёгкий), G433_NOCRC (отключено). По умолч. G433_CRC8
|
||||
Gyver433_RX<2, 20> rx; // указали пин и размер буфера
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// "тик" опрашивает радио и вернёт количество успешно принятых байт
|
||||
// tick принимает асинхронно, но может ловить ошибки при загруженном коде
|
||||
// tickWait блокирует выполнение, но принимает данные чётко
|
||||
|
||||
//if (rx.tick()) {
|
||||
if (rx.tickWait()) {
|
||||
// принятые данные доступны в .buffer
|
||||
// и имеют размер .size
|
||||
Serial.write(rx.buffer, rx.size);
|
||||
Serial.println();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// мелкий передатчик SYN115 [VCC: 1.8-3.6V, logic: VCC]
|
||||
// или FS1000A [VCC: 3-12V, logic: 5V]
|
||||
|
||||
// "медленный режим" для синих модулей SYN115
|
||||
// Объявляется перед подключением библиотеки
|
||||
// зелёным модулям не нужен!
|
||||
#define G433_SLOW_MODE
|
||||
|
||||
// можно указать скорость, по умолч. стоит 2000 бит/с
|
||||
// рабочий диапазон: 100-8000 бит/с
|
||||
//#define G433_SPEED 1000
|
||||
|
||||
#include <Gyver433.h>
|
||||
// Gyver433_TX<пин, буфер, CRC>
|
||||
// пин: цифровой пин
|
||||
// буфер: размер буфера в байтах. На "ручную" отправку буфер не нужен. По умолч. 64
|
||||
// CRC: проверка целостности данных: G433_CRC8 (надёжный), G433_XOR (лёгкий), G433_NOCRC (отключено). По умолч. G433_CRC8
|
||||
Gyver433_TX<2, 20> tx; // указали пин и размер буфера
|
||||
|
||||
void setup() {
|
||||
}
|
||||
|
||||
char data[] = "Hello from #xx"; // строка для отправки
|
||||
byte count = 0; // счётчик для отправки
|
||||
|
||||
void loop() {
|
||||
// добавляем счётчик в строку
|
||||
data[12] = (count / 10) + '0';
|
||||
data[13] = (count % 10) + '0';
|
||||
if (++count >= 100) count = 0;
|
||||
|
||||
// отправка данных любого типа. Блокирующая на период отправки
|
||||
tx.sendData(data);
|
||||
|
||||
// отправка 10 раз в сек
|
||||
delay(100);
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// приём в прерывании. Отправляет пример demo_tx
|
||||
#define G433_SLOW_MODE
|
||||
|
||||
#include <Gyver433.h>
|
||||
Gyver433_RX<2, 20> rx; // указали пин и размер буфера
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
// взводим прерывания по CHANGE
|
||||
attachInterrupt(0, isr, CHANGE);
|
||||
}
|
||||
|
||||
void isr() {
|
||||
rx.tick(); // тикер вызывается в прерывании
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// .gotData() вернёт true при получении корректных данных
|
||||
// и сам сбросится до следующего приёма
|
||||
// внутри gotData() встроен тик!
|
||||
if (rx.gotData()) {
|
||||
Serial.write(rx.buffer, rx.size);
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
// имитация загруженного кода
|
||||
delay(200);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// обмен сырыми данными без CRC и буфера на отправку
|
||||
|
||||
#define G433_SLOW_MODE
|
||||
#include <Gyver433.h>
|
||||
Gyver433_RX<2, 20, G433_NOCRC> rx; // буфер на приём нужен!
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
if (rx.tickWait()) {
|
||||
Serial.write(rx.buffer, rx.size);
|
||||
Serial.println();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// обмен сырыми данными без CRC и буфера на отправку
|
||||
|
||||
#define G433_SLOW_MODE
|
||||
#include <Gyver433.h>
|
||||
Gyver433_TX<2, 0, G433_NOCRC> tx;
|
||||
|
||||
void setup() {
|
||||
}
|
||||
|
||||
char data[] = "Hello from #xx"; // строка для отправки
|
||||
byte count = 0; // счётчик для отправки
|
||||
|
||||
void loop() {
|
||||
// добавляем счётчик в строку
|
||||
data[12] = (count / 10) + '0';
|
||||
data[13] = (count % 10) + '0';
|
||||
if (++count >= 100) count = 0;
|
||||
|
||||
// отправка данных типа byte*
|
||||
tx.write(data, sizeof(data));
|
||||
|
||||
// отправка 10 раз в сек
|
||||
delay(100);
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
// крупный приёмник 5.0 SYN480R
|
||||
|
||||
#define G433_BUFSIZE 50 // размер буфера
|
||||
#define G433_SPEED 2000 // скорость бит/сек (минимальная)
|
||||
|
||||
#include <Gyver433.h>
|
||||
Gyver433_RX rx(2);
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
|
||||
void loop() {
|
||||
// tick принимает асинхронно, но может ловить ошибки при загруженном коде
|
||||
// tickWait блокирует выполнение, но принимает данные чётко
|
||||
if (rx.tickWait()) {
|
||||
byte buf[64];
|
||||
rx.readData(buf);
|
||||
for (byte i = 0; i < rx.size; i++) Serial.write(buf[i]);
|
||||
}
|
||||
}
|
||||
@@ -1,28 +1,20 @@
|
||||
// крупный приёмник 5.0V SYN480R
|
||||
#define G433_BUFSIZE 50 // размер буфера
|
||||
#define G433_SPEED 2000 // скорость бит/сек (минимальная)
|
||||
// выводим данные на дисплей. Отправляет пример demo_tx
|
||||
|
||||
#include <Gyver433.h>
|
||||
Gyver433_RX rx(2); // указали пин
|
||||
Gyver433_RX<2> rx; // указали пин
|
||||
|
||||
#include <Wire.h>
|
||||
#include <LiquidCrystal_I2C.h>
|
||||
LiquidCrystal_I2C lcd(0x3f, 16, 2); // или 0x27
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
lcd.init();
|
||||
lcd.backlight();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// tick принимает асинхронно, но может ловить ошибки при загруженном коде
|
||||
// tickWait блокирует выполнение, но принимает данные чётко
|
||||
if (rx.tick()) {
|
||||
byte buf[64];
|
||||
rx.readData(buf); // прочитать в buf
|
||||
lcd.clear();
|
||||
lcd.home();
|
||||
for (byte i = 0; i < rx.size; i++) lcd.write(buf[i]);
|
||||
lcd.home();
|
||||
for (byte i = 0; i < rx.size; i++) lcd.write(rx.buffer[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
// передача структуры данных
|
||||
// крупный приёмник 5.0V SYN480R
|
||||
#define G433_BUFSIZE 50 // размер буфера
|
||||
#define G433_SPEED 2000 // скорость бит/сек (минимальная)
|
||||
// приём структуры данных
|
||||
|
||||
#define G433_SLOW_MODE
|
||||
#include <Gyver433.h>
|
||||
Gyver433_RX rx(2); // указали пин
|
||||
Gyver433_RX<2, 10> rx; // указали пин и размер буфера
|
||||
|
||||
// формат пакета для приёма (такой же как отправляется)
|
||||
struct dataPack {
|
||||
@@ -19,11 +17,9 @@ void setup() {
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// tick принимает асинхронно, но может ловить ошибки при загруженном коде
|
||||
// tickWait блокирует выполнение, но принимает данные чётко
|
||||
if (rx.tick()) {
|
||||
dataPack data;
|
||||
rx.readData(data); // прочитать в buf
|
||||
dataPack data; // "буферная" структура
|
||||
rx.readData(data); // переписываем данные в неё
|
||||
|
||||
Serial.println("Received:");
|
||||
Serial.println(data.counter);
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
// мелкий передатчик 3.6V SYN115
|
||||
#define G433_BUFSIZE 50 // размер буфера
|
||||
#define G433_SPEED 2000 // скорость бит/сек (минимальная)
|
||||
#include <Gyver433.h>
|
||||
Gyver433_TX tx(2); // указали пин
|
||||
|
||||
void setup() {
|
||||
}
|
||||
|
||||
char data[] = "Hello from #xx";
|
||||
byte count = 0;
|
||||
void loop() {
|
||||
data[12] = (count / 10) + '0';
|
||||
data[13] = (count % 10) + '0';
|
||||
if (++count >= 100) count = 0;
|
||||
tx.sendData(data);
|
||||
delay(100);
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
// передача структуры данных
|
||||
// мелкий передатчик 3.6V SYN115
|
||||
|
||||
#define G433_BUFSIZE 50 // размер буфера
|
||||
#define G433_SPEED 2000 // скорость бит/сек (минимальная)
|
||||
#define G433_SLOW_MODE
|
||||
#include <Gyver433.h>
|
||||
Gyver433_TX tx(2); // указали пин
|
||||
Gyver433_TX<2, 10> tx; // указали пин и размер буфера
|
||||
|
||||
// формат пакета для отправки
|
||||
struct dataPack {
|
||||
@@ -25,6 +23,8 @@ void loop() {
|
||||
data.analog = analogRead(0); // тут ацп
|
||||
data.time = millis(); // тут миллис
|
||||
|
||||
tx.sendData(data);
|
||||
|
||||
Serial.println("Transmit:");
|
||||
Serial.println(data.counter);
|
||||
Serial.println(data.randomNum);
|
||||
@@ -32,6 +32,5 @@ void loop() {
|
||||
Serial.println(data.time);
|
||||
Serial.println();
|
||||
|
||||
tx.sendData(data);
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user