Last Updated on 1. April 2022 by sfambach
Der RF Nano ist ein Replik des Arduino Nano zusätzlich verfügt er noch über einen NRF24L01 Bautstein. Was ihm die RF Kommuninkation ermöglicht.
Vorsicht es gibt unterschiedliche Versionen dieses Nanos, es lohnt sich also genau hin zu schauen.
Fakten
Das Board sieht wie ein gewöhnlicher Nano aus, wenn da nicht die aufgedampfte Antenne(unten) und ein Micro USB anstatt des Mini-USB Anschlusses wären.
Vergleich mit dem Standard
Die Pinbelegung habe ich mit dem Standard verglichen, diese ist bei mir gleich. (Bitte nochmal überprüfen, da andere Imitate abweichende Pin Belegungen haben könnten).
NRF Verbindungen
Die Pin-Informationen sind dem Schaltplan des Herstellers entnommen.
ACHTUNG: Die Pins für CE und CSN sind bei mir, im Gegenteil zu den meisten Beispielen im Netz, vertauscht, es soll aber auch RF-Nanos mit richtiger Pinbelegung geben.
Beschreibung | Pin |
CE | 10 (9) |
CSN | 9 (10) |
SCK | 13 |
MOSI | 4 |
MISO | 5 |
Anwendungsbereiche
- Ferngesteuerung
- Sensor Knoten
- Alles was mit einander kommunizieren muss.
Ansichten
Programmierung
Bibliotheken
Vom Hersteller benutzte Bibliothek
Meine bewährte Bibliothek hat beim ersten Test nicht funktioneirt, weshab ich erstmal die des Herstellers ausprobiert habe. So konnte ich den Fehler in meinem Programm finden.
https://github.com/joewalnes/arduino-play/tree/master/lib/Mirf
https://github.com/tmrh20/RF24/
Standard RF Bibliothek
Hier die Standard-Bibliothek die ich schon in anderen Projekten verwendet habe.
https://github.com/tmrh20/RF24/
Testprogramme
Programm des Herstellers
Für den ersten Test verwende ich die Programme des Herstellers. Der Quellcode ist auf Github über den folgenden Link verfügbar:
https://github.com/emakefun/emakefun-nano-plus
Ich habe 2 gleiche Nanos erworben und den einen als Empfänger und den anderen als Sender programmiert. Die Ausgabe ist im folgenden Bild zu sehen.
Test mit RF Bibliothek
Hier mein Testprogramm mit der RF Bibliothek. Die Bibliotheksdateien habe ich einfach ins Projekt kopiert. Hier der Code:
Link zum Github Verzeichnis:
https://github.com/sfambach/arduino/tree/master/variants/NanoRF/RFTest
Fernbedienungs Test
Ich habe bereits ein paar Tests mit NRF Chips gemacht. Unteranderem habe ich eine SunFounder Fernbedienung in Betrieb genommen. Diese verwende ich in diesem Sketch als Basis. Die Software ist gleich zu der im gelinkten Projekt, jedoch habe ich für den Empfänger (der auf dem Nano RF ist) den CS auf Pin 10 und den CSN auf Pin 9 eingestellt.
Von Github kann der aktuelle Quellcode geladen werden:
https://github.com/sfambach/arduino/tree/master/variants/NanoRF/SFRemoteTest
Den Receiver wie oben beschrieben auf den Nano RF spielen. Den Transmitter, so wie er ist auf die Fernbedienung spielen.
Probleme
Erste Kommunikation mit RF24 schlug fehl
Der CE und der CSN Pin sind in Gegensatz zu meinen anderen Projekten vertauscht. CE ist auf Pin 10 und CSN ist auf Pin 9.
ACHTUNG Siegfried berichtet (siehe unten in den Kommetaren) , dass er einen Nano mit richtiger Pinbelegung bekommen hat also CSN auf 10 und CE auf 9!
Nano wird von Windows nicht erkannt
Evtl. mal einen CH340 Usb Treiber installieren.
https://github.com/emakefun/emakefun-nano-plus/tree/master/RF-Nano/CH340_Driver
Nahe stehende Empfänger verbinden sich nicht
Rachid beschreibt (siehe unten in den Kommetaren), dass er Probleme bei nahe beieinander stehenden Sender und Empfängern hat und die Initialisierung schief läuft. Bei ihm hat geholfen dei Power hoch zu setzten. Bei den diskreten nRF Modulen kann dies zu Problemen mit der Spannungsversorgung führen.
radio.setPALevel(RF24_PA_LOW); // set power
// tauschen durch
radio.setPALevel(RF24_PA_MAX);
Kanal setzten
Jens beschreibt (siehe unten in den Kommetaren), dass es von Vorteil sein kann den Kanal manuell zu setzen. Dieser wird in der begin Methode der RF lib zwar auf 76 gesetzt zur Fehlerbehebung kann dies jedoch eine Lösung sein, diesen in Sender/Empfänger gemeinsam auf einen einen anderen Wert zu setzen.
void setup(){
...
radio.setPALevel(RF24_PA_LOW);
radio.setChannel(99); // Kanal setzen
...
}
Fazit
Ich bin begeistert, ein Nano mit einem RF Chip, alles was man benötigt um Fergesteuerte bots zu bauen. Hier kann man sich das Verdrahten sparen. Über die Stabilität und das Verhalten im Einsatz kann ich noch nichts berichten. Der erste Test war hierfür zu simpel.
Verwandte Beiträge
Quellen
https://github.com/emakefun/emakefun-nano-plus
https://github.com/tmrh20/RF24/
https://github.com/emakefun/emakefun-nano-plus/tree/master/RF-Nano/CH340_Driver
Ich habe zwei RF-Nano Clones V1229 von aliexpress (angebliche V3.0). Man erkennt V1x an der fehlenden Antennenbuchse.
Sie funktionieren mit RF24 SendRadio(10,9) mit den Beispielskripten von der Seite des Hersteller-Github-Repos https://github.com/emakefun/rf-nano. Die eingestellte Sendeleistung ist nebensächlich, zumindest solange die Nanos nebeneinander liegen.
Danke für deinen Beitrag
Hallo Stefan,
ich habe heute einen RF Nano aus China erhalten (V3.0) und dabei festgestellt, dass er nur arbeitet, wenn ich CE auf D9 und CSN auf D10 im Programm vorgebe. Mit der in verschiedenen Datenblättern und bei Dir genannten Variante kommt keine Übertragung zustande.
Gruß Siegfried
HI Stefan,
danke für die Infos. Ich denke, dass bei dem Beispiel mit der RF-Bibliothek noch der Kanal gesetzt werden soltle, bspw. nach der Sendestärke:
…
radio.setPALevel(RF24_PA_LOW); // set power
radio.setChannel(99); // NEU
,,,
Viele Grüße,
Jens
Hallo Jens,
danke für deinen Vorschlag. Der Kanal wird in der begin Methode der RF Biliothek auf 76 gesetzt. Ich habe es dennoch ausdokumentiert mit in den Code aufgenommen um evtl. Probleme zu beheben.
Gruß aus Hessen
Stefan
Hallo Stefan,
habe mich gefreut, dass du gleich geantwortet hast. Ich hatte Probleme, wahrscheinlich weil ich Sender und Empfänger unabhängig genutzt habe. Allerdings hatte ich auch die RF24-Library über den Arduino-Bibliotheksmanager eingebunden.
Viele Grüße,
Jens
Guten Tag,
ich habe eigentlich alles verfolgt wie beschrieben. CE und CSN Pins sind auch korrekt. Verdrahtung ist soweit auch sauber. Leider steht meine Ausgabe immer bei „SPI settings
init rf“ und das wars. Wo könnte mein Problem liegen?
Vielen Dank.
Hallo Rachid, ich kenne deinen genauen Testaufbau leider nicht. Zum Beispiel was deine Gegenstelle ist. Aber die RF Module, gerade die neueren, sind sehr kritisch was die Versorgungsspannung an geht. Wenn das eine Option ist, mal den Nano mit einer externen Spannungsquelle verbinden.
Auch kann man mit den Einstellungen spielen. Evtl nochmal pin cs und csn Pin rücktauschen.
Gruß
Stefan
Hallo Stefan,
vielen Dank für die schnelle Antwort.
Ich habe jetzt PA_LOW mit PA_MAX getauscht und dann hats funktioniert. Manchmal zu langsam und manchmal genau. Aber ich denke nur weil Empfänger und Sender zu nah stehen.
Vielen Dank.
VG,
Rachid
Hi Rachid,
danke für deine Lösung. Es wundert mich, dass mehr Power und bei kurzen Strecken was ändert, werde es mit in die Problembehandlung mit aufnehmen.
Gruß aus Hessen
Stefan