Go Down

Topic: NRF24L01 (Read 214 times) previous topic - next topic

jpehel

Dec 02, 2020, 09:46 pm Last Edit: Dec 02, 2020, 10:37 pm by jpehel
Bonsoir à tous,
J'essaie de faire un petit montage tout simple avec 2 arduino nano et 2 NRF24L01 pour faire une télécommande .
J'ai récupéré le schéma et le code sur la toile et testé ce montage, mais comme vous pouvez le deviner, ça ne marche pas.
Je poste le schéma et le code, et si vous pouvez me dire ou ça pêche, ce serait très sympa.
Merci de vos réponses.
Code: [Select]
Code pour le récepteur:

#include <SPI.h
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int LED1 = 3;
void setup(void){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
pinMode(LED1, OUTPUT);}
void loop(void){
if (radio.available()){
  bool done = false;
  while (!done){
     done = radio.read(msg, 1);
     Serial.println(msg[0]);
     if (msg[0] == 111){delay(10);digitalWrite(LED1, HIGH);}
     else {digitalWrite(LED1, LOW);}
     delay(10);}}
else{Serial.println("No radio available");}}

Code pour l'émetteur :

#include  <SPI.h
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int SW1 = 7;
void setup(void){
 Serial.begin(9600);
 radio.begin();
 radio.openWritingPipe(pipe);}
void loop(void){
 if (digitalRead(SW1) == HIGH){
 msg[0] = 111;
 radio.write(msg, 1);}}






J-M-L

#1
Dec 03, 2020, 12:55 pm Last Edit: Dec 03, 2020, 01:35 pm by J-M-L
dès que vous appuyez sur le bouton ça va faire une émission en mitrailleuse !!
attendez le relâchement du bouton avant d'émettre à nouveau

Cette émission
Code: [Select]
radio.write(msg, 1);ne va envoyer qu'un seul octet.
le tableau msg contient des int donc des trucs sur 2 ou 4 octets suivant votre arduino (vous émettez quand même le 111 puisque c'est une architecture little endian et que ça tient sur 1 octet. Côté réception vous ne savez pas forcément ce qu'il y a dans l'octet de poids fort dans l'absolu même si dans votre cas comme c'est une variable globale il est mis à 0 donc ça devrait aller)

j'ai un petit tuto sur le NRF24 ici, jetez y un oeil pour voir si ce code fonctionne avec votre montage. (si vous voulez aller plus loin j'ai un autre tuto qui montre l'envoi de plus de données: Autre Exemple de communication sans fil nRF24L01+ avec échange de structure)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

jpehel

JML, merci pour ta réponse, je teste ça et je reviens donner le résultat 

jpehel

Bonjour à tous,

Je reviens vers vous après plus d'un mois de silence...
J'ai enfin terminé mon essai, et finalement le problème était tout simple, le 3V3 délivré par l'arduino nano n'est pas assez assez puissant pour alimenter le NRF24L01. J'ai fait une petite alim 3V3 avec un régulateur LM317 et depuis ça fonctionne nickel.
Donc, ce petit message pour remercier ceux qui ont répondu, et aussi pour ceux qui comme moi veulent utiliser le NRF24L01 avec un arduino nano, ne pas utiliser le 3V3 de l'arduino, mais avoir un 3V3 un peu plus puissant.

Merci encore,
A très bientôt pour d'autres questions.....;)

hbachetti

Un NRF24L01 fonctionne parfaitement avec le 3.3V d'une NANO. J'ai de multiples projets qui fonctionnent très bien ainsi, avec une simple capa de découplage de 100nF.
Ma gateway MySensors utilise même un NRF24L01 avec antenne + PA + LNA.

Le 3.3V d'une carte officielle (convertisseur FT232) débite 50mA maxi, amplement suffisant pour un NRF24L01.
Je ne sais pas combien de courant est capable de débiter le CH340, mais avec mes NANOs clones cela fonctionne très bien.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

J-M-L

peut-être que votre capa de découplage de 100nF sert à fournir un coup de boost de temps en temps aussi ?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

hbachetti

Possible. Il me semble que cette capa est recommandée.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

jpehel

Bonjour, 
Je reviens vers vous pour ce problème d'alimentation du module NRF24L01.
J'ai réalisé mon projet qui fonctionne avec une petite alim 3V3.
Je viens de lire sur http://http://hardware-libre.fr/2014/07/arduino-le-nano-officiel/, que 
Quote
Le Nano peut être alimenté par le PC via le connecteur USB mini-B, de 7 à 12V via la pin 30 (Vin) ou via une alimentation 5V régulée sur la pin 27 (5v). Le Nano sélectionne automatiquement son alimentation sur la source au voltage le plus élevé.
La puce FTDI FT232RL n'est alimentée que si le Nano est alimenté par le connecteur USB. La sortie 3.3v ne sera donc disponible que dans ce mode d'alimentation.
Info ou intox ?
Merci de vos réponses

al1fch

#8
Feb 09, 2021, 10:02 am Last Edit: Feb 09, 2021, 10:10 am by al1fch
Quote
Info ou intox ?
la réponse est à portée de clic dans le schéma de la carte Nano d'origine !
On y voit un FT232 alimenté par la ligne 5V et non par VUSB. Le 5V convient d'où qu'il vienne (régulateur linéaire 5V, direct ou VUSB)

Le régulateur linéaire 3,3V interne des CH340 est moins généreux que celui d'un FTDI232
Il sert avant tout au CH340 lui même et il ne faut pas de lui demander  plus d'une vingtaine de mA en externe
Un condensateur parallèle aide bien entendu à répondre à des besoins  transistoires d'un compdant radio externe

Go Up