Hi guys.
Anyone could explain to me why the code is working only if
radio.printDetails();
goes before opening pipe?
This is my code:
//======================== NANO AS RECEIVER====================
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
RF24 radio(9,10);
void setup()
{
Serial.begin(9600);
printf_begin();
radio.begin();
radio.printDetails(); // WHY CODE NOT WORKING IF THIS LINE IS REMOVED
radio.openReadingPipe(1,0xF0F0F0F0E1LL);
radio.startListening();
}
void loop(void)
{
if ( radio.available() )
{
unsigned long got_time;
bool done = false;
while (!done)
{
done = radio.read( &got_time, sizeof(unsigned long) );
printf("Got TIME %lu...\n\r",got_time);
}
}
}
//========================================================
//======================== MEGA AS SENDER====================
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
RF24 radio(9,53);
int j=0; int i =0;
void setup(void)
{
Serial.begin(9600);
printf_begin();
radio.begin();
radio.printDetails();// ???????????????????? WHY
radio.openWritingPipe(0xF0F0F0F0E1LL);
}
void loop(void)
{
radio.stopListening(); i++;
unsigned long time = millis();
printf("Now sending %lu...",time);
bool ok = radio.write( &time, sizeof(unsigned long) );
if (ok) printf("ok... %d\n\r",i );
else
{
while (!ok )
{
ok = radio.write( /&i/ &time , sizeof(unsigned long)); j++;
printf("failed...%d \n\r", j);
}
printf("Succes...%d Paviko nusiusti is %d karto\n\r", i, j);
j=0;
}
radio.startListening();
}
//==================== END OF CODE ================================
Anyone could explain why do I need "radio.printDetails();" for my code to work?
If I remove this line of code or call for this line after opening pipe nothing will happen?
I'm using Mega as sender and Nano as a receiver.
Mega pinout
52 = sck
51 = mosi
50 = miso
53 = csn
9 = ce
Nano pinout
13 = sck
11 = mosi
12 = miso
10 = csn
9 = ce
Code is working only if radio.printDetails(); goes before opening pipe. Why?