RadioLib/examples/nRF24/nRF24_Transmit/nRF24_Transmit.ino

96 wiersze
2.5 KiB
Arduino
Czysty Zwykły widok Historia

2019-06-01 18:50:43 +00:00
/*
RadioLib nRF24 Transmit Example
This example transmits packets using nRF24 2.4 GHz radio module.
Each packet contains up to 32 bytes of data, in the form of:
- Arduino String
- null-terminated char array (C-string)
- arbitrary binary data (byte array)
Packet delivery is automatically acknowledged by the receiver.
2019-06-02 13:03:53 +00:00
For default module settings, see the wiki page
https://github.com/jgromes/RadioLib/wiki/Default-configuration#nrf24
2019-06-02 13:03:53 +00:00
For full API reference, see the GitHub Pages
https://jgromes.github.io/RadioLib/
2019-06-01 18:50:43 +00:00
*/
// include the library
#include <RadioLib.h>
2019-06-02 13:03:53 +00:00
// nRF24 has the following connections:
2019-12-27 12:17:34 +00:00
// CS pin: 10
// IRQ pin: 2
// CE pin: 3
nRF24 radio = new Module(10, 2, 3);
2019-06-02 13:03:53 +00:00
// or using RadioShield
// https://github.com/jgromes/RadioShield
//nRF24 radio = RadioShield.ModuleA;
2019-06-01 18:50:43 +00:00
void setup() {
Serial.begin(9600);
// initialize nRF24 with default settings
2019-06-01 18:50:43 +00:00
Serial.print(F("[nRF24] Initializing ... "));
int state = radio.begin();
2019-06-01 18:50:43 +00:00
if(state == ERR_NONE) {
Serial.println(F("success!"));
} else {
Serial.print(F("failed, code "));
Serial.println(state);
while(true);
}
// set transmit address
// NOTE: address width in bytes MUST be equal to the
// width set in begin() or setAddressWidth()
// methods (5 by default)
byte addr[] = {0x01, 0x23, 0x45, 0x67, 0x89};
Serial.print(F("[nRF24] Setting transmit pipe ... "));
state = radio.setTransmitPipe(addr);
2019-06-01 18:50:43 +00:00
if(state == ERR_NONE) {
Serial.println(F("success!"));
} else {
Serial.print(F("failed, code "));
Serial.println(state);
while(true);
}
}
void loop() {
Serial.print(F("[nRF24] Transmitting packet ... "));
// you can transmit C-string or Arduino string up to
// 32 characters long
int state = radio.transmit("Hello World!");
2019-06-01 18:50:43 +00:00
if (state == ERR_NONE) {
// the packet was successfully transmitted
Serial.println(F("success!"));
} else if (state == ERR_PACKET_TOO_LONG) {
// the supplied packet was longer than 32 bytes
Serial.println(F("too long!"));
} else if (state == ERR_ACK_NOT_RECEIVED) {
// acknowledge from destination module
// was not received within 15 retries
Serial.println(F("ACK not received!"));
} else if (state == ERR_TX_TIMEOUT) {
// timed out while transmitting
Serial.println(F("timeout!"));
2019-06-02 13:03:53 +00:00
} else {
// some other error occurred
Serial.print(F("failed, code "));
Serial.println(state);
2019-06-01 18:50:43 +00:00
}
// wait for a second before transmitting again
delay(1000);
}