ayuda con NRF24I01, ruego por ayuda!!!

hola que tal,

Acudo a ustedes despues de buscar y buscar informacion y leer varios tutoriales en la web y despues de 3 semanas de plano no puedo, estoy a nada de mandar todo a volar.

el tema es que estoy tratando de comunicar un arduino uno y un mega por medio de NRF24I01, se que los pin del mega son diferentes y segun yo estan bien conectados.

  1. el transmisor transmite intermitentemente cuando toco el cable GND se estabiliza la transmision
  2. el receptor no recibe nada

el codigo no es mio

transmisor:

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

//Declaremos los pines CE y el CSN
#define CE_PIN 10
#define CSN_PIN 9
 
//Variable con la dirección del canal por donde se va a transmitir
byte direccion[5] ={'c','a','n','a','l'};

//creamos el objeto radio (NRF24L01)
RF24 radio(CE_PIN, CSN_PIN);

//vector con los datos a enviar
float datos[3];

void setup()
{
  //inicializamos el NRF24L01 
  radio.begin();
  //inicializamos el puerto serie
  Serial.begin(9600); 
 
//Abrimos un canal de escritura
 radio.openWritingPipe(direccion);
 radio.startListening();
 
}
 
void loop()
{ 
 //cargamos los datos en la variable datos[]
 datos[0]=analogRead(0)* (5.0 / 1023.0);;
 datos[1]=millis();
 datos[2]=3.14;
 //enviamos los datos
 bool ok = radio.write(datos, sizeof(datos));
  //reportamos por el puerto serial los datos enviados 
  if(ok)
  {
     Serial.print("Datos enviados: "); 
     Serial.print(datos[0]); 
     Serial.print(" , "); 
     Serial.print(datos[1]); 
     Serial.print(" , "); 
     Serial.println(datos[2]); 
  }
  else
  {
     Serial.println("no se ha podido enviar");
  }
  delay(1000);
}

receptor:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
 
//Declaremos los pines CE y el CSN
#define CE_PIN 10
#define CSN_PIN 9
 
//Variable con la dirección del canal que se va a leer
byte direccion[5] ={'c','a','n','a','l'}; 

//creamos el objeto radio (NRF24L01)
RF24 radio(CE_PIN, CSN_PIN);

//vector para los datos recibidos
float datos[3];

void setup()
{
 //inicializamos el NRF24L01 
  radio.begin();
  //inicializamos el puerto serie
  Serial.begin(9600); 
  
  //Abrimos el canal de Lectura
  radio.openReadingPipe(1, direccion);
  
    //empezamos a escuchar por el canal
  radio.startListening();
 
}
 
void loop() {
 //uint8_t numero_canal;
 //if ( radio.available(&numero_canal) )
 
 if ( radio.available() )
 {    
     //Leemos los datos y los guardamos en la variable datos[]
     radio.read(datos,sizeof(datos));
     
     //reportamos por el puerto serial los datos recibidos
     Serial.print("Dato0= " );
     Serial.print(datos[0]);
     Serial.print(" V, ");
     Serial.print("Dato1= " );
     Serial.print(datos[1]);
     Serial.print(" ms, ");
     Serial.print("Dato2= " );
     Serial.println(datos[2]);
 }
 else
 {
     Serial.println("No hay datos de radio disponibles");
 }
 delay(1000);
}

conexiones:

arduino uno:

NRF24L01 Arduino UNO Arduino Mega
1: GND pin GND pin GND
2: VCC pin 3V3 pin 3.3V
3: CE pin 9 pin 9
4: CSN pin 10 pin 10
5: SCK pin 13 pin 52
6: MOSI pin 11 pin 51
7: MISO pin 12 pin 50

salidas de monitor serial

de verdad necesito de su ayuda les agradezco mucho su tiempo, gracias y espero sus comentarios

Moderador:
El foro tiene normas y una de ellas aplica a los títulos.
Por favor edita el título de modo que las palabras Ayuda no esten. Te doy las razones pero estan debidamente explicadas en las normas.
El foro brinda ayuda de modo que indicarlo en el título es redundante y en tu caso dos veces.

Bueno mas alla de que el código parece estar bien, tal vez requieras soldar un capacitor electrolítico de 47 a 100uF y tensión mayor a 5V entre VCC (3.3V) y GND del módulo nRF24

Eso generalmente resuelve las cosas.
Si no lo hace entonces vuelve a empezar y sigue esta guía.

How nRF24L01+ Wireless Module Works & Interface with Arduino