Transmission de données Analogique avec module NRF et bibliotheque MIRF

bonsoir à tous ,

depuis qq jours je bute sur l’utilisation de la bibliotheque MIRF pour la transmission de données via 3 potentiomètres :

la première carte "Transmission " lit des valeurs venant de 3 potentiomètres et les renvoie à la carte réceptrice pour allumer 3 leds en PWM

J’ai suivis un tuto , mais je n’arrive pas à recevoir les signaux , le cablage est OK

si vous avez une idée , je suis preneur :

TX

/**
 * Exemple de code pour la bibliothèque Mirf – Client d'envoi de tableau de valeurs
 */

#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
 
 
 
 
void setup() {
  Serial.begin(9600);
   
  Mirf.cePin = 9; // Broche CE sur D9
  Mirf.csnPin = 10; // Broche CSN sur D10
  Mirf.spi = &MirfHardwareSpi; // On veut utiliser le port SPI hardware
  Mirf.init(); // Initialise la bibliothéque

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

  Mirf.setTADDR((byte *) "nrf02"); // Adresse de transmission
  Mirf.setRADDR((byte *) "nrf01"); // Adresse de réception
   
  Serial.println("Go !"); 
}
 
void loop() {
  
  int valeurs[3];
 
 
 
  valeurs[0] = analogRead(0);  // potar 1 
  valeurs[1] = analogRead(1); // potar 2
  valeurs[2] = analogRead(2); // potar 3
  
  
  Mirf.send((byte *) &valeurs); // On envoi le message
  
}

RX

/**
 * Exemple de code pour la bibliothèque Mirf – Serveur d'envoi de tableau de valeurs
 */

#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



int Led1 = 3;
int Led2 = 4;
int Led3 = 5;


void setup() {
  
     Serial.begin(9600);
  
     pinMode(Led1, OUTPUT);
     pinMode(Led2, OUTPUT);
     pinMode(Led3, OUTPUT);

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

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

  Mirf.setTADDR((byte *) "nrf01"); // Adresse de transmission
  Mirf.setRADDR((byte *) "nrf02"); // Adresse de réception

  Serial.println("Go !"); 
}

void loop() {
  
  int valeurs[3];
    
  
    Mirf.getData((byte *) &valeurs); // Réception du paquet
    
    
    
  
    
    int val0 = map(valeurs[0], 0, 1023, 0, 255 );
    analogWrite(Led1,  val0);
    
    int val1 = map(valeurs[1], 0, 1023, 0, 255 );
    analogWrite(Led2,  val1);
    
    int val2 = map(valeurs[2], 0, 1023, 0, 255 );
    analogWrite(Led3,  val2);
   
   
  
}

ça semble louche

int valeurs ;
  Mirf.payload = sizeof(valeurs); // <<<<<< ?? 
  // Taille d'un message (maximum 32 octets)

bonsoir JML ,

pourquoi ''ça semble louche " ?
merci à toi

Parceque sizeof(valeurs) c’est 2... et avec ça Mirf.send((byte *) &valeurs);vous pensez envoyer 6 octets (3 int) et idem de l’autre côté vous déclarez 2 et attendez 6