This commit is contained in:
Alex
2021-06-17 12:49:46 +03:00
parent bd9e4b19ae
commit 48e1fa1e98
12 changed files with 297 additions and 247 deletions
+23 -18
View File
@@ -4,7 +4,7 @@
Библиотека для радиомодулей 433 МГц и Arduino
- Супер лёгкая либа, заведётся даже на тини13 (отправка)
- Поддержка кривых китайских модулей
- Интерфейс Manchester Coding (v1.1)
- Интерфейс Manchester или Pulselength
- Встроенный CRC контроль целостности (CRC8 или XOR)
- Ускоренный алгоритм IO для AVR Arduino
- Опционально работа в прерывании (приём данных)
@@ -36,18 +36,26 @@
<a id="init"></a>
## Инициализация
```cpp
//Классы:
Gyver433_RX // приёмник
Gyver433_TX // передатчик
// === КЛАССЫ ===
// Gyver433_RX - приёмник
// Gyver433_TX - передатчик
// === ИНИЦИАЛИЗАЦИЯ ===
Gyver433_xx<пин> xx;
Gyver433_xx<пин, буфер> xx;
Gyver433_xx<пин, буфер, CRC> xx;
// пин: цифровой пин
// буфер: размер буфера в байтах. На "ручную" отправку буфер не нужен (пример raw_tx). По умолч. 64 байта
// буфер: размер буфера в байтах. На "ручную" отправку буфер не нужен. По умолч. 64
// CRC: проверка целостности данных: G433_CRC8 (надёжный), G433_XOR (лёгкий), G433_NOCRC (отключено). По умолч. G433_CRC8
// Дефайны-настройки перед подключением библиотеки
#define G433_SLOW_MODE // "медленный режим" для синих модулей SYN480R
#define G433_SPEED 1000 // скорость 100-8000 бит/с, по умолч. 2000 бит/с
// === ДЕФАЙНЫ-НАСТРОЙКИ ===
// вызывать перед подключением библиотеки
#define G433_FAST // [TX] короткая синхронизация для зелёных модулей
#define G433_MEDIUM // [TX] средняя синхронизация при отправке на SYN480R ЧАЩЕ 400мс (активно по умолчанию)
#define G433_SLOW // [TX] длинная синхронизация при отправке на SYN480R РЕЖЕ 400мс
#define G433_MANCHESTER // [должно быть одинаково на RX и TX] интерфейс Manchester Coding для экспериментов =)
#define G433_SPEED 1000 // [должно быть одинаково на RX и TX] скорость 100-8000 бит/с, по умолч. 2000 бит/с
```
<a id="usage"></a>
@@ -79,7 +87,6 @@ uint8_t G433_crc_xor(uint8_t *buffer, uint8_t size); // ручной CRC XOR
![Logo](/doc/scheme.jpg)
### Отправка
```cpp
#define G433_SLOW_MODE
#include <Gyver433.h>
Gyver433_TX<2, 20> tx; // указали пин и размер буфера
@@ -101,7 +108,6 @@ void loop() {
### Приём
```cpp
#define G433_SLOW_MODE
#include <Gyver433.h>
Gyver433_RX<2, 20> rx; // указали пин и размер буфера
@@ -110,8 +116,8 @@ void setup() {
}
void loop() {
if (rx.tickWait()) {
Serial.write(rx.buffer, rx.size);
if (rx.tickWait()) { // если успешно принято больше 0
Serial.write(rx.buffer, rx.size); // выводим
Serial.println();
}
}
@@ -119,7 +125,6 @@ void loop() {
### Приём в прерывании
```cpp
#define G433_SLOW_MODE
#include <Gyver433.h>
Gyver433_RX<2, 20> rx; // указали пин и размер буфера
@@ -129,16 +134,15 @@ void setup() {
}
void isr() {
rx.tickISR(); // спец тикер вызывается в прерывании
rx.tickISR(); // спец. тикер вызывается в прерывании
}
void loop() {
// вернёт количество удачно принятых в прерывании байт
if (rx.gotData()) {
Serial.write(rx.buffer, rx.size);
if (rx.gotData()) { // если успешно принято больше 0
Serial.write(rx.buffer, rx.size); // выводим
Serial.println();
}
delay(200); // имитация загруженного кода
delay(200); // имитация загруженного кода
}
```
@@ -146,6 +150,7 @@ void loop() {
## Версии
- v1.0
- v1.1 - оптимизация, новый интерфейс, поддержка дешёвых синих модулей, работа в прерывании
- v1.2 - улучшение качества связи, оптимизация работы в прерывании
<a id="feedback"></a>
## Баги и обратная связь