bonjour je souhaite faire un projet avec deux nrf24l01 avec antenne et une carte intermédiaire pour gérer l'alimentation du module nrf24. pour tester la communication j'ai sortie deux Arduinos nano fraichement reçu.et j'ai tester un code de ce site.
Code de programmation émetteur Hello World :
/*
______ _ _/// _ _ _
/ _ \ (_) | __\| | | | (_)
| [_| |__ ___ ___ _ ___ _ __ | |__ | | ___ ___| |_ _ __ ___ _ __ _ ___ _ _ ___
| ___/ _ \| __|| __| |/ _ \| '_ \_____| __|| |/ _ \/ _| _| '__/ \| '_ \| |/ \| | | |/ _ \
| | | ( ) |__ ||__ | | ( ) | | | |____| |__ | | __/| (_| |_| | | (_) | | | | | (_) | |_| | __/
\__| \__,_|___||___|_|\___/|_| [_| \____/|_|\___|\____\__\_| \___/|_| |_|_|\__ |\__,_|\___|
| |
\_|
Fichier: HelloWorldNRF24L01-Emetteur
Description: Emission d'un "Hello World" via un NRF24L01
Auteur: Passion-Électronique
Librairie utilisée : https://github.com/nRF24/RF24
Créé le 19.03.2021
*/
#include <SPI.h>
#include <RF24.h>
#define pinCE 7 // On associe la broche "CE" du NRF24L01 à la sortie digitale D7 de l'arduino
#define pinCSN 8 // On associe la broche "CSN" du NRF24L01 à la sortie digitale D8 de l'arduino
#define tunnel "PIPE1" // On définit un "nom de tunnel" (5 caractères), pour pouvoir communiquer d'un NRF24 à l'autre
RF24 radio(pinCE, pinCSN); // Instanciation du NRF24L01
const byte adresse[6] = tunnel; // Mise au format "byte array" du nom du tunnel
const char message[] = "Hello World !!!"; // Message à transmettre à l'autre NRF24 (32 caractères maxi, avec cette librairie)
void setup() {
radio.begin(); // Initialisation du module NRF24
radio.openWritingPipe(adresse); // Ouverture du tunnel en ÉCRITURE, avec le "nom" qu'on lui a donné
radio.setPALevel(RF24_PA_MIN); // Sélection d'un niveau "MINIMAL" pour communiquer (pas besoin d'une forte puissance, pour nos essais)
radio.stopListening(); // Arrêt de l'écoute du NRF24 (signifiant qu'on va émettre, et non recevoir, ici)
}
void loop() {
radio.write(&message, sizeof(message)); // Envoi de notre message
delay(1000); // … toutes les secondes !
}
Code de programmation récepteur Hello World :
/*
______ _ _/// _ _ _
/ _ \ (_) | __\| | | | (_)
| [_| |__ ___ ___ _ ___ _ __ | |__ | | ___ ___| |_ _ __ ___ _ __ _ ___ _ _ ___
| ___/ _ \| __|| __| |/ _ \| '_ \_____| __|| |/ _ \/ _| _| '__/ \| '_ \| |/ \| | | |/ _ \
| | | ( ) |__ ||__ | | ( ) | | | |____| |__ | | __/| (_| |_| | | (_) | | | | | (_) | |_| | __/
\__| \__,_|___||___|_|\___/|_| [_| \____/|_|\___|\____\__\_| \___/|_| |_|_|\__ |\__,_|\___|
| |
\_|
Fichier: HelloWorldNRF24L01-Recepteur
Description: Réception d'un message "Hello World" depuis un autre arduino nano, via un NRF24L01
Auteur: Passion-Électronique
Librairie utilisée : https://github.com/nRF24/RF24
Créé le 19.03.2021
*/
#include <SPI.h>
#include <RF24.h>
#define pinCE 7 // On associe la broche "CE" du NRF24L01 à la sortie digitale D7 de l'arduino
#define pinCSN 8 // On associe la broche "CSN" du NRF24L01 à la sortie digitale D8 de l'arduino
#define tunnel "PIPE1" // On définit le "nom de tunnel" (5 caractères) à travers lequel on va recevoir les données de l'émetteur
RF24 radio(pinCE, pinCSN); // Instanciation du NRF24L01
const byte adresse[6] = tunnel; // Mise au format "byte array" du nom du tunnel
char message[32]; // Avec cette librairie, on est "limité" à 32 caractères par message
void setup() {
// Initialisation du port série (pour afficher les infos reçues, sur le "Moniteur Série" de l'IDE Arduino)
Serial.begin(9600);
Serial.println("Récepteur NRF24L01");
Serial.println("");
// Partie NRF24
radio.begin(); // Initialisation du module NRF24
radio.openReadingPipe(0, adresse); // Ouverture du tunnel en LECTURE, avec le "nom" qu'on lui a donné
radio.setPALevel(RF24_PA_MIN); // Sélection d'un niveau "MINIMAL" pour communiquer (pas besoin d'une forte puissance, pour nos essais)
radio.startListening(); // Démarrage de l'écoute du NRF24 (signifiant qu'on va recevoir, et non émettre quoi que ce soit, ici)
}
void loop() {
// On vérifie à chaque boucle si un message est arrivé
if (radio.available()) {
radio.read(&message, sizeof(message)); // Si un message vient d'arriver, on le charge dans la variable "message"
Serial.print("Message reçu : "); Serial.println(message); // … et on l'affiche sur le port série !
}
}
et je ne recrois rien . avec un autre code généré lui par GPT j'ai pu voir que mes module étaient détecté mais ne communiquaient juste pas(erreur : Échec de l'envoi !).
//émetteur
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10
RF24 radio(CE_PIN, CSN_PIN);
const byte address[6] = "00001";
void setup() {
Serial.begin(9600);
if (!radio.begin()) {
Serial.println("NRF24L01+ non détecté !");
while (1);
}
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_HIGH);
radio.setDataRate(RF24_250KBPS); // Réduction de la vitesse pour fiabilité
radio.stopListening();
}
void loop() {
const char text[] = "Hello, Receiver!";
if (radio.write(&text, sizeof(text))) {
Serial.println("Message envoyé !");
} else {
Serial.println("Échec de l'envoi !");
}
delay(1000);
}
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10
RF24 radio(CE_PIN, CSN_PIN);
const byte address[6] = "00001";
void setup() {
Serial.begin(9600);
if (!radio.begin()) {
Serial.println("NRF24L01+ non détecté !");
while (1);
}
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_HIGH);
radio.setDataRate(RF24_250KBPS); // Réduction de la vitesse pour fiabilité
radio.startListening();
}
void loop() {
if (radio.available()) {
char text[32] = "";
radio.read(&text, sizeof(text));
Serial.print("Message reçu : ");
Serial.println(text);
} else {
Serial.println("En attente de messages...");
}
delay(1000);
}
après des recherches j'ai vue qu'il était recommander de l'alimenter avec une autre alimentation que l'usb .donc j'ai utilisé un arduino mega alimenté avec une alim 12 v et j'ai connecté les deux vin de la mega et de la nano ensembles et deux GND aussi.toujours rien.
merci de vos futures reponces.

