Le NRF24L01+ PA+LNA est la version longue portée de l’émetteur-récepteur 2,4 GHz que l’on trouve sur presque tous les montages radio à base de carte Arduino. Deux étages ont été ajoutés à la puce d’origine : un amplificateur de puissance côté émission et un amplificateur faible bruit côté réception. Là où un module à antenne imprimée s’arrête au bout de quelques dizaines de mètres, celui-ci tient la liaison sur plusieurs centaines de mètres, et jusqu’à environ 1100 m en visée directe, avec son antenne vissée sur le connecteur SMA.
La liaison est bidirectionnelle : chaque module émet et reçoit, le rôle se choisit par programme. La puce gère d’elle-même les accusés de réception et les retransmissions — un paquet qui n’arrive pas est renvoyé sans que le programme s’en occupe. On lui parle en SPI, avec la bibliothèque RF24, et chaque module reçoit une adresse : plusieurs liaisons peuvent donc cohabiter sur la même bande sans se mélanger.
Sur la photo, la carte radio est présentée avec son antenne fouet démontable, vissée sur le connecteur SMA doré en bout de carte. Le connecteur se dévisse : on peut la remplacer par une antenne à gain plus élevé, ou par un câble coaxial pour sortir l’antenne d’un boîtier métallique.
Caractéristiques techniques
| Puce radio | Nordic nRF24L01+ avec étage PA + LNA (amplificateur d’émission et amplificateur faible bruit de réception) |
|---|---|
| Fréquence | 2,400 à 2,525 GHz — bande ISM libre, aucune licence à demander |
| Canaux | 125 canaux espacés de 1 MHz, choisis par programme |
| Modulation | GFSK |
| Débits | 250 kbit/s, 1 Mbit/s et 2 Mbit/s — les deux extrémités doivent être réglées sur le même débit |
| Puissance d’émission | Jusqu’à +20 dBm (100 mW) en crête, réglable par programme sur quatre niveaux |
| Sensibilité de réception | −94 dBm à 250 kbit/s, −85 dBm à 1 Mbit/s, −82 dBm à 2 Mbit/s, améliorée par l’étage LNA |
| Alimentation | 3,0 à 3,6 V continu, 3,3 V nominal — jamais 5 V, la puce est détruite |
| Consommation | Environ 115 mA en pointe pendant l’émission, 45 mA en réception, quelques microampères au repos |
| Interface | SPI matériel, jusqu’à 10 Mbit/s |
| Paquets | Charge utile de 1 à 32 octets, trois tampons FIFO de 32 octets (émission et réception) |
| Réseau | 6 tuyaux (pipes) de réception, réseau en étoile jusqu’à 6 modules autour d’un maître, adresses de 3 à 5 octets |
| Antenne | Connecteur SMA femelle sur la carte, antenne fouet fournie et démontable |
| Connecteur d’entrée | 8 broches mâles au pas de 2,54 mm, sur deux rangées de 4 |
| Portée | Jusqu’à environ 1100 m en visée directe, au débit le plus bas et par temps calme ; quelques centaines de mètres en extérieur dégagé ; nettement moins à travers les murs d’une maison |
Brochage des 8 broches
GND | Masse, commune avec la carte de commande. |
|---|---|
VCC | Alimentation 3,3 V. C’est la seule broche qui ne pardonne pas une erreur de tension. |
CE | Activation de l’émission ou de la réception. Se pilote par programme, n’importe quelle sortie numérique libre. |
CSN | Sélection de la puce pour le bus SPI. N’importe quelle sortie numérique libre également. |
SCK | Horloge SPI. À relier à la broche SCK de la carte (D13 sur Uno et Nano, D52 sur Mega). |
MOSI | Données carte vers module (D11 sur Uno et Nano, D51 sur Mega). |
MISO | Données module vers carte (D12 sur Uno et Nano, D50 sur Mega). |
IRQ | Interruption matérielle, active à l’état bas. Facultative : la bibliothèque RF24 s’en passe très bien, on peut la laisser débranchée. |
Les entrées numériques du nRF24L01+ sont données tolérantes 5 V par le constructeur, à condition d’alimenter la puce entre 3,0 et 3,3 V : les fils SPI d’une carte Arduino en 5 V se branchent donc directement dessus, sans adaptateur de niveau. Cette tolérance ne concerne que les broches de signal — VCC, elle, ne supporte pas plus de 3,6 V.
Les 3,3 V : le point qui fait échouer la plupart des montages
C’est de très loin la première cause de panne sur ce module, et elle est trompeuse : le montage semble fonctionner. Le module est détecté, il émet quelques paquets de près, puis s’arrête sans prévenir ou se réinitialise.
La raison est simple. La broche 3V3 d’une carte Uno ou Nano est fournie par un petit régulateur intégré qui ne tient qu’environ 50 mA de façon fiable, alors que ce module appelle près de 115 mA d’un seul coup au moment de passer en émission à pleine puissance. La tension du 3,3 V s’effondre pendant quelques millisecondes, la puce interprète cette chute comme une coupure d’alimentation et perd ses réglages internes.
Les deux remèdes, à appliquer ensemble :
- Alimenter le module depuis un vrai régulateur 3,3 V, branché sur le 5 V de la carte et capable de fournir 300 mA ou plus. Le Régulateur 5V vers 3.3V fait exactement ce travail : il abaisse le 5 V de la carte en un 3,3 V stable, branché sur
VCCdu module. - Poser un condensateur de 10 µF à 100 µF entre
VCCetGND, au plus près du module, pattes coupées court. Il sert de réservoir pour les appels de courant de l’émission. Un 100 nF en céramique en parallèle complète le découplage des hautes fréquences.
Ces deux points règlent la quasi-totalité des « ça marche puis ça ne marche plus ». Si vous alimentez malgré tout le module depuis la broche 3V3 de la carte, sachez que vous êtes à la limite : le module fonctionnera en réception et échouera en émission longue.
Ce à quoi il sert
- Relier deux cartes Arduino à distance — une sonde d’un côté, l’affichage de l’autre, sans câble ni réseau.
- Télécommande de robot ou de voiture — la liaison radio classique entre le châssis et la manette, avec accusé de réception.
- Réseau de capteurs — plusieurs modules en étoile autour d’un module maître qui centralise les mesures.
- Automatisme à distance — un ordre envoyé depuis une pièce vient coller un relais dans une autre, sans tirer de fil.
- Relevé extérieur — une station posée au fond du jardin, hors de portée du WiFi, remonte ses mesures à la maison.
Mini-projet : relier deux cartes Arduino par radio
Une carte émet un compteur, l’autre l’affiche sur le moniteur série. Le même programme sert des deux côtés : une seule ligne à changer avant de le téléverser sur la seconde carte.
Ce qu’il faut
| Les deux extrémités | Deux cartes Uno R3 avec câble USB, une par module. Un Nano ou un Pro Mini convient aussi très bien, et consomme moins sur un montage alimenté par pile |
|---|---|
| L’alimentation | Un régulateur 3,3 V par module, comme décrit plus haut, indispensable pour tenir les pointes de courant de l’émission |
| Le support | Une plaque d’essai 830 points, pour loger les deux cartes, les modules et leurs condensateurs |
| Les liaisons | 10 câbles Dupont pour relier chaque module à sa carte |
| Les condensateurs | 10 µF à 100 µF et 100 nF par module, à poser au plus près du connecteur du module |
Le câblage
Les broches CE et CSN sont libres : le programme les place sur D7 et D8. Les trois autres fils SPI vont sur les broches matérielles de la carte, celles qui ne se choisissent pas.
Module GND | → Arduino GND |
|---|---|
Module VCC | → sortie 3,3 V du régulateur (et non le 5 V de la carte) |
Module CE | → Arduino D7 |
Module CSN | → Arduino D8 |
Module SCK | → Arduino D13 |
Module MOSI | → Arduino D11 |
Module MISO | → Arduino D12 |
Module IRQ | non branchée |
Le régulateur 3,3 V reçoit le 5 V de la carte et sa masse, puis alimente le module. Sa masse et celle de la carte sont communes, sinon rien ne fonctionne.
Le programme
La bibliothèque RF24 s’installe depuis le gestionnaire de bibliothèques de l’IDE Arduino (menu Croquis puis Inclure une bibliothèque, Gérer les bibliothèques). Le mode « émetteur » s’active en laissant la constante EMETTEUR à 1, et se désactive en la mettant à 0 pour la seconde carte.
/*
* Liaison radio 2,4 GHz - module NRF24L01+ PA+LNA
* Carte : Arduino Uno R3
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "SPI.h"
#include "nRF24L01.h"
#include "RF24.h"
// 1 : cette carte EMET - 0 : cette carte RECOIT
const byte EMETTEUR = 1;
// CE sur D7, CSN sur D8. SCK, MOSI et MISO vont sur les broches SPI de la carte.
RF24 radio(7, 8);
const byte adresse[6] = "MP001"; // meme adresse des deux cotes
byte compteur = 0;
void setup() {
Serial.begin(9600);
Serial.println("Demarrage");
if (radio.begin()) {
Serial.println("Module radio detecte");
} else {
Serial.println("Module radio absent - verifiez le cablage et le 3,3 V");
}
radio.setChannel(76); // 2476 MHz, en dehors du WiFi de la maison
radio.setDataRate(RF24_1MBPS); // 1 Mbit/s : le reglage le plus tolerant
radio.setPALevel(RF24_PA_LOW); // PA_MAX seulement en exterieur, voir plus bas
radio.setRetries(5, 15); // 5 x 250 microsecondes d attente, 15 tentatives
radio.openWritingPipe(adresse); // canal d emission
radio.openReadingPipe(1, adresse); // canal de reception
if (EMETTEUR) {
radio.stopListening();
Serial.println("Role : emetteur");
} else {
radio.startListening();
Serial.println("Role : recepteur");
}
}
void loop() {
if (EMETTEUR) {
compteur = compteur + 1;
byte envoi[1] = {0};
envoi[0] = compteur;
if (radio.write(envoi, sizeof(envoi)) != 0) {
Serial.print("Envoye : ");
Serial.println(compteur);
} else {
Serial.println("Pas d accusé de reception");
}
delay(1000);
} else {
if (radio.available() != 0) {
byte recues[1] = {0};
radio.read(recues, sizeof(recues));
Serial.print("Recu : ");
Serial.println(recues[0]);
}
}
}Comment ça marche
radio.begin()renvoie faux quand la puce ne répond pas sur le bus SPI : c’est le premier contrôle à faire, et il n’a rien à voir avec la portée.openWritingPipe()déclare l’adresse sur laquelle la carte émet,openReadingPipe()celle sur laquelle elle écoute. La même adresse des deux côtés, sinon les deux cartes parlent dans le vide.radio.write()renvoie le nombre d’octets transmis, ou 0 si aucun accusé de réception n’est revenu après toutes les tentatives. C’est un vrai contrôle de liaison, pas un simple ordre donné à la puce.radio.available()est différente de zéro lorsqu’un paquet complet attend dans le tampon de réception : on le lit alors avecradio.read().- Le débit radio (1 Mbit/s) et le débit du moniteur série (9600 bauds) sont deux réglages indépendants : le premier passe dans l’air, le second dans le câble USB.
Réglages qui changent la portée
- La puissance d’émission.
radio.setPALevel(RF24_PA_LOW)suffit à l’intérieur. En extérieur dégagé,RF24_PA_MAXporte plus loin — mais deux modules posés sur la même table à pleine puissance se saturent mutuellement et la liaison devient moins fiable qu’à faible puissance. À essayer avant de chercher une panne ailleurs. - Le débit. 1 Mbit/s est le meilleur compromis. Le 250 kbit/s porte plus loin sur le papier, mais il est mal supporté par certains modules amplifiés : si rien ne passe à ce débit, repassez en 1 Mbit/s avant de conclure que le module est défectueux.
- Le canal. Le canal 76 correspond à 2476 MHz, à l’écart des canaux habituels du WiFi. Si vos mesures montrent des pertes à un endroit précis, changez de canal de quelques unités — la bande est partagée avec le WiFi et le Bluetooth de la maison.
- L’orientation. Une antenne fouet est omnidirectionnelle dans le plan perpendiculaire à son axe et rayonne très mal dans son prolongement. Deux antennes bien verticales, dégagées du métal et des plans de masse, valent mieux qu’un réglage de puissance.
Questions fréquentes
Peut-on alimenter le module directement sur le 5 V de la carte ?
Non. Le VCC du nRF24L01+ supporte 3,6 V au maximum : en 5 V la puce est détruite, immédiatement et sans récupération possible. Les broches de signal, elles, tolèrent le 5 V.
Le module est détecté, mais rien ne se reçoit à plus de quelques mètres. Pourquoi ?
Dans l’ordre : l’alimentation en 3,3 V par un régulateur capable de tenir l’appel de courant, le condensateur de découplage au plus près du module, la puissance d’émission réglée sur un niveau raisonnable, puis le canal. Une erreur de câblage sur MOSI et MISO inversées produit exactement le même symptôme : le module est détecté mais aucun échange n’aboutit.
Quelle portée faut-il attendre en pratique ?
En visée directe, dégagée, avec les antennes fournies et le débit le plus bas, la barre des 1000 m est atteignable — c’est la valeur annoncée pour ce module. Dans une maison, comptez plutôt quelques dizaines de mètres à travers deux ou trois murs, et bien moins derrière un mur porteur en béton armé ou une dalle. Ces modules sont utilisés aussi pour piloter des modèles réduits au sol, où la portée utile dépasse largement le terrain de jeu.
Peut-on faire dialoguer plus de deux modules ?
Oui. Chaque puce possède 6 tuyaux d’écoute, avec une adresse différente par tuyau : un module maître peut ainsi desservir jusqu’à 6 modules en étoile. Pour un réseau maillé de plusieurs dizaines de nœuds, une bibliothèque de réseau construite sur la RF24 prend le relais.
Faut-il une autorisation pour émettre sur cette fréquence ?
Non : la bande des 2,4 GHz est une bande ISM libre. Elle est en revanche partagée avec le WiFi, le Bluetooth et les micro-ondes, ce qui explique la plupart des pertes intermittentes à l’intérieur d’un logement.
À combiner avec
Pour un montage radio plus simple — un sens unique, trois fils, aucun protocole — la paire Émetteur et récepteur radio fréquence 433 MHz se câble en quelques minutes. Si vous préférez partir d’un ensemble complet, le KIT Starter apporte la carte, la plaque d’essai et les fils nécessaires à ces deux montages.









