Arduino NRF24L01
Aller à la navigation
Aller à la recherche
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Partie électronique
Le composant
Le NRF24L01 utilise le protocole SPI pour communiquer et fonctionne sur la bande des 2.4GHz
NRF24L01 | Broches |
Le NRF24L01 intègre un contrôleur qui permet de modifier la puissance d'émission, le canal, de le mettre en mode veille, etc...
Le montage
Le montage suivant utilise 7 fils : 2 pour l'alimentation, 4 pour le SPI et 1 pin CE
N'oubliez pas qu'il faut le même montage de l'autre côté pour pouvoir émettre et recevoir...
Partie logicielle
Envoyer un message
Voila un exemple qui permet d'envoyer un message :
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(7, 8);
char ON[] = "on";
char OFF[] = "of";
const uint8_t address[] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
void setup(void) {
Serial.begin(9600);
if(!radio.begin()){
Serial.print(F("Radio fail"));
while(true);
}
radio.openWritingPipe(address);
Serial.println(F("Ready"));
}
void loop(void) {
radio.write(ON, sizeof(ON));
delay(1500);
radio.write(OFF, sizeof(OFF));
delay(1500);
}
Recevoir un message
Voila un exemple qui permet de recevoir le message et d'allumer une LED sur la broche 3 :
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(7, 8);
char msg[3];
const uint8_t address[] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
int LED1 = 3;
void setup(void) {
Serial.begin(9600);
if (!radio.begin()) {
Serial.print(F("Radio fail"));
while (true);
}
radio.openReadingPipe(1, address);
radio.startListening();
pinMode(LED1, OUTPUT);
Serial.println(F("Ready"));
}
void loop(void) {
if (radio.available()) {
radio.read(msg, sizeof(msg));
Serial.println(msg);
if (strcmp(msg, "on") == 0) {
digitalWrite(LED1, HIGH);
}else if (strcmp(msg, "of") == 0) {
digitalWrite(LED1, LOW);
}
delay(100);
}
}