Arduino NRF24L01
Aller à la navigation
Aller à la recherche
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);
}
}