Forum: Mikrocontroller und Digitale Elektronik Problem bei Funkübertragung: Arduino mit nRF24L01


von arduino00 (Gast)


Lesenswert?

hallo allerseits,

ich habe zwei Arduino Uno´s und will diese per Funk mit den Nrf-Module 
verbinden. Allerdings habe ich Probleme, eine Datenübertragung 
herzustellen.

Auf dieser Seite findet ihr den Beispielcode, mit dem ich testen will, 
ob überhaupt eine Verbindung stattfindet.

https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo

Wenn ich den Schaltplan und den Code einfach übernehme, müsste das doch 
klappen?

Aber zuerst sollte ich noch ein paar Grundlagen klären, die ich in dem 
Code nicht verstehe

1) const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe
   Warum ist dies genau 0xE8E8F0F0E1LL? Ist dies immer so oder kann das 
bei
   mir anders sein

2) radio.write( joystick, sizeof(joystick) );
   Damit bestimme ich was übertragen werden soll? Welche Übergabewerte
   besitzt diese Funktion?

3) radio.openWritingPipe(pipe);
   radio.openReadingPipe(1,pipe);
   Hiermit gebe ich an, ob ich lese oder schreibe? Warum habe ich noch 
eine 1
   beim lesen als Übergabe?

Ich habe einfach keine Erklärungen zu diesen Funktionen gefunden, die 
mir weiterhelfen

von Dieter S. (Gast)


Lesenswert?

arduino00 schrieb:
> Ich habe einfach keine Erklärungen zu diesen Funktionen gefunden, die
> mir weiterhelfen

Ups, Google kaputt?

http://tmrh20.github.io/RF24/classRF24.html

von Ulrich F. (Gast)


Lesenswert?

arduino00 schrieb:
> Warum ist dies genau 0xE8E8F0F0E1LL? Ist dies immer so oder kann das
> bei
>    mir anders sein

Das Datenblatt zu dem Baustein erklärt, wie eine Adresse auszusehen hat, 
und auch warum manche Bit Muster Sinn machen, und andere nicht. Und aus 
der Menge der akzeptablen Adressen kannst du dir frei welche aussuchen.

von Hans T. (Gast)


Lesenswert?

Bei mir lief auch kein Code, weil ich alles auf nem Breadboard aufgebaut 
hatte. Man muss die Verlöten ud ganz wichtig einen Kero 100nF und 10µF 
zwischen GND und VCC direkt am nrf24 anbringen...dann gehts

von arduino00 (Gast)


Lesenswert?

Danke für eure Antworten, werde das mit dem Kondensator mal versuchen.

Ich würde aber gerne noch mehr über die Adresse wissen und wie diese 
genau auszusehen hat. Konnte im Datenblatt allerdings nicht den 
richtigen Abschnitt finden.

von Ulrich F. (Gast)


Lesenswert?

arduino00 schrieb:
> Ich würde aber gerne noch mehr über die Adresse wissen und wie diese
> genau auszusehen hat.


Aus dem Datenblatt:
Note:
Addresses where the level shifts only one time (that is, 000FFFFFFF) can 
often be detected in noise and can give a false detection, which may 
give a raised Packet-Error-Rate. Addresses as a continuation of the 
preamble (hi-low toggling) raises the Packet-Error-Rate.

Man sollte also zusehen, dass der High/Low Pegel mindestens einmal, 
besser öfter wechselt. Ich rate dir nicht mehr als 5 gleiche Bit 
nacheinander zuzulassen. Dieses schränkt den Pool der insgesamt 
denkbaren Adressen etwas ein.

;-) Es bleiben aber noch genug für dich übrig ;-)

Und dann gibts da noch:
Each pipe can have up to 5 byte configurable address. Data pipe 0 has a 
unique 5 byte address. Data pipes 1-5 share the 4 most significant 
address bytes. The LSByte must be unique for all 6 pipes. Figure 11. is 
an example of how data pipes 0-5 are addressed.

Wobei dieses "Each pipe can have up to 5 byte configurable address." 
erstmal etwas verwirrend wirken kann. Aber das Bild macht dann klar, was 
gemeint ist.

von Peter B. (funkheld)


Lesenswert?

1
Bei mir lief auch kein Code, weil ich alles auf dem Breadboard aufgebaut 
2
hatte. Man muss die Verlöten ud ganz wichtig einen Kero 100nF und 10µF 
3
zwischen GND und VCC direkt am nrf24 anbringen...dann gehts

Ist eine Ansichtssache.
Ich habe meine nrf24 auf 2 Steckbretter und funktionieren tadellos ohne 
zu löten.

Gruss

: Bearbeitet durch User
von Christian J. (Gast)


Lesenswert?

Peter B. schrieb:
> Ich habe meine nrf24 auf 2 Steckbretter und funktionieren tadellos ohne
> zu löten.

Ja? Auch stabil im Dauerlauf? Auch wenn der Sender sich an der Grenze 
der Reichweite befindet? Mit ACK? Meine frieren immer wieder ein, d.h. 
die SPI läuft nicht mehr und liefert nur noch Nullen. Und ich habe alle 
Module die es es gibt, die mit Antenne, die ohne und die 100mW Typen. 
Keines läuft dauerhaft stabil als Empfänger und die mit Antenne senden 
nicht richtig, vermutlich viel zu hohe Last.

Ich reagiere per Interrupt auf ein Datenpaket, prüfe zusätzlich im Int 
dann noch das RX-Bit im Status, ob dieses auch gesetzt ist. Ja, 
meistens... aber nicht immer. D.h. der RX Int wird ausgelöst aber es 
sind keine Daten da, die Fifos sind auch leer.

Ich finde diese Modul sind Schrott, mit Xbee hatte ich nie solche Probs 
aber die sind privat zu teuer. Auch die RFM12 sind deutlich besser und 
stabiler, werde auch wieder auf die umsteigen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.