Arduino et nRF24L01+

Bonjour,

J’ai acheté des modules nRF24L01+ il y a quelques semaines mais je ne m’étais pas encore penché dessus.

Après avoir cherché pas mal d’exemple sur internet pour m’aider je n’arrive pas à transmettre des données entre deux modules même en utilisant un code simple.

Voici le code client :

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

  Mirf.channel = 1;            // Choix du canal de communication (128 canaux disponibles, de 0 à 127)
  Mirf.payload = 32;          // 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 client !"); 
}
 
void loop() {
  byte message[32];
  
  // Lit un message de maximum 32 caractères depuis le port série
  int len = Serial.readBytesUntil('\n', (char*) message, 31);
  if (!len) {
    return;               // Pas de message
  }
  message[len] = '\0';        // Ferme la chaine de caractères
  
  Mirf.send(message);         // On envoie le message
  while(Mirf.isSending());   // On attend la fin de l'envoi
}

Et le code serveur :

#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
                    /////COM3/////
void setup() {
  Serial.begin(9600);

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

  Mirf.channel = 1;               // Choix du canal de communication (128 canaux disponibles, de 0 à 127)
  Mirf.payload = 32;             // 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 serveur !"); 
}

void loop() {
  byte message[32];

  if(Mirf.dataReady()){
    Mirf.getData(message);               // Réception du paquet
    Serial.println((char*) &message);    // Affiche le message
  }
}

Même avec ces deux programmes pourtant trouvé sur internet je n’arrive pas à faire fonctionner les modules ensemble.

Je n’arrive pas non plus à ouvrir 2 moniteurs série simultanément, je ne sais pas si c’est normal mais de ce que j’ai compris du code ça pourrais poser problème.

Sinon c’est peut être un problème de branchement de ma part mais j’ai déjà vérifié plusieurs fois et je ne pense pas que ça soit ça !

Voilà en espérant que vous pourrez m’éclaircir et m’aider sur mon problème.

Merci d’avance pour vos réponses :slight_smile:

Comment sont ils connectés? (listez toutes les pins)

Pin nRF24L01+ / Pin Arduino

Vcc / 3v3

GND / GND

MOSI / resistance 10k / MOSI pin 11

MISO / MISO pin 12

SCK / resistance 10k / SCK pin 13

CSN / resistance 10k / CSN pin 7

CE / resistance 10k / CE pin 8

Bonjour

Je l'ais pas tester.

https://www.youtube.com/watch?v=fWDTAmIqlUQ

bonjour,
lien de l’achat.
mettre des R sur chaque pin et en 3.3v, zarbi
lien de tes tutos?

Lien des modules : modules RF24L01+

Lien du tuto

Dans ce lien justement et dans d'autres post ils disent de mettre des résistance sur ces broches car vu que le module fonctionne en 3v3 les broches de l'Arduino ne devraient pas lui envoyer du 5v ! Peut être que ce n'est pas bon j'ai juste suivi le tuto !

Bonjour, je voulais savoir si il faut que j'alimente mon module en 3v3 ou 5v et s'il faut que je mettent des résistances de 10k sur mes broches ??

rd35520: Bonjour

Je l'ais pas tester.

https://www.youtube.com/watch?v=fWDTAmIqlUQ

Sur ton lien cette personne a mis des condensateurs de 470µF entre GND et Vcc est ce nécessaire ou optionnel ? A quoi servent-ils ?

Merci d'avance ! :)