Versuche mal die Beispiele vo hier: http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo http://arduino-info.wikispaces.com/nRF24L01-RF24-Examples
Ich habe mit dem Bespielsketch eine Verbindung hinbekommen.
Außerdem: hast du die Module mit 3,3V gespeist? Mehr vertragen die nicht an Betriebsspannung. Weiterhin sollte direkt an den Modulpins ein 100n KerKo und ein 10µF Elko angelötet werden, damit es zu keinen Spannungseinbrüchen kommt. Bei mir hat das so funktioniert. Ansonsten beachte die Ausführungen, das manche au den Arduinos on board vorhandnen Spannungsregler nicht genug Strom liefern können und teste die low power Einstellungen, ob es mit denen funktioniert. Des weiteren sind faktisch alle billigen Chinamodule mit gefakten NRF Chips bestückt sind, die ebenfalls Probleme machen können Nordic NRF24L01+ - real vs fake : weekend die-shot : ZeptoBars
Hallo nix_mehr_frei
Ja ich habe die Module mit 3.3 Volt gespeist.
Das die Arduinos nicht genug Strom liefer können habe ich auch gelesen, deshalb habe ich eine Extrene Stromversorung mit einem Lm 1117 gemacht. Es kommen dann 3.28 Volt am Modul an.
Was ich nicht gemacht habe sind die 100 nF , und das werde ich jetzt mal Probieren.
Die Module sind von China
Hallo
Jetzt habe ich den Code fertig.
Ich will die Werte von einem LDR übertragen .
Senderseite werden auch die korrekten Werte in Serial Monitor angezeigt .
Aber auf der Empfängerseite wird nur Müll im Serial Monitor angezeigt .
Habe das von einem Beispielcode übernommen.
Was ist daran Falsch.
Bitte um einen Tip.
Danke Stefan
Ich muss eine Art Zugangskontrolle machen.
Das heist auf eine Seite des Grundstückes kommt eine Laserdiode und auf die andere Seite soll der LDR dann von der Laserdiode angestrahlt werden.
Wenn das mit eimem LDR nicht geht was kann ich dann nehmen .
Wenn du Arrays verwendest solltest du auch verstehen was gemacht wird. Und nicht auf Indizes zugreifen die nicht existieren. Ein Array der Größe N geht von 0 bis N - 1
Ein Array der Größe 1 kann sowieso durch eine Variable ersetzt werden!
Den Code mit dem Array habe ich im Netz gefunden.
Kannst du mir das mal mit dem Array der Größe ("\n") erklären.
Ich habe noch nicht all zu viel Erfahrung mit dem Programmieren.
Man sollte halt nicht alles einfach übernehmen. Es gibt auch viel falsches.
Du hast ein Array das ein Element einhält. Das hat den Index 0. 1 ist ungültiger Speicher. Wenn du auf [1] lesend zugreifst kommt Unsinn heraus. Wenn du darauf schreibst bringst du wahrscheinlich dein Programm zum Absturz. In C/C++ musst da da ganz gut aufpassen, da bei Arrays nichts überprüft wird.
Allgemein hat z.B. ein Array der Größe 5 die Indizes 0 bis 4. Eben maximal eins weniger als die Größe, da man bei 0 anfängt zu zählen.
Meiner Ansicht nach war auch eine zu hohe (u.U. illegale) Frequenz von 2.515 MHz eingestellt.
Ich lasse den Wert jetzt zwei mal in der Sekunde übertragen, sowohl roh als auch berechnet.
Ich habe den Kram nur compiled, nicht getestet.
Wenn du mit einem Array arbeiten willst, wäre es ganz gut die Beschreibung zum Array zu lesen- da gibt es im Arduino Tutorial eigentlich ganz gute Tipps...
Prinzipiell hast du eine Array mit mehreren Stellen wie z.b.:
long meineWerte[4] = {Wert1, Wert2, Wert3, Wert4};
willst du auf nun einen Wert davon setzen sagst du:
Danke für den SUPER CODE
Wenn ich den code jetzt richtig versanden habe,
ist der raw der Wert des LDRs und byte ist die größe des gesendenten Packets .
Es werden halt beide Werte, der gelesene (ein int) und der in ein Byte gewandelte, übertragen und ich hoffe auf beiden Seiten ordentlich ausgedruckt.
Ich sehe da keine echte Verwendung von Arrays, die Paket Struktur erlaubt da mehr als ein Array.
Bei tabellarischen homogenen Daten (mehrere/viele gleiche Elemente) würde ich Arrays benutzen,
zum Zusammenfassen mehrerer verschiedener Daten(typen) nähme ich eine struct oder class,
ansonsten den Datentyp der meinen Anwendungsbereich abdeckt.
So wie ich zum Braten eine Pfanne und zum Grillen einen Grill nähme... da gibt es nicht viel zu lernen finde ich.