Arduino Senden / Empfangen mit NRF24
Um Daten von einem Arduiono zum anderen drahtlos zu übertragen kann ein NRF24 Modul verwendet werden. In diesem Artikel wird die Inbetriebnahme des NRF24 am Arduino und ein kurzer Sende- und Empfangstest vorgestellt.
Grundlagen
Das NRF24 Modul wird vom Arduino mit 3,3Volt Spannung versorgt.
Zusätzlich zum Anschluss an die SPI benötigt das Modul zwei weitere Anschlüsse (CE / CSN) an zwei digitalen PINs. Im folgenden wird hier der PIN 7 für CE und der PIN 8 für CSN verwendet.
# | Arduino | NRF24 |
Spannungsversorgung | 3,3V | Vin |
Masse | GND | GND |
SPI | MOSI | MOSI |
SPI | MISO | MISO |
SPI | SCLK | SCLK |
Chip Enable IN | PIN D7 | CE |
Chip Select IN | PIN D8 | CSN |
Das hier gezeigte Beispiel basiert auf der GitHub Bibliothek :
Arduino und NRF24 Transmitter
Der Arduino Transmitter übermittelt durchgehend "Hallo Welt"
#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[] = "Hallo Welt";
radio.write(&text, sizeof(text));
delay(1000);
}
...
Arduino und NRF24 Receiver
Der Arduino Receiver empfängt durchgehend und gibt die empfangenen Daten auf der seriellen Schnittstelle aus. Bei funktionierendem Aufbau erscheint im Seriellen Monitor im Sekundentakt das vom Transmitter gesendete "Hallo Welt".
#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);
}
}
Die Galerie zeigt einen Arduino Nano und einen Arduino Due mit angeschlossenem NRF24 Modul.
...