Pb de code sous nrf24

Bonjour,
je tente d’apprivoisé ses petites bette la (NRF24) grâce a la bibli Mirf.
les tests de la bibli marche donc mes câblages sont bon.
je tente de faire 2 fonctions (une émission et une réception) mais bizarrement , j’arrive pas a le faire :s
l’émetteur dit qu’il envoie , mais le récepteur ne reçois rien:

voici le code de l’émetteur:

#include <SPI.h>      // Pour la communication via le port SPI
#include <Mirf.h>     // Pour la gestion de la communication
#include <nRF24L01.h> // Pour les définitions des registres du nRF24L01
#include <MirfHardwareSpiDriver.h> // Pour la communication SPI

char *Addresse_transmission[]={"Ext","Salon","Cuisine","Chambre1","Chambre2"};
long heure_derniere_demande=0;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);

  Mirf.cePin = 8; // Broche CE sur D9
  Mirf.csnPin = 7; // Broche CSN sur D10
  Mirf.spi = &MirfHardwareSpi; // On veut utiliser le port SPI hardware
  Mirf.init(); // Initialise la bibliothèque

  Mirf.channel = 10; // Choix du canal de communication (128 canaux disponibles, de 0 à 127)
  Mirf.payload = sizeof(long); // Taille d'un message (maximum 32 octets)
  Mirf.config(); // Sauvegarde la configuration dans le module radio

  Mirf.setRADDR((byte *) "Salon"); // Adresse de réception
}

void loop() {
  // put your main code here, to run repeatedly:
 int message_test=1000;
 Serial.println("Emission"); 
 Emission(0,message_test);
// Reception();
 delay(6000);
}
void Emission(int cible , byte message)
{
  Mirf.setTADDR((byte *) Addresse_transmission[cible]); //Definition de l'adresse du module cible
  Serial.print("emmission vers ");
  Serial.println(Addresse_transmission[cible]);
  Mirf.send((byte *) &message); // Envois du message
  while(Mirf.isSending());//attente de la fin de l'envoie
  heure_derniere_demande=millis();
}
void Reception()
{
  byte message;
   while(!Mirf.dataReady()) { // On attend de recevoir quelque chose
    if (millis() - heure_derniere_demande > 1000 ) { // Si on attend depuis plus d'une seconde
      Serial.println("Pas de reponce"); // C'est le drame ...
      return;
    }
  }
  // La réponse est disponible
  Mirf.getData((byte *) &message); // On récupère la réponse
  Serial.println(message);
}

Celui du récepteur:

#include <SPI.h>      // Pour la communication via le port SPI
#include <Mirf.h>     // Pour la gestion de la communication
#include <nRF24L01.h> // Pour les définitions des registres du nRF24L01
#include <MirfHardwareSpiDriver.h> // Pour la communication SPI

char *Addresse_transmission[]={"Ext","Salon","Cuisine","Chambre1","Chambre2"};
long heure_derniere_demande=0;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);

  Mirf.cePin = 8; // Broche CE sur D9
  Mirf.csnPin = 7; // Broche CSN sur D10
  Mirf.spi = &MirfHardwareSpi; // On veut utiliser le port SPI hardware
  Mirf.init(); // Initialise la bibliothèque

  Mirf.channel = 10; // Choix du canal de communication (128 canaux disponibles, de 0 à 127)
  Mirf.payload = sizeof(long); // Taille d'un message (maximum 32 octets)
  Mirf.config(); // Sauvegarde la configuration dans le module radio

  Mirf.setRADDR((byte *) Addresse_transmission[0]); // Adresse de réception
  heure_derniere_demande=millis();
}

void loop() {
  // put your main code here, to run repeatedly:
 int message_test=500;
  Reception();
// Emission(1,message_test);

// delay(6000);
}
void Emission(int cible , byte message)
{
  Mirf.setTADDR((byte *) Addresse_transmission[cible]); //Definition de l'adresse du module cible
  Mirf.send((byte *) &message); // Envois du message
  while(Mirf.isSending());//attente de la fin de l'envoie
  heure_derniere_demande=millis();
}
void Reception()
{
  byte message;
  Serial.println("Reception");
   while(!Mirf.dataReady()) { // On attend de recevoir quelque chose
    if (millis() - heure_derniere_demande > 3000 ) { // Si on attend depuis plus d'une seconde
      Serial.println("Pas de reponce"); // C'est le drame ...
      heure_derniere_demande=millis();
      return;
    }
  }
  // La réponse est disponible
  Mirf.getData((byte *) &message); // On récupère la réponse
  Serial.print("Message recu=");
  Serial.println(message);
}

Avez vous une idée d’ou est mon erreur?

Merci d’avance

int message_test=1000;

Quel est le type du second paramètre de la fonction Emission()?

:slight_smile:

le type était "Byte" cela était donc mon erreur (plus un problème d'alim.. lorsque les module son alimenté par la borne GND et 3.3 ca bug , si je les branche sur le port ISCP ca marche :s)

Merci de votre aide

:slight_smile: