-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRF433Transmitter.ino
63 lines (57 loc) · 1.25 KB
/
RF433Transmitter.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <VirtualWire.h>
#define pinLED 1
#define pinTX 3
#define repeatTX 33
struct package
{
uint8_t sender;
uint8_t session;
uint8_t iteration;
int16_t data1;
int16_t data2;
int16_t data3;
};
typedef struct package Package;
Package data;
uint8_t buflen = sizeof(data);
uint8_t buf[sizeof(data)];
void setup() {
pinMode(pinLED, OUTPUT);
pinMode(pinTX, OUTPUT);
data.sender = 111;
data.data1 = 0;
data.data2 = 0;
data.data3 = 0;
vw_set_tx_pin(pinTX);
vw_setup(2048);
randomSeed(analogRead(0));
}
void loop() {
digitalWrite(pinLED, HIGH);
while (data.iteration < repeatTX)
{
CopyPackagetoBuffer(buf);
vw_send((uint8_t *)&buf, buflen);
vw_wait_tx();
data.iteration++;
data.data3++;
}
digitalWrite(pinLED, LOW);
data.session++;
data.iteration = 0;
data.data1 = random(32767);
data.data2 = random(32767);
delay(5000);
}
void CopyPackagetoBuffer(uint8_t *arr)
{
arr[0] = data.sender;
arr[1] = data.session;
arr[2] = data.iteration;
arr[3] = data.data1 & 0xff;
arr[4] = (data.data1 >> 8) & 0xff;
arr[5] = data.data2 & 0xff;
arr[6] = (data.data2 >> 8) & 0xff;
arr[7] = data.data3 & 0xff;
arr[8] = (data.data3 >> 8) & 0xff;
}