RadioLib/examples/RF69/RF69_Transmit_Blocking/RF69_Transmit_Blocking.ino

100 wiersze
2.6 KiB
Arduino
Czysty Zwykły widok Historia

2018-07-03 10:01:37 +00:00
/*
RadioLib RF69 Blocking Transmit Example
2018-07-23 10:42:22 +00:00
This example transmits packets using RF69 FSK radio module.
Each packet contains up to 64 bytes of data, in the form of:
- Arduino String
- null-terminated char array (C-string)
- arbitrary binary data (byte array)
2019-06-02 13:02:56 +00:00
Using blocking transmit is not recommended, as it will lead
to inefficient use of processor time!
Instead, interrupt transmit is recommended.
For default module settings, see the wiki page
https://github.com/jgromes/RadioLib/wiki/Default-configuration#rf69sx1231
For full API reference, see the GitHub Pages
https://jgromes.github.io/RadioLib/
2018-07-23 10:42:22 +00:00
*/
2018-07-03 10:01:37 +00:00
// include the library
2019-02-08 14:58:29 +00:00
#include <RadioLib.h>
2018-07-03 10:01:37 +00:00
2019-06-02 13:02:56 +00:00
// RF69 has the following connections:
2019-12-27 12:17:01 +00:00
// CS pin: 10
2019-06-02 13:02:56 +00:00
// DIO0 pin: 2
2019-12-27 12:17:01 +00:00
// RESET pin: 3
RF69 radio = new Module(10, 2, 3);
2019-06-02 13:02:56 +00:00
// or using RadioShield
// https://github.com/jgromes/RadioShield
//RF69 radio = RadioShield.ModuleA;
2018-07-03 10:01:37 +00:00
void setup() {
Serial.begin(9600);
// initialize RF69 with default settings
Serial.print(F("[RF69] Initializing ... "));
int state = radio.begin();
2021-11-14 10:40:31 +00:00
if (state == RADIOLIB_ERR_NONE) {
2018-07-03 10:01:37 +00:00
Serial.println(F("success!"));
} else {
2018-07-23 10:42:22 +00:00
Serial.print(F("failed, code "));
Serial.println(state);
while (true);
2018-07-03 10:01:37 +00:00
}
// NOTE: some RF69 modules use high power output,
// those are usually marked RF69H(C/CW).
// To configure RadioLib for these modules,
// you must call setOutputPower() with
// second argument set to true.
/*
Serial.print(F("[RF69] Setting high power module ... "));
state = radio.setOutputPower(20, true);
2021-11-14 10:40:31 +00:00
if (state == RADIOLIB_ERR_NONE) {
Serial.println(F("success!"));
} else {
Serial.print(F("failed, code "));
Serial.println(state);
while (true);
}
*/
2018-07-03 10:01:37 +00:00
}
// counter to keep track of transmitted packets
int count = 0;
2018-07-03 10:01:37 +00:00
void loop() {
Serial.print(F("[RF69] Transmitting packet ... "));
2018-07-14 08:00:31 +00:00
// you can transmit C-string or Arduino string up to 64 characters long
String str = "Hello World! #" + String(count++);
int state = radio.transmit(str);
2018-07-23 10:42:22 +00:00
2018-07-14 08:00:31 +00:00
// you can also transmit byte array up to 64 bytes long
/*
2018-07-23 10:42:22 +00:00
byte byteArr[] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF};
int state = radio.transmit(byteArr, 8);
*/
2018-07-23 10:42:22 +00:00
2021-11-14 10:40:31 +00:00
if (state == RADIOLIB_ERR_NONE) {
2018-07-03 10:01:37 +00:00
// the packet was successfully transmitted
2019-06-16 12:33:59 +00:00
Serial.println(F("success!"));
2018-07-23 10:42:22 +00:00
2021-11-14 10:40:31 +00:00
} else if (state == RADIOLIB_ERR_PACKET_TOO_LONG) {
2018-07-23 10:42:22 +00:00
// the supplied packet was longer than 64 bytes
2019-06-16 12:33:59 +00:00
Serial.println(F("too long!"));
2018-07-23 10:42:22 +00:00
2019-06-02 13:02:56 +00:00
} else {
// some other error occurred
Serial.print(F("failed, code "));
Serial.println(state);
2018-07-03 10:01:37 +00:00
}
// wait for a second before transmitting again
delay(1000);
}