Problema comunicación entre 2 NRF24L01

Muy buenas, estoy tratando de enviar información entre 2 dispositivos NRF24 a través de arduino.

Mi intención eso enviar STRUCT's usando la librería MIRF. No se que más probar o hacer, he encontrado otras webs y otros códigos pero no me funciona con ninguno. Si alguien tiene algún código para este transmisor que funcione se lo agradecería mucho.

Usando el código sacado de esta web solo recibo ceros pese a simplemente tratar de enviar un entero.

Adjunto códigos:
El de enviar:

#include <SPI.h> 
#include <Mirf.h> 
#include <nRF24L01.h> 
#include <MirfHardwareSpiDriver.h> 
 
int valor; 
 
void setup(){ 
 Mirf.spi = &MirfHardwareSpi; 
  Mirf.init(); 
  Mirf.setRADDR((byte *)"trans"); //definimos el nombre del módulo. 5 bytes máximo
  Mirf.payload = sizeof(valor); 
  Mirf.config(); 
} 
 
void loop(){ 
  valor=288; 
  Mirf.setTADDR((byte *)"recep"); //nombre del módulo al que enviamos 
 Mirf.send((byte *) &valor); //enviamos los datos 
 
  while(Mirf.isSending()){ 
  } 
}

El de recibir:

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

int valor;

void setup() {
  Serial.begin( 9600);
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR((byte *)"recep"); //definimos el nombre del módulo. 5 bytes máximo
  Mirf.payload = sizeof(valor);
  Mirf.config();
}

void loop(){
   while(!Mirf.dataReady()){
  }
  Mirf.getData((byte *) &valor);
  Serial.print("valor = ");
  Serial.println(valor);
  Serial.println("---------------");
  delay(500); //ponemos un delay para que nos de tiempo a leer
}

También traté de utilizar otro código de otra web en la que sí que se enviaban STRUCT's pero de nuevo lo único que recibía eran ceros.

Os dejo ambos códigos.
Cliente

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
#include <Wire.h>
//#include <LCD.h>
//#include <LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd( 0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE );

struct DATOS{
    float         temp;
    unsigned long time;
}
datos;


void setup()
{
    Serial.begin(57600);
    //lcd.begin(16,2);
    //lcd.backlight();

    Mirf.spi    = &MirfHardwareSpi;
    Mirf.cePin  = 7;
    Mirf.csnPin = 8;

    Mirf.init();
    Mirf.setRADDR((byte *)"client");
    Mirf.payload = sizeof(datos);
    Mirf.channel = 10;
    Mirf.config();
}


void loop()
{
    if( !Mirf.isSending()  &&  Mirf.dataReady() )
    {
        Mirf.getData((byte *) &datos);
        Serial.print(datos.temp);
        Serial.println(" c");
//        Serial.setCursor(10,0);
        Serial.print(datos.time);
        Serial.println(" s");
    }
}

Servidor:

//SERVER ENVIAR
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
#include <Wire.h>


struct DATOS{
    float         temp;
    unsigned long time;
}
datos;


void setup()
{
//    lcd.begin(16,2);
//    lcd.backlight();
    Serial.begin(57800);
    Mirf.spi    = &MirfHardwareSpi;
    Mirf.cePin  = 7;
    Mirf.csnPin = 8;

    Mirf.init();
    Mirf.setRADDR((byte *)"server");
    Mirf.payload = sizeof(datos);
    Mirf.channel = 10;
    Mirf.config();
}

void loop()
{
        datos.time = 1000;
        datos.temp = 0.288;
        if( !Mirf.isSending() )
        {
            Mirf.setTADDR((byte *)"client");
            Mirf.send((byte *)&datos);
        }
        Serial.print(datos.temp);
        Serial.println(" c");
        Serial.print(datos.time);
        Serial.println(" s");
//    if( millis() % 1000 == 0 )
//    {
//        datos.time = 1000;
//        datos.temp = 0.288;
//
//        //lcd.setCursor(0,0);
//        Serial.print(datos.temp);
//        Serial.println(" c");
//        Serial.print(datos.time);
//        Serial.println(" s");
//
//        if( !Mirf.isSending() )
//        {
//            Mirf.setTADDR((byte *)"client");
//            Mirf.send((byte *)&datos);
//        }
//    }

}

Pregunto: has probado los ejemplos básicos para descartar que tus dos nRF24 estan bien conectados y se comunican?

Me parece o es la misma pregunta del otro hilo simplemente replanteada de otro modo?

los nrf24 me han funcionado usando la otra librería, pero quiero usar la MIRF, así que no es problema de los NRF

cual es el otro hilo? solo he abierto otro hilo en este foro y no tenía absolutamente nada que ver con este tema

Te confundí con alguien que preguntó muy parecido.
Probaste con algun ejemplo MIRF?

pues no, será lo primero que haga mañana por la mañana

Es lo primero que debiste haber hecho antes de hacer esta consulta.
Espero no te molestes pero asi debe ser.

los ejemplos más simples sí que me funcionan, no es problema ni del conexionado ni del chip, alguna idea?

El primer código emisor/receptor no veo que siga la estructura del ejemplo MIRF.
No los comparaste?

GRACIAS por la ayuda pero lo conseguí arreglar a través de ejemplos de internet y probando otros códigos

O sea.. no sabes cual era el error?

No es la manera, pero si te sirve bien.

De todos modos en este foro se comparte la solución porque sino para la próxima yo al menos no responderé tus consltas porque ese ese el compromiso de todo persona que pregunta. Viene consulta, recibe la solución o entre ambos se consigue y queda para quien la requiera en el futuro.