semaforo (nrf24l01)

buenos dias tengo un problema tengo un sistema de semaforos conectado con un sistema remoto (NRF24L01),los indicadores del semaforo lo tengo en el transmisor por ejemplo y tengo 4 pulsadores en el cual indico a que semaforo quiero que siga en el cual estan en el recibidor y funciona bien pero cuando quiero enviar del transmisor un puls0(por ejemplo un pulsador), al recibidor para que encienda un led (deseo agregar un led indicador a cada boton tomando la señal de mis indicadores) no funciona .

me di cuenta cuando que cuando los dos utilizan el while no funciona, y cuando el transmisor solo lo usa funciona los botones del semaforo pero cuando el recibidor solo lo usa funciona el led indicador de los botones me pueden decir por que?

while (!radio.available());

recibidor

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

const byte button1 = 3;                           //Boton s1
const byte button2 = 4;                            //Boton s2
const byte button3 = 5;                          //Boton s3
const byte button4 = 6;                          //Boton s4
const byte ledverde= 2;
const byte ledamarillo= 9;
const byte ledrojo= 10;



RF24 radio(7, 8); // CE, CSN
const byte addresses[][6] = {"00001", "00002"};

              
bool buttonState1=0;                   //Declarar el valor de la variable boton S1
bool buttonState2=0;                   //Declarar el valor de la variable boton S2
bool buttonState3=0;                   //Declarar el valor de la variable boton S3
bool buttonState4=0;                   //Declarar el valor de la variable boton S4
bool buttonState5=0;                   //Declarar el valor de la variable boton S5

void setup() {
  
  pinMode(button1, INPUT);             // Declarar los pines de salida de los botones
  pinMode(button2, INPUT); 
  pinMode(button3, INPUT);
  pinMode(button4, INPUT);
  pinMode(ledverde, OUTPUT);
  pinMode(ledamarillo, OUTPUT); 
  pinMode(ledrojo, OUTPUT);
  
  radio.begin();
  radio.openWritingPipe(addresses[0]); // 00001
  radio.openReadingPipe(1, addresses[1]); // 00002
  radio.setPALevel(RF24_PA_MIN);
}
void loop() {

radio.startListening();                            //This sets the module as receiver
if(!radio.available());{
  
 radio.read(&buttonState5, sizeof(buttonState5));  //Reading the data

if (buttonState5 == HIGH)
  {
    digitalWrite(ledverde, HIGH);
  }
  else{
     digitalWrite(ledverde, LOW);
  } 


}
  


  
radio.stopListening();
    
   buttonState1 = digitalRead(button1);
   radio.write(&buttonState1, sizeof(buttonState1));
   buttonState2 = digitalRead(button2);
   radio.write(&buttonState2, sizeof(buttonState2));
   buttonState3 = digitalRead(button3);
   radio.write(&buttonState3, sizeof(buttonState3));
   buttonState4 = digitalRead(button4); 
   radio.write(&buttonState4, sizeof(buttonState4));

}

el transmisor es un poco largo lo adjunto mejor....

ademas otro problema es que cuando desconecto el sistema de pulsadores de los semaforos (el arduino) deja de funcionar los indicadores se paran y desearia que siguieran funcionando aunque los pulsadores no tengan ninguna reaccion. saludos comunidad.

transmisor_arduino.ino (19.6 KB)