Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MasterSwapRoles
- #include <SPI.h>
- #include <nRF24L01.h>
- #include <RF24.h>
- #define CE_PIN 7
- #define CSN_PIN 8
- const byte slaveAddress[5] = {'R','x','A','A','A'};
- const byte masterAddress[5] = {'T','X','a','a','a'};
- RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
- char dataToSend[10] = "Message 0"; ----> int dataToSend = 0;
- char txNum = '0'; ----> REMOVED
- int dataReceived[2]; -----> int dataReceived;
- bool newData = false;
- unsigned long currentMillis;
- unsigned long prevMillis;
- unsigned long txIntervalMillis = 1000; // send once per second
- //============
- void setup() {
- Serial.begin(9600);
- Serial.println("MasterSwapRoles Starting");
- radio.begin();
- radio.setDataRate( RF24_250KBPS );
- radio.openWritingPipe(slaveAddress);
- radio.openReadingPipe(1, masterAddress);
- radio.setRetries(3,5); // delay, count
- send(); // to get things started
- prevMillis = millis(); // set clock
- }
- //=============
- void loop() {
- currentMillis = millis();
- if (currentMillis - prevMillis >= txIntervalMillis) {
- send();
- prevMillis = millis();
- }
- getData();
- showData();
- }
- //====================
- void send() {
- radio.stopListening();
- bool rslt;
- rslt = radio.write( &dataToSend, sizeof(dataToSend) );
- radio.startListening();
- Serial.print("Data Sent ");
- Serial.print(dataToSend);
- if (rslt) {
- Serial.println(" Acknowledge received");
- updateMessage();
- }
- else {
- Serial.println(" Tx failed");
- }
- }
- //================
- void getData() {
- if ( radio.available() ) {
- radio.read( &dataReceived, sizeof(dataReceived) );
- newData = true;
- }
- }
- //================
- void showData() {
- if (newData == true) {
- Serial.print("Data received ");
- Serial.print(dataReceived[0]); ----> Serial.print(dataReceived)
- Serial.print(", "); ----> REMOVED
- Serial.println(dataReceived[1]); ----> REMOVED
- Serial.println(); ----> REMOVED
- newData = false;
- }
- }
- //================
- void updateMessage() {
- txNum += 1; ----> REMOVED
- if (txNum > '9') { ----> REMOVED
- txNum = '0'; ----> REMOVED
- } ----> REMOVED
- dataToSend[8] = txNum; ----> dataToSend = dataReceived + 1;
- }
- // SlaveSwapRoles
- #include <SPI.h>
- #include <nRF24L01.h>
- #include <RF24.h>
- #define CE_PIN 7
- #define CSN_PIN 8
- const byte slaveAddress[5] = {'R','x','A','A','A'};
- const byte masterAddress[5] = {'T','X','a','a','a'};
- RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
- char dataReceived[10]; ----> int dataReceived;
- int replyData[2] = {109, -4000}; ----> int replyData;
- bool newData = false;
- unsigned long currentMillis;
- unsigned long prevMillis;
- unsigned long txIntervalMillis = 1000; // send once per second
- void setup() {
- Serial.begin(9600);
- Serial.println("SlaveSwapRoles Starting");
- radio.begin();
- radio.setDataRate( RF24_250KBPS );
- radio.openWritingPipe(masterAddress); // NB these are swapped compared to the master
- radio.openReadingPipe(1, slaveAddress);
- radio.setRetries(3,5); // delay, count
- radio.startListening();
- }
- //====================
- void loop() {
- getData();
- showData();
- send();
- }
- //====================
- void send() {
- if (newData == true) {
- radio.stopListening();
- bool rslt;
- rslt = radio.write( &replyData, sizeof(replyData) );
- radio.startListening();
- Serial.print("Reply Sent ");
- Serial.print(replyData[0]); ----> Serial.print(replyData);
- Serial.print(", "); ----> REMOVED
- Serial.println(replyData[1]); ----> REMOVED
- if (rslt) {
- Serial.println("Acknowledge Received");
- updateReplyData();
- }
- else {
- Serial.println("Tx failed");
- }
- Serial.println();
- newData = false;
- }
- }
- //================
- void getData() {
- if ( radio.available() ) {
- radio.read( &dataReceived, sizeof(dataReceived) );
- newData = true;
- }
- }
- //================
- void showData() {
- if (newData == true) {
- Serial.print("Data received ");
- Serial.println(dataReceived);
- }
- }
- //================
- void updateReplyData() {
- replyData[0] -= 1; ----> replyData = dataReceived + 10;
- replyData[1] -= 1; ----> REMOVED
- if (replyData[0] < 100) { ----> REMOVED
- replyData[0] = 109; ----> REMOVED
- } ----> REMOVED
- if (replyData[1] < -4009) { ----> REMOVED
- replyData[1] = -4000; ----> REMOVED
- } ----> REMOVED
- }
- //My example code
- //Transmitter
- #include <SPI.h>
- #include <nRF24L01.h>
- #include <RF24.h>
- RF24 radio(7, 8); // CE, CSN
- const byte addresses[][6] = {"00001", "00002"};
- float valueTransmit;
- float valueRecieved;
- void setup() {
- Serial.begin(9600);
- radio.begin();
- radio.openWritingPipe(addresses[1]); // 00002
- radio.openReadingPipe(1, addresses[0]); // 00001
- radio.setPALevel(RF24_PA_LOW);
- valueTransmit = 0
- }
- void loop() {
- radio.stopListening();
- radio.write(&valueTransmit, sizeof(valueTransmit));
- delay(5);
- radio.startListening();
- if (radio.available() ) {
- radio.read( &valueRecieved, sizeof(valueRecieved) );
- Serial.print(valueRecieved);
- valueTransmit = valueRecieved + 0.01;
- }
- }
- //Reciever
- #include <SPI.h>
- #include <nRF24L01.h>
- #include <RF24.h>
- RF24 radio(7, 8); // CE, CSN
- const byte addresses[][6] = {"00001", "00002"};
- float valueTransmit;
- float valueRecieved;
- void setup() {
- Serial.begin(9600);
- radio.begin();
- radio.openWritingPipe(addresses[0]); // 00001
- radio.openReadingPipe(1, addresses[1]); // 00002
- radio.setPALevel(RF24_PA_LOW);
- }
- void loop() {
- radio.startListening();
- if (radio.available() ) {
- radio.read( &valueRecieved, sizeof(valueRecieved) );
- Serial.print(valueRecieved);
- valueTransmit = valueRecieved + 1;
- }
- radio.stopListening();
- radio.write(&valueTransmit, sizeof(valueTransmit));
- delay(5);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement