Mes 2 NRF24L01 avec antenne ne communique pas

Bonjour, mes 2 nrf24l01 (avec antenne externe) ne communique pas alors pour je ne sais quel raison, même avec le code le plus simple que je puisse faire. J’ai suivi plusieurs tuto (avec alim externe, filtrage en 3.3v, avec différent niveau de puissance de l’antenne, etc…) mais rien n’y fais, ça ne marche toujours pas. Je suis sur a 99% que c’est pas un problème de câblage et je pense pas que le matériel est mauvais car je viens de l’acheter

J’ai un module émetteur avec un Arduino Pro Mini (Atmega328p 5 16Mhz) et récepteur avec aussi un pro mini (Atmega168 3.3v 8mhz)

J’espère que vous pourrez m’aidez

Code de l’emmeteur:

   #include <SPI.h>
    #include <nRF24L01.h>
    #include <RF24.h>
    #define CE_PIN 5
    #define CSN_PIN 6

const uint64_t pipe = 0xE;

RF24 radio(CE_PIN, CSN_PIN);
  char data[] = "YEEEES IL FONCTIONNE";

void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
}

void loop() {
  radio.write(data,sizeof(data));
}

Code du récepteur:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 3
#define CSN_PIN 2

const uint64_t pipe = 0xE;

RF24 radio(CE_PIN, CSN_PIN);
  char data[50] = "";

void setup() {
  Serial.begin(9600);
  delay(1000);
  Serial.println("Recepteur démarré");
radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();;
}

void loop() {
  if (radio.available()) {
    bool done = false;
    while (!done) {
      Serial.println(data);
    }
  }
  else {
    Serial.println("Aucune radio détécté");
  }
}


Relisez un peu cette partie

Si je demande de l’aide c’est que je ne sais pas ou est mon erreur.
Je débute a peine en codage, je viens ici pour qu’on me montre comment régler mes erreurs.
C’est peut-être évident pour vous mais pas pour moi.

C’est un forum pour apprendre, on essaye de vous rendre autonome

Demandez vous

  • comment le contenu de data arrive dans la variable
  • comment vous allez sortir de cette boucle while ? (Qu’est-ce qui va faire que la condition va devenir fausse)

(Et Côté émetteur ça fait un peu mitraillette d’envoyer le message aussi souvent que la loop le peut… )

Bonjour
Plusieurs problèmes potentiel.

Coté émetteur :
Stopper le mode écoute
Dans la loop , mettre une pause entre deux transmissions

Coté récepteur:
Il un soucis effectivement avec le while(!done) on ne sort jamais de cette boucle.
Il manque la lecture de la donnée disponible

Voici un lien vers un tuto complet.

Et enfin mettre un peu de distance entre émetteur et récepteur pour ne pas saturer ce dernier.

J’ai posté un code de test ici pour un autre membre

Ça pourrait vous donner une base

Merci pour vos réponse,

[Leptro]
Coté émetteur :
Stopper le mode écoute
Dans la loop , mettre une pause entre deux transmissions

Coté récepteur:
Il un soucis effectivement avec le while(!done) on ne sort jamais de cette boucle.
Il manque la lecture de la donnée disponible

Voici un lien vers un tuto complet.

Et enfin mettre un peu de distance entre émetteur et récepteur pour ne pas saturer ce dernier

J’ai refais le tuto en entier et copier-coller le code pour être sur que le problème ne viens pas de ma programmation hasardeuse, j’ai “mis de la distance” (que ce soit cote a cote ou a 2,5,10 mètres) mais rien ne change.

[J-M-L] Jackson

J’ai posté un code de test ici pour un autre membre

Ça pourrait vous donner une base

J’ai aussi testé votre code et testé différente version de la librairie mais sans succès.

J’ai revérifié chaque soudure et chaque connexion, testé différente alimentation, mais le résultat reste le même.

Cependant je viens de remarqué qu’un de mes modules a un défaut a la base de l’antenne

Je peux pas voir si des pistes sont coupé mais je vais commandé d’autre antenne sur Amazon (EBay est pas si fiable que ça…)

Je vous donne des nouvelles lundi mais si vous avez d’autre idée n’hésité pas

ce code fonctionne avec différents arduino, je serais tenté d’incriminer vos PCB ou le montage

avez vous essayé vos modules NRF24L01 en les connectant à un Arduino sans passer par votre PCB?

On dirait plutôt une soudure de mauvaise qualité et une bavure de soudure sur l’une des broches de masse. Avec un bon fer à souder tu devrais pouvoir lui régler son compte.

Déjà essayé, sans résultat et le PCB est en parfait état, aucune piste n’est rompu, les soudure sont bonne aussi.

J’ai essayé de ressouder du mieux que je pouvais mais toujours rien…
J’espère vraiment que c’est juste un défauts des modules parce que la je suis désespéré :disappointed:

Dans la fonction setup() :

 // recherchez cette ligne
  radio.begin();
  // ajoutez ceci :
  Serial.print("Radio connected: ");
  Serial.println(radio.isChipConnected() ? "YES" : "NO !!!");

Pour vérifier que le dialogue SPI est OK.

1 Like

Merci pour l’astuce je connaissais pas :+1:

Au final l’erreur venait bien des antennes, y en a une qui ne fonctionnais tout simplement pas :sweat_smile:

Merci de votre aide !