nfr24l01 drei Arduinos wie komunizieren

jetzt aber :art:

MASTER

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int sa=2;
int sb=3;
boolean stata=0;
boolean statb=0;
boolean buttonstate=0;
boolean buttonstatee=0;

int leda=6;
int ledb=5;
RF24 radio(7,8);

const byte rxAddr[][6]={"null","eins","zwei","drei"};

void setup() {
  // put your setup code here, to run once:
  pinMode(leda,OUTPUT);
  pinMode(ledb,OUTPUT);
  pinMode(sa,INPUT);
  pinMode(sb,INPUT);
radio.begin();
Serial.begin(115200);

//radio.openReadingPipe(0,rxAddr[2]);
//radio.openReadingPipe(0,rxAddr[3]);
//radio.setRetries(15, 15);
radio.setPALevel(RF24_PA_MIN);

}

void loop() {
while(radio.available());
  radio.openWritingPipe(rxAddr[1]);
  radio.stopListening();
  stata=digitalRead(sa);
  radio.write(&stata, sizeof(stata));

  
  while(radio.available());
  radio.openWritingPipe(rxAddr[0]);
  radio.stopListening();
  statb=digitalRead(sb);
  radio.write(&statb, sizeof(statb));

  /////////////////////
  radio.openReadingPipe(0,rxAddr[2]);
  radio.startListening();
  while(!radio.available());
 
  radio.read(&buttonstate,sizeof(buttonstate));

  if(buttonstate==LOW){
    digitalWrite(leda,HIGH);
  }
  else{
    digitalWrite(leda,LOW);
  }
  radio.stopListening();

  /*
  /////////////////////
  radio.openReadingPipe(0,rxAddr[2]);
  radio.startListening();
  while(!radio.available());
  radio.read(&buttonstatee,sizeof(buttonstatee));
  if(buttonstatee==LOW){
    digitalWrite(ledb,HIGH);
  }
  else{
    digitalWrite(ledb,LOW);
  }  
  radio.stopListening();
 */
}

salve 1

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int led=6;
boolean buttonstate=0;
int sa=5;
int stata;

RF24 radio(7, 8);

const byte rxAddr[][6]={"null","eins","zwei","drei"};

void setup(){
  pinMode(sa,INPUT);
  pinMode(led, OUTPUT);
  Serial.begin(115200);

  radio.begin();
 
  radio.setPALevel(RF24_PA_MIN);
}


void loop(){
  radio.startListening();
   radio.openReadingPipe(0, rxAddr[0]);
  while(!radio.available());
  radio.read(&buttonstate, sizeof(buttonstate));
  if (buttonstate==LOW){
    digitalWrite(led,HIGH);
    Serial.println(buttonstate);
  }
  else{
    digitalWrite(led,LOW);
    Serial.println(buttonstate);
  }
  /////////////////////////////////
  radio.stopListening();
  while(radio.available());
  radio.openWritingPipe(rxAddr[2]);
  stata=digitalRead(sa);
  radio.write(&stata,sizeof(stata));
}

Slave 2

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int led=6;
boolean buttonstate=0;
int sa=5;
int stata;

RF24 radio(7, 8);

const byte rxAddr[][6]={"null","eins","zwei","drei"};

void setup(){
  pinMode(sa,INPUT);
  pinMode(led, OUTPUT);
  Serial.begin(115200);

  radio.begin();
  
  radio.setPALevel(RF24_PA_MIN);
}


void loop(){
  radio.startListening();
  radio.openReadingPipe(0, rxAddr[1]);
  while(!radio.available());
  radio.read(&buttonstate, sizeof(buttonstate));
  if (buttonstate==LOW){
    digitalWrite(led,HIGH);
    Serial.println(buttonstate);
  }
  else{
    digitalWrite(led,LOW);
    Serial.println(buttonstate);
  }
  /*
  /////////////////////////////////
  radio.stopListening();
  while(radio.available());
  radio.openWritingPipe(rxAddr[3]);
  stata=digitalRead(sa);
  radio.write(&stata,sizeof(stata));
  */
}

schon mal Danke und die Geduld mit mir