Last Updated on 20. Januar 2021 by sfambach
Das NRF24L01+ Modul habe ich im Internet gefunden. Mir war gleich klar, dass es eine gute Basis für ein ferngesteuertes Auto sein könnte. Mit diesem Beitrag möchte ich den Grundstein hierfür legen und ein einfaches Beispiel aufbauen.
NRF24L01+ ist der Nachfolger des NRF24L01 Modules. Leider ergeben sich hieraus auch ein paar Problem. Das Plus Modul benötigt mehr Strom und ist etwas anspruchsvoller in der Beschaltung. Die Pins sind zwar gleich, doch kann es nötig werden einen Kondensator anzulöten, damit das Modul stabiel läuft. Es empfiehlt sich für das NRF24L01+ den Adapter zu verwenden und diesen mit 5V zu betreiben.
Aufgepasst ist sind aktuell viele Sourcen verfügbar, die für das NRF24L01 Modul entwickelt wurden. Diese müssen nicht unbedingt mit dem NRF24L01+ zusammenarbeiten.
Ansichten
RF24L01+ Mit Antennen Anschluss Front RF24L01+ Mit Antennen Anschluss Rückseite RF24L01+ Antenne Aufgedampft Front RF24L01+ Antenne Aufgedampft Rückseite Adapter Front Adapter Rückseite Modul in Adapter
Hardware
- 2 x Arduino Uno oder kompatibel
- 2 x NRF24L01 Modul
- Ein paar Strippen zur Verkabelung
- „Optional“ der Adapter
Schaltung
Pinbelegung
Arduino Uno | NRF24L01 |
+3V | V+ |
GND | GND |
Pin 9 | CE |
Pin 10 | CSN |
Pin 11 | MOSI |
Pin 12 | MISO |
Pin 13 | SCK |
Pins am Arduino
CE und CSN Pin können frei gewählt werden, die anderen sind durch den SPI Bus vorgegeben. Arduino hat folgende Tabelle veröffentlicht:
Boards | MOSI | MISO | SCK | SS | Level [V] |
---|---|---|---|---|---|
Uno / Duemilanov | 11 / ICSP4 | 12 / ICSP1 | 5 | ||
Mega 1280 / 2560 | 51 / ICSP4 | 50 / ICSP1 | 52 / ICSP3 | 5 | |
Leonardo | ICSP4 | ICSP1 | ICSP3 | 5 | |
Due | SPI-4 | SPI-1 | SPI-3 | 3.3 | |
Zero | ICSP4 | ICSP1 | ICSP3 | 3.3 | |
101 | 11 / ICSP4 | 12 / ICSP1 | 13 / ICSP3 | 3.3 | |
Nano | 11 / ICSP4 | 12 / ICSP1 | 13 / ICSP3 | GND | 5 |
MKR1000 | 8 | 10 | 9 | 3.3 |
Schaltplan

Programmierung
Bibliothek
Bei Source Forge gibt es die folgende Bibliothek:
Besser erscheint allerding diese:
Die Lib als Zip runter laden und installieren. Die Installation findet ihr hier.
Im Beispiel habe ich die Lib mit in die Projektordner kopiert und einwenig angepasst (<> durch „“ bei den includes getauscht).
Testprogramme
Es gibt zwei Programme. RFTrasmitter sendet eine Integer Zahl zwischen 0 und 255. RFReceiver empfängt die Zahl und gibt sie auf der Konsole aus.
Sender
Empfänger
Die Programme auf die Arduinos laden und los gehts.
So sieht es aus


Verwandte Themen
Problem
Keine Verbindung
- Verkabelung überprüfen, alle da, alle richtig angeschlossen?
- Pins im Programm prüfen CS/CSN.
- Kondensatoren anlöten oder das Adapterboard nutzen. Siehe hierzu auch:
http://arduinoinfo.mywikis.net/wiki/Nrf24L01-2.4GHz-HowTo - Bei Nutzung des Adapter boards, dieses mit 5V versorgen.
- Sollte die RF Lib nicht funktionieren, einfach mal bei Adeept vorbei schauen. Deren RF Derivat vom RC Car funktioniert oder Gleiche Lib unter http://tmrh20.github.io/RF24
- Ein paar Benutzer haben noch gemeldet, dass sie mit anderen Leistungsoptionen bessere Erfolge erzielen. Beim Setup die folgende Option ändern:
radio.setPALevel(RF24_PA_LOW); // set power
Optionen: RF24_PA_MIN , RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
Fazit
Wenn die Module erstmal laufen, funktionieren sie gut. Die richtige elektronische Ansteuerung und auch die Wahl der zu verwendenen Biliotheken ist wichtig. Ich habe viele nicht funktionierende Beispiele gefunden da ich nur nRF24L01+ Module zu Verfügung habe. Diese Module haben erhöhte Anforderungen bezüglich ihrer Versorgungsspannung.
Dennoch bieten diese Module eine günstige drahtlose Kommunikationsmöglichkeit.
Quellen
http://arduinoinfo.mywikis.net/wiki/Nrf24L01-2.4GHz-HowTo
http://forum.arduino.cc/index.php?topic=421081
http://arduino-info.wikispaces.com/nRF24L01-RF24-Examples
http://forum.arduino.cc/index.php?topic=256477.0
https://github.com/maniacbug/RF24
https://github.com/naztronaut/nrf24l01--tx-rx-project1
https://lastminuteengineers.com/nrf24l01-arduino-wireless-communication/
Hallo Claus,
danke für deinen Kommentar. Die nRFs habe ich noch nicht auf ihre Reichweite getestet. Ich verwende sie nur zur Fernbedienung von Autos und ähnlichem. Auch hier konnte ich feststellen, dass die Reichweite doch sehr begrenzt ist. Bei den Modulen mit aufgedampfter Antenne noch mehr als bei denen mit anständiger Antenne. Bin leider auch nicht vom Fach und weiss nur aus der Theorie dass die Reduktion des Datenvolumen zu erhöhten Reichweiten füren kann. Gabs da nicht auch eine Einstellung zur Sendeleistung?
Vielleicht wäre ja Lora was für dich. Hier sollen Entfernungen von 2-40 Km, zumindest theoretisch möglich sein. Lars hat einen Beitrag im Esp32 Cam Bereich geschrieben, dass er nur bis auf etwa 200 Meter kommt.
Gruß
Stefan
Hallo Claus,
habe gestern einen Beitrag von Andreas Spiess zum Thema Lora und ESP gesehen.
Besonders hat mir folgendes Aufhören lassen:
Hier mal die Links zu den Videos.
Teil 1:
https://www.youtube.com/watch?v=2rujjTOPIRU
Teil 2:
https://www.youtube.com/watch?v=PUppoaePi3A
Gruß
Stefan
Hallo Stefan, habe Deine Seite bei der Recherche nach nRF24 gefunden und gute Hinweise entdeckt. Danke.
Ich experimentiere derzeit mit nRF24L01 mit PCB-Antenne (Mäander) und habe festgestellt, dass ich die 100 m Reichweite nicht hinbekommen.
Gestartet mit den Default-Einstellungen habe ich ca. 20 m (bei Sicht) erreicht. Dann habe ich die einzelnen Kanäle gescannt und mit Kanal 4 ca. 30 m erreicht. Ich habe allerdings noch nicht auf 250 KBPS reduziert. Was sind Deine Erfahrungen? ich habe mir jetzt noch Module mit SMA-Anschluss und externer Antenne und hoffe da auf bessere Ergebnisse.