NRF24l01 I/O control

Hello,
I have written a simple code to control the LED (1 button turn on LED lights and second turns off LED). How can I make when disconnected arduino with transmitter from the power supply led ( arduino with receiver) still burning ?? (As for loop "if (radio.available ()")

#include <SPI.h>                       // SPI Arayüzünü dahil ettik.
#include "RF24.h"                      // RF24 kütüpanelerini dahil ettik.
byte data[1];                          // Göndereceğimiz data değişkenini oluşturduk.
boolean var;                           // Bit şeklinde var değişkeninini oluşturduk.
const uint64_t pipe = 0xF0F0F0F0A1LL;  // Paralel veri yolu adresleri tanımlamasını yaptık.
RF24 radio(9,10);                      // Modülün CE pinini 9.pin CS pinini de 10.pine bağlayacağımızı belirttik.



void setup(){
 pinMode(3, OUTPUT);                    // Arduino'nun 2.pinini çıkış olarak ayarladık.
                 

 radio.begin();                         // Kablosuz iletişimi başlattık.
 radio.openReadingPipe(1,pipe);         // Veri alacağımız kanalın ID'sini tanımladık.
 radio.startListening();                
}

void loop(){
 if(radio.available()){
   var = false;
   while(!var){
     var = 
     radio.read(data, 1);   
      if(data[0] == 0){
      digitalWrite(3, LOW);
      
      }
      if(data[0] == 1){
      digitalWrite(3, HIGH);
      }
      if(data[0] == 2){
      digitalWrite(3, LOW);
      }

  }
 }
 

}

I'm not sure I understand your question.

"radio.available()" tells you if a message has been received.

If you need to know when wireless communication fails you need a system in which the TX sends a message at regular intervals. Then if the RX does not get a message for a longer interval it will know there is a problem.

...R
Simple nRF24L01+ Tutorial

HI, I'm trying to do to maintain the pin in a high state i.e.. if the radio is not available and was led on, it stays on (although radion not available) keep holding on HIGH.

#include <SPI.h>                       // SPI Arayüzünü dahil ettik.
#include "RF24.h"                      // RF24 kütüpanelerini dahil ettik.
byte data[1];                          // Göndereceğimiz data değişkenini oluşturduk.
boolean var;                           // Bit şeklinde var değişkeninini oluşturduk.
const uint64_t pipe = 0xF0F0F0F0A1LL;  // Paralel veri yolu adresleri tanımlamasını yaptık.
RF24 radio(9,10);                      // Modülün CE pinini 9.pin CS pinini de 10.pine bağlayacağımızı belirttik.
int ledPin = 3;
 
boolean currentButton = LOW;
boolean lastButton = LOW;
boolean ledOn = false;
 
boolean debounce(boolean last)
{
   boolean current =digitalRead(ledPin);
   if (current != lastButton)
   {
      delay(5);
      current = digitalRead(ledPin);
   }
   return current;
}
 
//boolean wartosc_wyjscia;
void setup(){
 //pinMode(3, OUTPUT);                    // Arduino'nun 2.pinini çıkış olarak ayarladık.
// pinMode(4, OUTPUT);                    // Arduino'nun 4.pinini çıkış olarak ayarladık.
pinMode(ledPin, OUTPUT);
 radio.begin();                         // Kablosuz iletişimi başlattık.
 radio.openReadingPipe(1,pipe);         // Veri alacağımız kanalın ID'sini tanımladık.
 radio.startListening();                
}

void loop(){
 if(radio.available()){
   var = false;
   while(!var){
     var = 
     radio.read(data, 1);   
      //if(data[0] == 0){
      //digitalWrite(3, LOW);
                                                            // digitalWrite(4, LOW);
     // }
      if(data[0] == 1){
      digitalWrite(ledPin, HIGH);
      }
      if(data[0] == 2){
      digitalWrite(ledPin, LOW);
      }
   }
 }
 else
   
   delay(100);
currentButton = debounce(lastButton);
 
   if (currentButton == HIGH && lastButton == LOW) ledOn = !ledOn;
 
   lastButton = currentButton;
 
   digitalWrite(ledPin, ledPin);

 
  }
//}
 

//}

it is doesnt work ;'[

What is this supposed to do?

   var = false;
   while(!var){
     var =

(for the benefit of other readers I have not omitted anything from the 3rd line)

If you want the LED to stay in the state most recently set by the radio you don't need any of the ELSE code.

If you want it to turn OFF if no message is received then you need timeout code.

...R

   digitalWrite(ledPin, ledPin);

Ups. :wink:

Hi, I'm trying to do led'em control with arduino + nRF24L01. Using a tutorial and generally works, but I wanted to make in the program after lighting LEDs (after receiving a signal from the second arduino with nrf = remote control) light burning all the time regardless of whether "radio.available ()". I tried to write code to maintain the state average, but something does not work = work;] you can look where I make an error (maybe the whole concept is wrong) through

#include <SPI.h>                       // SPI Arayüzünü dahil ettik.
#include "RF24.h"                      // RF24 kütüpanelerini dahil ettik.
byte data[1];                          // Göndereceğimiz data değişkenini oluşturduk.
boolean var;                           // Bit şeklinde var değişkeninini oluşturduk.
const uint64_t pipe = 0xF0F0F0F0A1LL;  // Paralel veri yolu adresleri tanımlamasını yaptık.
RF24 radio(9,10);                      // Modülün CE pinini 9.pin CS pinini de 10.pine bağlayacağımızı belirttik.
int ledPin = 3;
 
boolean currentButton = LOW;
boolean lastButton = LOW;
boolean ledOn = false;
 
boolean debounce(boolean last)
{
   boolean current =digitalRead(ledPin);
   if (current != lastButton)
   {
      delay(5);
      current = digitalRead(ledPin);
   }
   return current;
}
 

void setup(){
 //pinMode(3, OUTPUT);                    // Arduino'nun 2.pinini çıkış olarak ayarladık.
                   
pinMode(ledPin, OUTPUT);
 radio.begin();                         // Kablosuz iletişimi başlattık.
 radio.openReadingPipe(1,pipe);         // Veri alacağımız kanalın ID'sini tanımladık.
 radio.startListening();                
}

void loop(){
 if(radio.available()){
   var = false;
   while(!var){
     var = 
     radio.read(data, 1);   
      //if(data[0] == 0){
      //digitalWrite(3, LOW);
                                                            // digitalWrite(4, LOW);
     // }
      if(data[0] == 1){
      digitalWrite(ledPin, HIGH);
      }
      if(data[0] == 2){
      digitalWrite(ledPin, LOW);
      }
   }
 }
 else
   
   delay(100);
currentButton = debounce(lastButton);
 
   if (currentButton == HIGH && lastButton == LOW) ledOn = !ledOn;
 
   lastButton = currentButton;
 
   digitalWrite(ledPin, ledPin);

 
  }

Whandall - thanks man xD , I did not notice ;] it works