Wenn zwei oder mehr Arduino-Boards drahtlos über eine Entfernung miteinander kommunizieren können, eröffnen sich viele Möglichkeiten, wie z. B. die Fernüberwachung von Sensordaten, die Steuerung von Robotern, die Heimautomatisierung und vieles mehr. Und wenn es darum geht, preiswerte und dennoch zuverlässige 2-Wege-HF-Lösungen zu haben, leistet niemand bessere Arbeit als das nRF24L01+ Transceivermodul von Nordic Semiconductor.

Das nRF24L01+ (plus) Transceivermodul ist oft online für weniger als zwei Dollar erhältlich, was es zu einer der preiswertesten Datenkommunikationsoptionen macht, die Sie bekommen können. Und das Beste ist, dass diese Module sehr klein sind, so dass Sie eine drahtlose Schnittstelle in fast jedes Projekt einbauen können.

Hardware-Übersicht

Funkfrequenz

Das nRF24L01+ Transceivermodul ist für den Betrieb im weltweiten ISM-Frequenzband von 2,4 GHz ausgelegt und verwendet GFSK-Modulation für die Datenübertragung. Die Datenübertragungsrate kann zwischen 250kbps, 1Mbps und 2Mbps gewählt werden.

Was ist das 2,4 GHz ISM-Band?

Das 2,4 GHz-Band ist eines der ISM-Bänder (Industrial, Scientific, and Medical), das international für die Nutzung von unlizenzierten Geräten mit geringer Leistung reserviert ist. Beispiele sind Schnurlostelefone, Bluetooth-Geräte, Near Field Communication (NFC)-Geräte und drahtlose Computernetzwerke (WiFi), die alle die ISM-Frequenzen nutzen.

Stromverbrauch

Die Betriebsspannung des Moduls liegt zwischen 1,9 und 3.6V, aber die gute Nachricht ist, dass die Logikpins 5-Volt-tolerant sind, so dass wir es leicht an einen Arduino oder jeden 5V-Logik-Mikrocontroller anschließen können, ohne einen Logikpegelwandler zu verwenden.

Das Modul unterstützt programmierbare Ausgangsleistung viz. 0 dBm, -6 dBm, -12 dBm oder -18 dBm und verbraucht unglaublich rund 12 mA während der Übertragung bei 0 dBm, die sogar niedriger als eine einzelne LED ist. Und das Beste ist, dass sie im Standby-Modus 26 µA und im Abschaltmodus 900 nA verbraucht. Deshalb sind sie die erste Wahl für drahtlose Anwendungen mit geringem Stromverbrauch.

SPI-Schnittstelle

Das nRF24L01+ Transceivermodul kommuniziert über ein 4-poliges Serial Peripheral Interface (SPI) mit einer maximalen Datenrate von 10 Mbps. Alle Parameter wie Frequenzkanal (125 wählbare Kanäle), Ausgangsleistung (0 dBm, -6 dBm, -12 dBm oder -18 dBm) und Datenrate (250kbps, 1Mbps oder 2Mbps) können über die SPI-Schnittstelle konfiguriert werden.

Der SPI-Bus verwendet ein Konzept von Master und Slave, in den meisten üblichen Anwendungen ist unser Arduino der Master und das nRF24L01+ Transceivermodul ist der Slave. Im Gegensatz zum I2C-Bus ist die Anzahl der Slaves auf dem SPI-Bus begrenzt, auf dem Arduino Uno können maximal zwei SPI-Slaves, d.h. zwei nRF24L01+ Transceivermodule verwendet werden.

Hier sind die vollständigen Spezifikationen:

Frequenzbereich 2.4 GHz ISM Band
Max. Luftdatenrate 2 Mb/s
Modulationsformat GFSK
Max. Ausgangsleistung 0 dBm
Betriebsspannung 1,9 V bis 3,6 V
Max. Betriebsstrom 13,5mA
Min. Strom (Standby-Modus) 26µA
Logikeingänge 5V tolerant
Kommunikationsreichweite 800+ m (Sichtlinie

nRF24L01+ Modul Vs nRF24L01+ PA/LNA Modul

Es gibt eine Vielzahl von Modulen, die auf dem nRF24L01+ Chip basieren. Nachfolgend sind die gängigsten Versionen aufgeführt.

nRF24L01+ Wireless Module

Die erste Version verwendet eine On-Board-Antenne. Dies ermöglicht eine kompaktere Version des Breakouts. Allerdings bedeutet die kleinere Antenne auch eine geringere Übertragungsreichweite. Mit dieser Version können Sie über eine Entfernung von 100 Metern kommunizieren. Das ist natürlich im Freien in einem offenen Raum. Die Reichweite in Innenräumen, vor allem durch Wände hindurch, ist etwas geringer.

nRF24L01+ PA LNA Wireless Transceiver Module with External Antenna

Die zweite Version kommt mit einem SMA-Anschluss und einer Entenantenne, aber das ist nicht der eigentliche Unterschied. Der eigentliche Unterschied besteht darin, dass sie mit einem speziellen RFX2401C-Chip ausgestattet ist, der den PA, den LNA und die Sende-/Empfangsschaltungen integriert. Dieser Reichweitenverlängerungs-Chip hilft dem Modul zusammen mit einer Entenantenne, eine deutlich größere Reichweite von etwa 1000m zu erreichen.

Was ist PA LNA?

Der PA steht für Power Amplifier. Er verstärkt lediglich die Leistung des Signals, das vom nRF24L01+ Chip übertragen wird. LNA hingegen steht für Low-Noise Amplifier (rauscharmer Verstärker). Die Funktion des LNA ist es, das

nRF24L01+ PA/LNA Block Diagram

extrem schwache und unsichere Signal von der Antenne (normalerweise in der Größenordnung von Mikrovolt oder unter -100 dBm) zu nehmen und es auf einen brauchbaren Pegel zu verstärken (normalerweise etwa 0.5 bis 1 V)

Der rauscharme Verstärker (LNA) des Empfangswegs und der Leistungsverstärker (PA) des Sendewegs sind über einen Duplexer mit der Antenne verbunden, der die beiden Signale trennt und verhindert, dass der relativ starke PA-Ausgang den empfindlichen LNA-Eingang überlastet. Weitere Informationen finden Sie in diesem Artikel auf digikey.com

Abgesehen von diesem Unterschied sind beide Module drop-in kompatibel. Das heißt, wenn Sie Ihr Projekt mit einem der beiden Module aufgebaut haben, können Sie es einfach ausstecken und ein anderes verwenden, ohne dass Sie irgendwelche Änderungen am System vornehmen müssen.

Wie funktioniert das nRF24L01+ Transceivermodul?

RF Kanalfrequenz

Das nRF24L01+ Transceivermodul sendet und empfängt Daten auf einer bestimmten Frequenz, die als Kanal bezeichnet wird. Damit zwei oder mehr Transceivermodule miteinander kommunizieren können, müssen sie sich auf demselben Kanal befinden. Dieser Kanal kann eine beliebige Frequenz im 2,4-GHz-ISM-Band sein, genauer gesagt zwischen 2,400 und 2,525 GHz (2400 bis 2525 MHz).

Jeder Kanal belegt eine Bandbreite von weniger als 1 MHz. Damit ergeben sich 125 mögliche Kanäle im Abstand von 1MHz. Das Modul kann also 125 verschiedene Kanäle verwenden, was die Möglichkeit bietet, ein Netz von 125 unabhängig voneinander arbeitenden Modems an einem Ort zu haben.

Der Kanal belegt eine Bandbreite von weniger als 1MHz bei 250kbps und 1Mbps Luftdatenrate. Bei einer Luftdatenrate von 2 Mbit/s wird jedoch eine Bandbreite von 2 MHz belegt (größer als die Auflösung der HF-Kanalfrequenzeinstellung). Um also sicherzustellen, dass sich die Kanäle nicht überschneiden und das Übersprechen im 2Mbps-Modus zu reduzieren, müssen Sie einen Abstand von 2MHz zwischen zwei Kanälen einhalten.

Die HF-Kanalfrequenz des von Ihnen gewählten Kanals wird nach der folgenden Formel eingestellt:

Freq(Selected) = 2400 + CH(Selected)

Wenn Sie z.B. 108 als Ihren Kanal für die Datenübertragung auswählen, wäre die HF-Kanalfrequenz Ihres Kanals 2508MHz (2400 + 108)

nRF24L01+ Multiceiver Network

Der nRF24L01+ bietet eine Funktion namens Multiceiver. Es ist eine Abkürzung für Multiple Transmitters Single Receiver. Dabei wird jeder HF-Kanal logisch in 6 parallele Datenkanäle, sogenannte Data Pipes, aufgeteilt. Mit anderen Worten, eine Datenleitung ist ein logischer Kanal im physischen HF-Kanal. Jede Datenleitung hat ihre eigene physikalische Adresse (Data Pipe Address) und kann konfiguriert werden. Dies kann wie folgt veranschaulicht werden.

nRF24L01+ Multiceiver-Netzwerk – Mehrere Sender – ein Empfänger

Um das obige Diagramm zu vereinfachen, stellen Sie sich vor, dass der primäre Empfänger als Hub-Empfänger fungiert, der Informationen von 6 verschiedenen Sendeknoten gleichzeitig sammelt. Der Knotenpunkt-Empfänger kann jederzeit aufhören zu hören und als Sender fungieren. Dies kann jedoch immer nur für eine Leitung/einen Knoten geschehen.

Erweitertes ShockBurst-Protokoll

Das nRF24L01+ Transceivermodul verwendet eine Paketstruktur, die als Enhanced ShockBurst bekannt ist. Diese einfache Paketstruktur ist in 5 verschiedene Felder unterteilt, die unten abgebildet sind.

nRF24L01+ Enhanced ShockBurst Packet Structure

Die ursprüngliche ShockBurst-Struktur bestand nur aus den Feldern Preamble, Address, Payload und dem Cyclic Redundancy Check (CRC). Mit dem verbesserten ShockBurst wurde die Funktionalität für eine bessere Kommunikation durch ein neu eingeführtes Packet Control Field (PCF) erweitert.

Diese neue Struktur ist aus mehreren Gründen interessant. Erstens ermöglicht sie Nutzdaten variabler Länge mit einem Payload-Längenspezifizierer, was bedeutet, dass die Nutzdaten zwischen 1 und 32 Byte variieren können.

Zweitens versieht sie jedes gesendete Paket mit einer Paket-ID, die es dem empfangenden Gerät ermöglicht festzustellen, ob eine Nachricht neu ist oder ob sie erneut gesendet wurde (und somit ignoriert werden kann).

Schließlich, und das ist das Wichtigste, kann jede Nachricht eine Bestätigung anfordern, die gesendet wird, wenn sie von einem anderen Gerät empfangen wird.

nRF24L01+ Automatic Packet Handling

Lassen Sie uns nun drei Szenarien diskutieren, um ein besseres Verständnis dafür zu bekommen, wie zwei nRF24L01+ Module miteinander umgehen.

Transaktion mit Quittierung und InterruptDies ist ein Beispiel für ein positives Szenario. Hier beginnt der Sender eine Kommunikation, indem er ein Datenpaket an den Empfänger sendet. Sobald das gesamte Paket übertragen ist, wartet er (etwa 130 µs) auf den Empfang des Bestätigungspakets (ACK-Paket). Wenn der Empfänger das Paket empfängt, sendet er das ACK-Paket an den Sender. Beim Empfang des ACK-Pakets setzt der Sender ein Interrupt-Signal (IRQ) ein, um anzuzeigen, dass die neuen Daten verfügbar sind.

Transaktion mit verlorenem DatenpaketDies ist ein negatives Szenario, bei dem eine erneute Übertragung aufgrund des Verlusts des übertragenen Pakets erforderlich ist. Nachdem das Paket übertragen wurde, wartet der Sender auf den Empfang des ACK-Pakets. Wenn der Sender es nicht innerhalb der Auto-Retransmit-Delay (ARD)-Zeit erhält, wird das Paket erneut übertragen. Wenn das erneut übertragene Paket vom Empfänger empfangen wird, wird das ACK-Paket übertragen, das wiederum eine Unterbrechung beim Sender erzeugt.

Transaktion mit verlorener BestätigungDies ist wiederum ein negatives Szenario, bei dem eine erneute Übertragung aufgrund des Verlusts des ACK-Pakets erforderlich ist. Selbst wenn der Empfänger das Paket beim ersten Versuch erhält, denkt der Sender aufgrund des Verlusts des ACK-Pakets, dass der Empfänger das Paket gar nicht erhalten hat. Nachdem die Auto-Retransmit-Delay-Zeit abgelaufen ist, wird das Paket erneut übertragen. Wenn der Empfänger nun ein Paket mit der gleichen Paket-ID wie zuvor empfängt, verwirft er es und sendet erneut ein ACK-Paket.

Diese gesamte Paketverarbeitung wird automatisch vom nRF24L01+ Chip ohne Beteiligung des Mikrocontrollers durchgeführt.

nRF24L01+ Transceiver Modul Pinout

Lassen Sie uns einen Blick auf die Pinbelegung der beiden Versionen des nRF24L01+ Transceiver Moduls werfen.

GND ist der Ground Pin. Er wird in der Regel durch ein Quadrat gekennzeichnet, so dass er als Referenz für die Identifizierung der anderen Pins verwendet werden kann.

VCC versorgt das Modul mit Strom. Diese kann zwischen 1,9 und 3,9 Volt liegen. Du kannst es an den 3,3V-Ausgang deines Arduinos anschließen. Denken Sie daran, dass ein Anschluss an einen 5V-Pin Ihr nRF24L01+ Modul wahrscheinlich zerstören wird!

CE (Chip Enable) ist ein aktiv-HIGH-Pin. Wenn er angewählt ist, wird der nRF24L01 entweder senden oder empfangen, je nachdem, in welchem Modus er sich gerade befindet.

CSN (Chip Select Not) ist ein Aktiv-LOW-Pin und wird normalerweise auf HIGH gehalten. Wenn dieser Pin auf Low geht, beginnt der nRF24L01 an seinem SPI-Port auf Daten zu warten und verarbeitet sie entsprechend.

SCK (Serial Clock) akzeptiert Taktimpulse, die vom SPI-Bus-Master bereitgestellt werden.

MOSI (Master Out Slave In) ist der SPI-Eingang zum nRF24L01.

MISO (Master In Slave Out) ist der SPI-Ausgang vom nRF24L01.

IRQ ist ein Interrupt-Pin, der den Master alarmieren kann, wenn neue Daten zur Verarbeitung anstehen.

Verkabelung – Anschluss des nRF24L01+ Transceivermoduls an den Arduino UNO

Nun, da wir die Funktionsweise des nRF24L01+ Transceivermoduls vollständig verstanden haben, können wir damit beginnen, es an unseren Arduino anzuschließen!

Zunächst verbinden wir den VCC-Pin des Moduls mit den 3,3 V des Arduino und den GND-Pin mit Masse. Die Pins CSN und CE können mit einem beliebigen digitalen Pin am Arduino verbunden werden. In unserem Fall sind sie mit den digitalen Pins Nr. 8 und Nr. 9 verbunden. Nun bleiben wir bei den Pins, die für die SPI-Kommunikation verwendet werden.

Da das nRF24L01+ Transceivermodul viele Datenübertragungen benötigt, bietet es die beste Leistung, wenn es an die Hardware-SPI-Pins eines Mikrocontrollers angeschlossen wird. Die Hardware-SPI-Pins sind viel schneller als das „Bit-Banging“ des Schnittstellencodes mit einem anderen Satz von Pins.

Beachten Sie, dass jedes Arduino-Board unterschiedliche SPI-Pins hat, die entsprechend angeschlossen werden sollten. Bei Arduino-Boards wie dem UNO/Nano V3.0 sind diese Pins digital 13 (SCK), 12 (MISO) und 11 (MOSI).

Wenn du ein Mega hast, sind die Pins anders! Sie werden die digitalen 50 (MISO), 51 (MOSI), 52 (SCK) und 53 (SS) verwenden wollen. Zum schnellen Verständnis siehe untenstehende Tabelle.

MOSI MISO SCK
Arduino Uno 11 12 13
Arduino Nano 11 12 13
Arduino Mega 51 50 52

Wenn Sie ein anderes Arduino-Board als das oben genannte verwenden, ist es ratsam, in der offiziellen Arduino-Dokumentation nachzuschauen, bevor man fortfährt.

Verkabelung des nRF24L01+ Wireless Transceiver Moduls mit dem Arduino UNO
Verkabelung des nRF24L01+ PA LNA Wireless Moduls mit dem Arduino UNO

Nicht vergessen! Du musst zwei dieser Schaltungen machen. Eine fungiert als Sender und die andere als Empfänger. Die Verdrahtung für beide ist identisch.

Wenn du alles angeschlossen hast, kannst du loslegen!

RF24 Arduino Library for nRF24L01+ Module

Das Anschließen an das nRF24L01+ Transceivermodul ist ein Haufen Arbeit, aber zum Glück für uns gibt es eine Reihe von Bibliotheken. Eine der beliebtesten Bibliotheken ist RF24. Diese Bibliothek gibt es schon seit mehreren Jahren. Sie ist für Anfänger einfach zu benutzen, bietet aber auch Fortgeschrittenen eine Menge. In unseren Experimenten werden wir die gleiche Bibliothek verwenden.

Sie können die neueste Version der Bibliothek auf dem RF24 GitHub Repository Fork herunterladen oder klicken Sie einfach auf diese Schaltfläche, um die Zip-Datei herunterzuladen:

Um sie zu installieren, öffnen Sie die Arduino IDE, gehen Sie zu Sketch > Include Library > Add .ZIP Library, und wählen Sie dann die RF24-Master-Datei, die Sie gerade heruntergeladen haben. Wenn du mehr Details zur Installation einer Bibliothek benötigst, besuche das Tutorial Installing an Arduino Library.

Arduino Code – For Transmitter

In unserem Experiment werden wir nur eine traditionelle ‚Hello World‘ Nachricht vom Sender zum Empfänger senden.

Hier ist der Sketch, den wir für unseren Sender verwenden werden:

//Include Libraries#include <SPI.h>#include <nRF24L01.h>#include <RF24.h>//create an RF24 objectRF24 radio(9, 8); // CE, CSN//address through which two modules communicate.const byte address = "00001";void setup(){ radio.begin(); //set the address radio.openWritingPipe(address); //Set module as transmitter radio.stopListening();}void loop(){ //Send message to receiver const char text = "Hello World"; radio.write(&text, sizeof(text)); delay(1000);}

Der Sketch beginnt mit dem Einbinden der Bibliotheken. Die SPI.h-Bibliothek übernimmt die SPI-Kommunikation, während nRF24L01.h und RF24.h das Modul steuern.

//Include Libraries#include <SPI.h>#include <nRF24L01.h>#include <RF24.h>

Als nächstes müssen wir ein RF24-Objekt erstellen. Das Objekt nimmt zwei Pin-Nummern als Parameter, an die die Signale CE und CSN angeschlossen werden.

//create an RF24 objectRF24 radio(9, 8); // CE, CSN

Als nächstes müssen wir ein Byte-Array erstellen, das die Pipe-Adresse darstellt, über die zwei nRF24L01+-Module kommunizieren.

//address through which two modules communicate.const byte address = "00001";

Wir können den Wert dieser Adresse in eine beliebige 5-stellige Zeichenkette wie „node1“ ändern. Die Adresse ist notwendig, wenn Sie mehrere Module in einem Netzwerk haben. Dank der Adresse kann man ein bestimmtes Modul auswählen, mit dem man kommunizieren möchte, so dass in unserem Fall sowohl der Sender als auch der Empfänger die gleiche Adresse haben.

Nächstes in der Setup-Funktion: Wir müssen das Funkobjekt mit radio.begin() initialisieren und mit der Funktion radio.openWritingPipe() die Adresse des Senders einstellen.

//set the addressradio.openWritingPipe(address);

Schließlich verwenden wir die Funktion radio.stopListening(), die das Modul als Sender einstellt.

//Set module as transmitterradio.stopListening();

Im Schleifenteil: Wir erstellen ein Array von Zeichen, denen wir die Nachricht „Hello World“ zuweisen. Mit der Funktion radio.write() senden wir diese Nachricht an den Empfänger. Das erste Argument hier ist die Nachricht, die wir senden wollen. Das zweite Argument ist die Anzahl der Bytes in dieser Nachricht.

const char text = "Hello World";radio.write(&text, sizeof(text));

Mit dieser Methode können Sie bis zu 32 Bytes auf einmal senden. Denn das ist die maximale Größe eines einzelnen Pakets, die der nRF24L01+ verarbeiten kann. Wenn Sie eine Bestätigung benötigen, dass der Empfänger Daten empfangen hat, gibt die Methode radio.write() einen bool Wert zurück. Wenn sie TRUE zurückgibt, haben die Daten den Empfänger erreicht. Wenn sie FALSE zurückgibt, sind die Daten verloren gegangen.

Die Funktion radio.write() blockiert das Programm, bis es die Bestätigung erhält oder alle Versuche der erneuten Übertragung abgelaufen sind.

Arduino Code – für den Empfänger

Hier ist der Sketch, den wir für unseren Empfänger verwenden werden

//Include Libraries#include <SPI.h>#include <nRF24L01.h>#include <RF24.h>//create an RF24 objectRF24 radio(9, 8); // CE, CSN//address through which two modules communicate.const byte address = "00001";void setup(){ while (!Serial); Serial.begin(9600); radio.begin(); //set the address radio.openReadingPipe(0, address); //Set module as receiver radio.startListening();}void loop(){ //Read the data if available in buffer if (radio.available()) { char text = {0}; radio.read(&text, sizeof(text)); Serial.println(text); }}

Dieses Programm sieht dem Programm des Senders bis auf einige Änderungen sehr ähnlich.

Am Anfang der Setup-Funktion starten wir die serielle Kommunikation. Als nächstes stellen wir mit der Funktion radio.setReadingPipe() die gleiche Adresse wie der Sender ein und aktivieren so die Kommunikation zwischen Sender und Empfänger.

 //set the address radio.openReadingPipe(0, address);

Das erste Argument ist die Nummer des Streams. Sie können bis zu 6 Streams erstellen, die auf verschiedene Adressen reagieren. Wir haben nur eine Adresse für den Stream Nummer 0 erstellt. Das zweite Argument ist die Adresse, auf die der Stream reagieren wird, um die Daten zu sammeln.

Der nächste Schritt besteht darin, das Modul als Empfänger einzustellen und mit dem Empfang von Daten zu beginnen. Dazu verwenden wir die Funktion radio.startListening(). Ab diesem Moment wartet das Modem auf Daten, die an die angegebene Adresse gesendet werden.

//Set module as receiver radio.startListening();

In der Schleifenfunktion: Der Sketch prüft mit der Methode radio.available(), ob Daten an der Adresse angekommen sind. Diese Methode gibt den Wert TRUE zurück, wenn Daten im Puffer vorhanden sind.

if (radio.available()) { char text = {0}; radio.read(&text, sizeof(text)); Serial.println(text); }

Wenn die Daten empfangen wurden, wird ein Array mit 32 Zeichen und Nullen erstellt (später wird das Programm es mit den empfangenen Daten füllen). Um die Daten zu lesen, verwenden wir die Methode radio.read (& text, sizeof (text)). Dadurch werden die empfangenen Daten in unserem Zeichenarray gespeichert.

Am Ende geben wir die empfangene Nachricht auf dem seriellen Monitor aus. Wenn Sie alles richtig gemacht haben und es keine Fehler in den Verbindungen gibt, sollten Sie so etwas in Ihrem seriellen Monitor sehen.

nRF24L01+ Transceiver Ausgabe auf dem seriellen Monitor

Verbesserung der Reichweite des nRF24L01+ Transceiver Moduls

Ein Schlüsselparameter für ein drahtloses Kommunikationssystem ist die Kommunikationsreichweite. In vielen Fällen ist sie der entscheidende Faktor für die Wahl einer RF-Lösung. Lassen Sie uns also besprechen, was wir tun können, um eine bessere Reichweite für unser Modul zu erzielen.

Stromversorgungsrauschen reduzieren

Ein HF-Schaltkreis, der ein Hochfrequenzsignal erzeugt, ist sehr empfindlich gegenüber Stromversorgungsrauschen. Wenn es nicht kontrolliert wird, kann das Rauschen der Stromversorgung die Reichweite erheblich verringern.

Wenn es sich bei der Stromquelle nicht um eine eigenständige Batterie handelt, ist die Wahrscheinlichkeit groß, dass die Stromerzeugung mit Rauschen verbunden ist. Um zu verhindern, dass dieses Rauschen in das System eindringt, ist es ratsam, einen 10-µf-Filterkondensator über die Stromversorgungsleitung so nah wie möglich am nRF24L01+-Modul zu platzieren.

Am einfachsten ist es, ein sehr preiswertes Adaptermodul für nRF24L01 zu verwenden.

nRF24L01+ Adapter

Das Adaptermodul hat eine 8-polige Buchse, an die Sie Ihr nRF24L01-Modul anschließen können. Es kann sowohl das bereits erwähnte Modul mit integrierter Antenne als auch das mit externer Antenne (PA/LNA) aufnehmen. Es hat auch einen 6-poligen Stecker für die SPI- und Interrupt-Verbindungen und einen 2-poligen Stecker für die Stromversorgung.

Das Adaptermodul hat einen eigenen 3,3-Volt-Spannungsregler und einen Satz Filterkondensatoren, so dass Sie es mit einer 5-Volt-Stromversorgung betreiben können.

Ändern Sie Ihre Kanalfrequenz

Eine weitere potenzielle Rauschquelle für einen HF-Schaltkreis ist die äußere Umgebung, insbesondere wenn Sie benachbarte Netzwerke auf demselben Kanal eingestellt haben oder Störungen durch andere Elektronik.

Um zu verhindern, dass diese Signale Probleme verursachen, empfehlen wir, die höchsten 25 Kanäle Ihres nRF24L01+ Moduls zu verwenden. Der Grund dafür ist, dass WiFi die meisten der unteren Kanäle nutzt.

Niedrigere Datenrate

Das nRF24L01+ bietet die höchste Empfängerempfindlichkeit bei 250Kbps Geschwindigkeit, die -94dBm beträgt. Bei einer Datenrate von 2MBps sinkt die Empfängerempfindlichkeit jedoch auf -82dBm. Wenn Sie diese Sprache sprechen, wissen Sie, dass der Empfänger bei 250 Kbps fast 10 Mal empfindlicher ist als bei 2 Mbps. Das bedeutet, dass der Empfänger ein 10-mal schwächeres Signal dekodieren kann.

Was bedeutet die Empfindlichkeit des Empfängers (Rx)?

Die Empfängerempfindlichkeit ist der niedrigste Leistungspegel, bei dem der Empfänger ein HF-Signal erkennen kann. Je größer der absolute Wert der negativen Zahl ist, desto besser ist die Empfängerempfindlichkeit. Zum Beispiel ist eine Empfängerempfindlichkeit von -94 dBm um 12 dB besser als eine Empfängerempfindlichkeit von -82 dBm.

Eine geringere Datenrate kann also die erzielbare Reichweite erheblich verbessern. Außerdem ist für die meisten unserer Projekte eine Geschwindigkeit von 250 Kbps mehr als ausreichend.

Höhere Ausgangsleistung

Die Einstellung der maximalen Ausgangsleistung kann ebenfalls die Kommunikationsreichweite verbessern. Beim nRF24L01+ kann man zwischen den Ausgangsleistungen 0 dBm, -6 dBm, -12 dBm und -18 dBm wählen. Die Auswahl von 0 dBm Ausgangsleistung sendet ein stärkeres Signal über die Luft.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.