[Librairies Mirf] [Erreur Compil"]Simple transmission de données via le nRF24L01

Bonsoir a tous !

Je souhaite, dans un premier temps, transmettre de simples données ( comme NL1 & NL0 d’une LED ) grace aux modules nRF24L01. Bien entendu je rencontre un probleme dans le code… J’ai suivi ce tutoriel et j’ai modifié le code, meme enlevé bcp de chose, pour mon simple essai.

Voici ce que j’ai :

/**************************BRANCHEMENTS**************************************
1--> GND
2--> VCC 3.3V (et pas 5V !)
3--> CE (Pin controls RX / TX) --> résistance 10 kΩ --> digital pin8
4--> CSN (Chip select) --> résistance 10 kΩ --> digital pin7
5--> SCK --> résistance 10 kΩ --> digital pin13
6--> MOSI --> résistance 10 kΩ --> digital pin11
7--> MISO --> digital pin12
8--> IRQ --> non utilisé orange
*****************************************************************************/
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
 
int led=2;
boolean etatLED=digitalRead(led);
  
void setup(){
  Serial.begin(9600);
   
                     
    
  Mirf.cePin = 8; // CE sur D8
  Mirf.csnPin = 7; // CSN sur D7
  Mirf.spi = &MirfHardwareSpi; // On veut utiliser le port SPI hardware
  Mirf.init(); // Tout est bon ? Ok let's go !
  
  Mirf.channel = 0; // On va utiliser le canal 0 pour communiquer (128 canaux disponible, de 0 à 127)
  Mirf.payload = sizeof(boolean); // = 1 ici il faut déclarer la taille du "payload" soit du message qu'on va transmettre, au max 32 octets
  Mirf.config(); // Tout est bon ? Ok let's go !
    
  Mirf.setTADDR((byte *)"nrf02"); // Le 1er module va envoyer ses info au 2eme module
  Mirf.setRADDR((byte *)"nrf01"); // On définit ici l'adresse du 1er module
   
   
    
  Serial.println("Go !");
}
  
void loop(){
   
etatLED=digitalRead(led);
  digitalWrite(led,HIGH);
     digitalRead(led);
        Mirf.send(etatLED); // On envoi l'état de la LED
    
        while(Mirf.isSending()); // On boucle (attend) tant que le message n'as pas était envoyé
    
            Serial.print(etatLED);
  delay(10);
    
    
 
}
Et voici le message d'erreur que j’obtiens :

	
  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
Test_02_TX.ino: In function 'void loop()':
Test_02_TX:47: error: invalid conversion from 'boolean' to 'uint8_t*'
Test_02_TX:47: error: initializing argument 1 of 'void Nrf24l::send(uint8_t*)'

J’ai bien vu que sur le tuto du mec il a mit ca :

1
	
Mirf.payload = sizeof(unsigned long); // = 4, ici il faut déclarer la taille du "payload" soit du message qu'on va transmettre, au max 32 octets

car il utilisait ca :

1
	
unsigned long time = millis(); // On stock le temps actuelle retourné par millis() dans time

Comme c’était du “temps”, c’est normal d’utiliser une variable du type : unsigned long

Etant donné que je souhaite vérifier l’état de ma LED et la transmettre, je la définie en tant que variable boolean comme vous avez pu le constater dans mon code.

Et par conséquent, je me dois de changer la fameuse ligne :

1
	
Mirf.payload = sizeof(unsigned long); // = 4, ici il faut déclarer la taille du "payload" soit du message qu'on va transmettre, au max 32 octets

J’ai donc changer ce qu’il y avait entre parenthèse par boolean ou boolean etatLED, j’ai meme essayé de mettre “1” juste apres le “=” mais rien n’y fait. J’ai tjr le meme probleme, le meme message persiste et continu de s’afficher…

Je n’ai encore jamais utilisais ces librairies, j’espere que certains ou certaines seront plus habiles que moi, et seront m’expliquer pourquoi le probleme persiste.

Je vous remercie d’avance, et je vous souhaite une bonne soirée :wink:

PS : J’espère avoir été suffisamment clair dans mon post, mais néanmoins, si jamais j’ai oublié des éléments, explications, n’hésitez pas a me le signaler :slight_smile: