Sir help ?? i have 3 Nrf24lo1 one master(transmitter) 2 slave(receivers)
slave 2 is reciving data but slave 1 does not
[Master]
#include "Arduino.h"
#include <SPI.h>
#include<RF24.h>
RF24 radio(7, 8);
byte addresses[][6] ={"1Node","2Node","3Node"};
float lm=0.98;
int b33=2;
int sk=3;
void setup() {
Serial.begin(9600);
Serial.println(("reciver"));
radio.begin();
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_2MBPS);
radio.openWritingPipe(addresses[0]);
radio.openWritingPipe(addresses[2]);
radio.openReadingPipe(1,addresses[1]);
radio.startListening();
}
void loop() {
float ak=(sk/lm)b33;
float gk=ak/((aksk)+1);
float b3;
if(radio.available()){
while (radio.available()){
radio.read(&b3, sizeof(float));
Serial.println("b3");
Serial.println(b3);
}
radio.stopListening();
radio.write(&ak, sizeof(float));
Serial.println("ak");
Serial.println(ak);
radio.write(&gk, sizeof(float));
Serial.println("gk");
Serial.println(gk);
radio.startListening();
}
}
[Slave1]
#include "Arduino.h"
#include <SPI.h>
#include<RF24.h>
RF24 radio(7, 8);
byte addresses[][6] ={"1Node","2Node","3Node"};
float lm=0.98;
float phi1=2;
float gkk=0.33;
float akk=0.4;
float b1=phi1;
float phi0=5;
float phi2;
float b2;
void setup() {
Serial.begin(9600);
Serial.println(("transmitter"));
unsigned long StartTime = micros();
radio.begin();
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_2MBPS);
//radio.setChannel(124);
radio.openWritingPipe(addresses[1]);
radio.openReadingPipe(1,addresses[0]);
float phi2=(phi0/lm)-gkk*akk;
float b2=phi2;
Serial.println("b2");
Serial.println(b2);
}
void loop() {
float b3=(b1/lm)-gkk*akk;
b1=b2;
b2=b3;
radio.stopListening();
if(radio.write(&b3, sizeof(float) )){
Serial.println("transmission");
Serial.println(b3);
}
radio.startListening();
unsigned long started_waiting_at=millis();
while (! radio.available()){
if (millis()-started_waiting_at > 200) {
Serial.println("no response recived");
return;
}
}
float ak;
radio.read(&ak, sizeof(float));
Serial.print("ak ");
Serial.println(ak);
radio.startListening();
started_waiting_at=millis();
while (! radio.available()){
if (millis()-started_waiting_at > 200) {
Serial.println("no response recived");
return;
}
}
float gk;
radio.read(&gk, sizeof(float));
Serial.print("gk");
Serial.println(gk);
// delay(1000);
// unsigned long CurrentTime = micros();
//unsigned long ElapsedTime = CurrentTime - StartTime;
//Serial.print("ElapsedTime");
//Serial.println(ElapsedTime);
}
Slave2
#include "Arduino.h"
#include <SPI.h>
#include<RF24.h>
RF24 radio(7, 8);
byte addresses[][6] ={"1Node","2Node","3Node"};
float lm=0.98;
float phi1=2;
float gkk=0.33;
float akk=0.4;
float b1=phi1;
float phi0=5;
float phi2;
float b2;
void setup() {
Serial.begin(9600);
Serial.println(("transmitter"));
unsigned long StartTime = micros();
radio.begin();
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_2MBPS);
//radio.setChannel(124);
radio.openWritingPipe(addresses[1]);
radio.openReadingPipe(1,addresses[2]);
float phi2=(phi0/lm)-gkk*akk;
float b2=phi2;
Serial.println("b2");
Serial.println(b2);
}
void loop() {
float b3=(b1/lm)-gkk*akk;
b1=b2;
b2=b3;
radio.stopListening();
if(radio.write(&b3, sizeof(float) )){
Serial.println("transmission");
Serial.println(b3);
}
radio.startListening();
unsigned long started_waiting_at=millis();
while (! radio.available()){
if (millis()-started_waiting_at > 200) {
Serial.println("no response recived");
return;
}
}
float ak;
radio.read(&ak, sizeof(float));
Serial.print("ak ");
Serial.println(ak);
radio.startListening();
started_waiting_at=millis();
while (! radio.available()){
if (millis()-started_waiting_at > 200) {
Serial.println("no response recived");
return;
}
}
float gk;
radio.read(&gk, sizeof(float));
Serial.print("gk");
Serial.println(gk);
}