First connect the nRF24L01+ Transceiver Module to an Arduino microcontroller, set up 2, one as Transmitter and other as Receiver.
CAUTION the current VCC is in 3.3v only
Primero conecte el Módulo Transceptor nRF24L01 + a un microcontrolador Arduino, configure 2, uno como Transmisor y otro como Receptor.
CUIDADO la corriente VCC es en 3.3v únicamente
then download and install the nRF24 library https://github.com/nRF24/RF24
Luego descargue e instale la Libreria nRF24 https://github.com/nRF24/RF24
#include "RF24.h"
RF24 myRadio (7, 8); // in Mega can use> (48, 49);
byte addresses[][6] = {"0"};
struct package
{
int id=1;
float temperature = 18.3;
char text[100] = "Text to be transmitted";
};
typedef struct package Package;
Package data;
void setup()
{
Serial.begin(115200);
delay(100);
myRadio.begin();
myRadio.setChannel(115);
myRadio.setPALevel(RF24_PA_MAX);
myRadio.setDataRate( RF24_250KBPS ) ;
myRadio.openWritingPipe( addresses[0]);
}
void loop()
{
myRadio.write(&data, sizeof(data));
Serial.print("\nPackage:");
Serial.print(data.id);
Serial.print("\n");
Serial.println(data.temperature);
Serial.println(data.text);
data.id = data.id + 1;
data.temperature = data.temperature+0.1;
delay(50);
}
#include "RF24.h"
RF24 myRadio (7, 8); // in Mega can use> (48, 49);
byte addresses[][6] = {"0"};
struct package
{
int id=0;
float temperature = 0.0;
char text[100] ="empty";
};
typedef struct package Package;
Package data;
void setup()
{
Serial.begin(115200);
delay(100);
myRadio.begin();
myRadio.setChannel(115);
myRadio.setPALevel(RF24_PA_MAX);
myRadio.setDataRate( RF24_250KBPS ) ;
myRadio.openReadingPipe(1, addresses[0]);
myRadio.startListening();
}
void loop()
{
if ( myRadio.available())
{
while (myRadio.available())
{
myRadio.read( &data, sizeof(data) );
}
Serial.print("\nPackage:");
Serial.print(data.id);
Serial.print("\n");
Serial.println(data.temperature);
Serial.println(data.text);
}
}
#include "RF24.h"
int Eapera = 0;
int Vuelta = 0;
RF24 myRadio (7, 8);
//--------- >>>>>>>> Paquete >>>>>>>>>
struct package{
int CHN2=0;
int CHN3=0;
int CHN4=0;
};
typedef struct package Package;
Package data;
//--------- <<<<<<<< Paquete <<<<<<<<<
void setup()
{
//Serial.begin(115200);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
myRadio.begin();
myRadio.setChannel(115);
myRadio.setPALevel(RF24_PA_MAX); //<< RF24_PA_MIN,/ RF24_PA_LOW,/ RF24_PA_HIGH,/ RF24_PA_MAX, <<ojO
myRadio.setDataRate( RF24_250KBPS ); //<< RF24_1MBPS,/ RF24_2MBPS,/ RF24_250KBPS <<ojO
myRadio.openWritingPipe(1);
myRadio.openReadingPipe(1, 1);
myRadio.startListening();
delay(100);
}
void loop()
{//>>>> -------------------------- Recibe >>>>>>>>
Eapera=0;
if (myRadio.available())
{
while (myRadio.available())
{
myRadio.read( &data, sizeof(data) );
}
Vuelta=0;
digitalWrite(10, HIGH);
digitalWrite(5, data.CHN2);
digitalWrite(6, data.CHN3);
digitalWrite(9, data.CHN4);
}
else
{
Vuelta++;
if (Vuelta > 5)
{
digitalWrite(10, LOW);
//Serial.print(" No Avalible = ");//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// Serial.println(Vuelta); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
}
//<<<< -------------------------- Recibe <<<<<<<<<
//>>>> --------------------------- Send >>>>>>>>>
delay(100);
myRadio.stopListening();
//=================== Send >>>>
if (digitalRead(2) == HIGH){if (data.CHN2 == 1){data.CHN2 = 0;}else{data.CHN2 = 1;}Eapera=1;}
if (digitalRead(3) == HIGH){if (data.CHN3 == 1){data.CHN3 = 0;}else{data.CHN3 = 1;}Eapera=1;}
if (digitalRead(4) == HIGH){if (data.CHN4 == 1){data.CHN4 = 0;}else{data.CHN4 = 1;}Eapera=1;}
digitalWrite(5, data.CHN2);
digitalWrite(6, data.CHN3);
digitalWrite(9, data.CHN4);
//=================== Send <<<<
myRadio.write(&data, sizeof(data));
myRadio.startListening();
if(Eapera==1){delay(300);}else{delay(100);}
//<<<< -------------------------- Send <<<<<<<<<
}