Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

Arduino NRF24L01

De The Linux Craftsman

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);
  }
}