nRF24L01 2,4GHz Funk-Kommunikation

Und mal wieder habe ich mir Elektro-Spielzeug bei AliExpress bestellt. Dieses Mal zwei nRF24L01-Module. Ist einfach cooler als Bluetooth 😀

Fünf Minuten googeln und ein paar Kabel zusammenstecken, schon liefen die Teile auch direkt, wie sie sollen.

Beim Arduino Mega sind die MOSI/MISO Pins ja direkt beschriftet, beim Uno habe ich die Pin am ICSP Header genommen. Bei der Spannung muss man darauf achten, dass die Module nur mit 3,3V laufen. Dann noch zwei Data-Pins für CSN (Chip Select Not; Modul lauscht, wenn CSN auf low) und CE (zur Datenübertragung) wählen, fertig. Pin IRQ (Interrupt-Pin) ist nicht unbedingt nötig.

Als Bibliothek habe ich die „RF24“ von TMRh20 eingebunden und dann folgenden Code verwendet.

zum Senden:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); //CE, CSN

const byte address[6] = "00001";

void setup() {
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
}

void loop() {
  const char text[] = "Hello World";
  radio.write(&text, sizeof(text));
  delay(1000);
}

und zum Empfangen:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); //CE, CSN

const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}

void loop() {
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.