Microcontrollers Lab

Inhaltsverzeichnis

NRF24L01 ist einer der legalen RF Kommunikatoren für moderne Anwendungen. NRF24L01 ist das billigste und es kommt mit großen Eigenschaften. Ein einziges Modul kommuniziert auf der Frequenz 2,4 GHz, was es legal macht. Es kann Daten mit einem einzigen Modul senden und empfangen. Es kann nicht nur senden und empfangen, sondern auch mit insgesamt 6 anderen NRF24L01-Modulen gleichzeitig kommunizieren. Das Gerät ist mit der Arduino-Anwendung kompatibel und deckt alle Arten von Fernsteuerungsanwendungen ab. Dieses drahtlose Modul verwendet das SPI-Kommunikationsprotokoll und bietet eine Datenrate von 10 MB mit einem Adressbereich von 125, was es zu einem der zuverlässigsten RF-Module macht. Das RF-Modul verwendet das GFSK-Modul, um die Daten zu übertragen.

NRF24L01 Pinout Konfiguration

Im NRF24L01 gibt es keine speziellen Pins, alle Pins, die es zur Kommunikation anbietet, sind in allen Mikrocontrollern und Boards vorhanden. Das Gerät wird über diese Pins mit einem externen Mikrocontroller/Arduino verbunden, um zu funktionieren. Es besteht aus 8 Pins. Alle verfügbaren Pins sind:

Stromversorgungspins

VCC

Der Stromversorgungspin des Moduls ist VCC, der sich mit der Stromversorgung verbindet.

GND

nRF24L01 arbeitet mit einem anderen Mikrocontroller und benötigt eine gemeinsame Masse, um mit ihm zu arbeiten. Der GND-Pin löst die Anforderung der gemeinsamen Masse.

Kommunikations-Pins

CE

CE ist ein Freigabe-Pin, der das Senden/Empfangen des Moduls aktiviert. Er aktiviert das Gerät nur, wenn er selbst auf HIGH ist.

CSN

Dieser Pin dient zum Aktivieren des Abhörens und der Verarbeitung von Daten durch den Mikrocontroller. Um die Datenkommunikation zwischen dem Mikrocontroller und dem Modul aufrechtzuerhalten, sollte er HIGH sein.

SCK

Es ist der Takt-Pin der SPI-Kommunikation im nRF24L01. Die Daten bewegen sich zwischen dem Modul und dem Mikrocontroller entsprechend dem Takt auf dem SCK-Pin.

MOSI

Die Daten, die vom Mikrocontroller durch SPI-Pins übertragen werden, werden vom nRF24L01 am MOSI-Pin empfangen.

MISO

Die vom nRF24L01 über SPI-Pins übertragenen Befehle werden vom Mikrocontroller am MISO-Pin empfangen.

IRQ Interrupt-Pin

IRQ ist ein Interrupt-Pin, der das Ereignis erzeugt, wenn neue Daten für SPI-Pins verfügbar sind. Es hilft, eine Rückmeldung an den Sender zu senden.

NRF24L01 RF Modul Feature

  • Es arbeitet auf 2,4GHz Frequenz, die es in fast jedem Land legal macht.
  • Ein einzelnes Modul kann sowohl als Sender oder Empfänger fungieren.
  • Eine eingebaute Antenne kann die Daten bis zu 100 Meter senden.
  • Ein Modul nRF24L01 kann mit maximal 6 anderen Modulen gleichzeitig kommunizieren.
  • Es benötigt 3,3 Volt für den Betrieb, aber Spannungen können nur bis zu 3,6V reichen, sonst wird es schnell heiß und verbrennt.
  • Das Gerät hat einen eingebauten Oszillator von 16MHz.
  • Die Übertragungsgeschwindigkeit von nRF24L01 beträgt 256kbps bis 2Mbps.
  • Das Gerät verfügt über 125 Kanäle, die die Möglichkeit bieten, 125 verschiedene Netzwerke an einem einzigen Ort zu betreiben.
  • Die Kanalfrequenzen variieren von 2400MHz bis 2525MHz.

NRF24L01 Anwendungen

  • Bei der Erstellung eines kleinen Mesh-Netzwerks ist nRF24L01 die beste Wahl zu verwenden.
  • Fernsteuerungsanwendungen bei der Entwicklung und im kommerziellen Bereich funktionieren wunderbar mit dem nRF24L01.
  • Die meisten IoT-Anwendungen auf Heim-Ebene haben dieses drahtlose Modul, aber nur auf einer kleinen Ebene.

Wie man das NRF24L01 Kommunikationsmodul verwendet

nRF24L01 ist mit allen Mikrocontrollern und Smartboards verwendbar, aber um es zu verwenden, sollten einige Pins und Dateninformationen verstanden werden. Um das Modul zu verwenden, schließen Sie es an einen anderen Mikrocontroller mit SPI-Protokoll an. Zuerst müssen die Geräte mit Strom versorgt werden und dann die SPI-Pins entsprechend der vorgegebenen Schaltung angeschlossen werden.

Nach dem Anschluss ist zu beachten, dass der nRF24L01 auf zwei Arten arbeiten kann. Die erste ist ein Sender und die zweite ein Empfänger. Um als Sender und Empfänger kommunizieren zu können, muss der Mikrocontroller vorher bekannt sein. In der modernen Anwendung ist der Arduino das einzige Gerät, das die effizienteste Kommunikation des nRF24L01 unterstützt.

Interfacing mit Arduino

Es gibt eine Menge Arbeit und Forschung über den nRF24L01 im Internet, die helfen kann, ihn in vielen Anwendungen zu verwenden, aber es gibt die Basis dieses Moduls in Arduino, die jeder Entwickler verstehen sollte. Der Grundbetrieb des nRF24L01 ist Sender und Empfänger, in Arduino sind beide durch die folgenden Methoden erreichbar. Hier ist die Schaltung für Arduino UNO.

Verwendung als Sender Beispiel

Wenn der nRF24L01 als Sender fungieren soll, dann kann er nur auf einem einzigen Kanal Daten an ein anderes Modul übertragen. Um es als Sender zu verwenden, muss das Programm im Arduino bekannt sein. Nach dem Hochladen des Programms gibt es keine Möglichkeiten ohne Programmierung die Modi zwischen Sender und Empfänger zu ändern. Um es als Sender zu verwenden, sollte der folgende Code hochgeladen werden:

Details zum Sendercode

Die Kommunikation zwischen Arduino und nRF24L01 hängt von den folgenden Bibliotheken ab:

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

Wie wir wissen, hat jedes Arduino-Board einen spezifischen SPI-Pin von MISO, MOSI und SCK. Arduino muss diese also nicht kennen, aber die Pins CSN und CE müssen initialisiert werden. Die nRF24L01-Bibliothek hat eine eingebaute Funktion, um die PIN von CSN und CE zu erhalten, die lautet:

RF24 radio(3, 2);

Die Zahl 3 steht für den CE-Pin und 2 für den CSN-Pin. Beide sind entsprechend den digitalen Pins veränderbar; hier sind sie entsprechend der oben angegebenen Schaltung.

Danach muss das Modul mit dem folgenden Befehl initialisiert werden:

radio.begin();

Die Adresse ist mit 5 Bits für das Gerät definierbar, an das es den Empfänger kommunizieren soll. Jede 5-Bit-Zahl ist verwendbar.

radio.openWritingPipe(10101);

Danach sollte das Modul seinen Modus kennen. Entweder arbeitet es als Empfänger oder als Sender. Der folgende Befehl macht den nRF24L01 zu einem Sender.

 radio.stopListening();

Dann ist das Gerät als Sender verwendbar. Das Einzige, was zu initialisieren ist, ist das Senden von Daten. Dabei ist zu beachten, dass wegen der Modulbegrenzung immer nur 32 Byte Daten auf einmal gesendet werden können. Der folgende Befehl hilft, das zu definieren:

const char data = "DATA";radio.write(&data, sizeof(data));

Die Sendedaten können im Setup oder in der Schleife des Programms definiert werden.

Wie man das NRF24L01 als Empfänger verwendet Beispiel

Der obige Teil bezieht sich auf die Sendemethode, aber die Empfängermethode unterscheidet sich nicht vom Sender. Im Sender ändern sich nur drei Anweisungen.

  • Der Adresskanal, der im Sender nicht verfügbar war
  • Die Initialisierung des Moduls als Empfänger
  • Datenempfang und Prüfmethode

Hier ist der folgende Code für den Empfänger.

Details zum Empfängercode

Wie man sieht, unterscheiden sich nur drei Teile des Empfängers vom Sender.

Der erste Teil ist der Adressteil:

radio.openReadingPipe(0,10101);

Im Adressteil gibt es jetzt zwei Teile. der zweite ist der Adressteil, der die Adresse des Übertragungsgerätes definiert. Der erste Teil, der “0” ist, definiert den Kanal. Da wir oben gesagt haben, dass das Modul 6 Kanäle zur Verfügung stellt, um gleichzeitig zu kommunizieren, wird der erste Teil der Programmierung helfen, mehrere Kanäle zu erstellen.

Der zweite Teil ist die Initialisierung des Moduls als Sender. Um das Modul als Sender zu initialisieren, initialisieren Sie den folgenden Befehl:

radio.startListening();

Der dritte Teil ist der Datenempfang.

if (radio.available())

Es wird helfen, über die eingehenden Daten zu wissen

radio.read( data, size );

Es wird helfen, die Daten zu lesen.

NRF24L01 Beispiel

Es gibt eine Reihe von Anwendungen, für die nRF24L01 verwendet werden kann, aber die Erstellung eines Netzes ist eine der besten Fähigkeiten von nRF24L01, die es von anderen Modulen unterscheidet. Um es als Mesh zu verwenden, sollten insgesamt 3-7 Module vorhanden sein. Folgen Sie dem gegebenen Bild.

Dann sollte die folgende Anweisung verwendet werden, um die verschiedenen Kanäle auf der Empfängerseite zu initialisieren.

Der Empfänger ist nicht in der Lage, zwischen den Geräten zu unterscheiden, so dass die Entwickler immer im Hinterkopf behalten, dass die Daten zwischen den Sendern nicht die gleichen sein sollten.

2D-Diagramm

Alternative Module:

  • XBee S2C Modul
  • SX1278 LoRa RF Modul
  • SIM900A GSM Modul
  • ESP12E WiFi Modul
  • PN532 NFC RFID Modul
  • HM-10 Bluetooth Modul
  • HC-05 Bluetooth-Modul
  • 433MHz RF-Empfänger-Modul
  • 433MHz RF-Sender-Modul
  • TSOP1738 IR-Empfänger
  • Arduino MKR1000 WiFi Board

Schreibe einen Kommentar

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