Advertisement
maksiss

Untitled

May 16th, 2021
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // MasterSwapRoles
  2.  
  3. #include <SPI.h>
  4. #include <nRF24L01.h>
  5. #include <RF24.h>
  6.  
  7.  
  8. #define CE_PIN   7
  9. #define CSN_PIN  8
  10.  
  11. const byte slaveAddress[5] = {'R','x','A','A','A'};
  12. const byte masterAddress[5] = {'T','X','a','a','a'};
  13.  
  14.  
  15. RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
  16.  
  17. char dataToSend[10] = "Message 0";   ----> int dataToSend = 0;
  18. char txNum = '0';             ----> REMOVED
  19. int dataReceived[2];          -----> int dataReceived;
  20. bool newData = false;
  21.  
  22. unsigned long currentMillis;
  23. unsigned long prevMillis;
  24. unsigned long txIntervalMillis = 1000; // send once per second
  25.  
  26. //============
  27.  
  28. void setup() {
  29.  
  30.     Serial.begin(9600);
  31.  
  32.     Serial.println("MasterSwapRoles Starting");
  33.  
  34.     radio.begin();
  35.     radio.setDataRate( RF24_250KBPS );
  36.  
  37.     radio.openWritingPipe(slaveAddress);
  38.     radio.openReadingPipe(1, masterAddress);
  39.  
  40.     radio.setRetries(3,5); // delay, count
  41.     send(); // to get things started
  42.     prevMillis = millis(); // set clock
  43. }
  44.  
  45. //=============
  46.  
  47. void loop() {
  48.     currentMillis = millis();
  49.     if (currentMillis - prevMillis >= txIntervalMillis) {
  50.         send();
  51.         prevMillis = millis();
  52.     }
  53.     getData();
  54.     showData();
  55. }
  56.  
  57. //====================
  58.  
  59. void send() {
  60.  
  61.         radio.stopListening();
  62.             bool rslt;
  63.             rslt = radio.write( &dataToSend, sizeof(dataToSend) );
  64.         radio.startListening();
  65.         Serial.print("Data Sent ");
  66.         Serial.print(dataToSend);  
  67.         if (rslt) {
  68.             Serial.println("  Acknowledge received");
  69.             updateMessage();
  70.         }
  71.         else {
  72.             Serial.println("  Tx failed");
  73.         }
  74. }
  75.  
  76. //================
  77.  
  78. void getData() {
  79.  
  80.     if ( radio.available() ) {
  81.         radio.read( &dataReceived, sizeof(dataReceived) );
  82.         newData = true;
  83.     }
  84. }
  85.  
  86. //================
  87.  
  88. void showData() {
  89.     if (newData == true) {
  90.         Serial.print("Data received ");
  91.         Serial.print(dataReceived[0]); ---->  Serial.print(dataReceived)
  92.         Serial.print(", ");            ---->  REMOVED
  93.         Serial.println(dataReceived[1]);  ---->  REMOVED
  94.         Serial.println();       ---->  REMOVED
  95.         newData = false;
  96.     }
  97. }
  98.  
  99. //================
  100.  
  101. void updateMessage() {
  102.     txNum += 1;          ---->  REMOVED
  103.     if (txNum > '9') {   ---->  REMOVED
  104.         txNum = '0';     ---->  REMOVED
  105.     }                    ---->  REMOVED
  106.     dataToSend[8] = txNum;    ---->  dataToSend = dataReceived + 1;
  107. }
  108.  
  109.  
  110.  
  111.  
  112.  
  113. // SlaveSwapRoles
  114.  
  115. #include <SPI.h>
  116. #include <nRF24L01.h>
  117. #include <RF24.h>
  118.  
  119.  
  120. #define CE_PIN   7
  121. #define CSN_PIN  8
  122.  
  123. const byte slaveAddress[5] = {'R','x','A','A','A'};
  124. const byte masterAddress[5] = {'T','X','a','a','a'};
  125.  
  126. RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
  127.  
  128. char dataReceived[10];   ----> int dataReceived;
  129. int replyData[2] = {109, -4000};   ----> int replyData;
  130. bool newData = false;
  131.  
  132. unsigned long currentMillis;
  133. unsigned long prevMillis;
  134. unsigned long txIntervalMillis = 1000; // send once per second
  135.  
  136.  
  137. void setup() {
  138.  
  139.     Serial.begin(9600);
  140.  
  141.     Serial.println("SlaveSwapRoles Starting");
  142.  
  143.     radio.begin();
  144.     radio.setDataRate( RF24_250KBPS );
  145.  
  146.     radio.openWritingPipe(masterAddress); // NB these are swapped compared to the master
  147.     radio.openReadingPipe(1, slaveAddress);
  148.  
  149.     radio.setRetries(3,5); // delay, count
  150.     radio.startListening();
  151.  
  152. }
  153.  
  154. //====================
  155.  
  156. void loop() {
  157.     getData();
  158.     showData();
  159.     send();
  160. }
  161.  
  162. //====================
  163.  
  164. void send() {
  165.     if (newData == true) {
  166.         radio.stopListening();
  167.             bool rslt;
  168.             rslt = radio.write( &replyData, sizeof(replyData) );
  169.         radio.startListening();
  170.  
  171.         Serial.print("Reply Sent ");
  172.         Serial.print(replyData[0]);   ---->  Serial.print(replyData);
  173.         Serial.print(", ");   ---->  REMOVED
  174.         Serial.println(replyData[1]);   ---->  REMOVED
  175.  
  176.         if (rslt) {
  177.             Serial.println("Acknowledge Received");
  178.             updateReplyData();
  179.         }
  180.         else {
  181.             Serial.println("Tx failed");
  182.         }
  183.         Serial.println();
  184.         newData = false;
  185.     }
  186. }
  187.  
  188. //================
  189.  
  190. void getData() {
  191.  
  192.     if ( radio.available() ) {
  193.         radio.read( &dataReceived, sizeof(dataReceived) );
  194.         newData = true;
  195.     }
  196. }
  197.  
  198. //================
  199.  
  200. void showData() {
  201.     if (newData == true) {
  202.         Serial.print("Data received ");
  203.         Serial.println(dataReceived);
  204.     }
  205. }
  206.  
  207. //================
  208.  
  209. void updateReplyData() {
  210.     replyData[0] -= 1;   ---->  replyData = dataReceived + 10;
  211.     replyData[1] -= 1;    ---->  REMOVED
  212.     if (replyData[0] < 100) {     ---->  REMOVED
  213.         replyData[0] = 109;        ---->  REMOVED
  214.     }                               ---->  REMOVED
  215.     if (replyData[1] < -4009) {      ---->  REMOVED
  216.         replyData[1] = -4000;        ---->  REMOVED
  217.     }                                ---->  REMOVED
  218. }
  219.  
  220.  
  221.  
  222.  
  223.  
  224. //My example code
  225.  
  226. //Transmitter
  227. #include <SPI.h>
  228. #include <nRF24L01.h>
  229. #include <RF24.h>
  230.  
  231. RF24 radio(7, 8); // CE, CSN
  232. const byte addresses[][6] = {"00001", "00002"};
  233. float valueTransmit;
  234. float valueRecieved;
  235.  
  236. void setup() {
  237.   Serial.begin(9600);
  238.   radio.begin();
  239.   radio.openWritingPipe(addresses[1]); // 00002
  240.   radio.openReadingPipe(1, addresses[0]); // 00001
  241.   radio.setPALevel(RF24_PA_LOW);
  242.   valueTransmit = 0
  243. }
  244. void loop() {
  245.   radio.stopListening();
  246.   radio.write(&valueTransmit, sizeof(valueTransmit));
  247.   delay(5);
  248.  
  249.   radio.startListening();
  250.   if (radio.available() ) {
  251.       radio.read( &valueRecieved, sizeof(valueRecieved) );
  252.   Serial.print(valueRecieved);
  253.   valueTransmit = valueRecieved + 0.01;
  254.   }
  255. }
  256.  
  257.  
  258.  
  259.  
  260. //Reciever
  261. #include <SPI.h>
  262. #include <nRF24L01.h>
  263. #include <RF24.h>
  264.  
  265. RF24 radio(7, 8); // CE, CSN
  266. const byte addresses[][6] = {"00001", "00002"};
  267. float valueTransmit;
  268. float valueRecieved;
  269.  
  270. void setup() {
  271.   Serial.begin(9600);
  272.   radio.begin();
  273.   radio.openWritingPipe(addresses[0]); // 00001
  274.   radio.openReadingPipe(1, addresses[1]); // 00002
  275.   radio.setPALevel(RF24_PA_LOW);
  276. }
  277. void loop() {
  278.   radio.startListening();
  279.   if (radio.available() ) {
  280.     radio.read( &valueRecieved, sizeof(valueRecieved) );
  281.     Serial.print(valueRecieved);
  282.     valueTransmit = valueRecieved + 1;
  283.   }
  284.  
  285.   radio.stopListening();
  286.   radio.write(&valueTransmit, sizeof(valueTransmit));
  287.   delay(5);
  288.  
  289. }
  290.  
  291.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement