nRF24L01 : Arduino zu Arduino und zurück?

OP #4443748
Hallo, guten Tag.
Ich habe hier 2 Programme für den Arduino.
Einmal wird 1 Byte gesendet und vom anderen Programm 1 Byte empfangen.

Beide Programme funktionieren.

Wie kann man jetzt bitte beide Programme zusammenlegen, das je ein rf24 
sendet und empfängt, und ein Echo zb zurücksendet. Und das eine Programm 
auf 2 Arduino zum Einsatz kommt und die Aufgabe erfüllt.

Danke.
Gruss

1 Byte-senden:
1
#include <SPI.h>
2
#include <nRF24L01.h>
3
#include <RF24.h>
4

5
#define CE_PIN   53
6
#define CSN_PIN  48
7

8
byte inbyte;
9
byte daten[1]; 
10

11
const uint64_t pipe = 0xE8E8F0F0E1LL; 
12
RF24 radio(CE_PIN, CSN_PIN); 
13

14
void setup()
15
{
16
  Serial.begin(9600);
17
  delay(1000);
18
  radio.begin();
19
  radio.setRetries(0, 15);
20
  radio.setPALevel(RF24_PA_HIGH);
21
  radio.openWritingPipe(pipe);
22
}
23

24
void loop()
25
{
26
  inbyte = inbyte+1;
27
  daten[0] = inbyte;
28
  radio.write(daten, sizeof(daten)); 
29
}

1 Byte-empfangen:
1
#include <SPI.h>
2
#include <nRF24L01.h>
3
#include <RF24.h>
4

5
#define CE_PIN  53
6
#define CSN_PIN 48
7

8
const uint64_t pipe = 0xE8E8F0F0E1LL; 
9
RF24 radio(CE_PIN, CSN_PIN); 
10

11
byte daten[1]; 
12

13
void setup()
14
{
15
  Serial.begin(9600);
16
  delay(1000);
17
  radio.begin();
18
  radio.setRetries(0, 15);
19
  radio.setPALevel(RF24_PA_HIGH);
20
  radio.openReadingPipe(1,pipe);
21
  radio.startListening();
22
}
23

24
void loop()
25
{
26
  if ( radio.available() )
27
  {
28
    bool done = false;
29
    while (!done)
30
    {
31
      done = radio.read( daten, sizeof(daten) );
32
      Serial.print("X = ");
33
      Serial.println(daten[0]);
34
    }
35
  }
36
  else
37
  {    
38
    Serial.println("No radio available");
39
  }
40
}
Gast
Das einfachste ist, du setzt die 3 Zeilen deiner Loop in die 
"While-Schleife".

Dann wird die von dir verlangte Quittung gesendet.
Du musst aber auch die Variablen anpassen.

Ob das so Sinnvoll ist, musst du entscheiden.

Wenn du davor noch eine If-Anweisung schreibst, kannst du damit noch 
Entscheiden, ob das empfangene Byte den richtigen Wert hat.
Gast
Peter B. schrieb:
> Den habe ich selber zum Senden und Empfangen zusammengebaut.
>
> Gruss

Dann versteh ich das nicht:

> Ich bekomme die Meldung, das die Verbindung nicht hergestellt werden
> kann. Vielleicht fehlt da  noch irgendein Kontrollmechanismus in der
> While?
Gast
Peter B. schrieb:
> Es sind 2 verschiedene Programme.
>
> Die bekomme ich für eine Funktion des rf24 nicht zusammen.
>
> Gruss

Ich hatte dir schon beschrieben, wie du es machen sollst.

Sorry, aber dann nehme ich dir nicht ab, dass du obige Sketche selbst 
programmiert hast. Wahrscheinlich nur selbst kopiert.

Dann nimm meinen Rat und lerne die Basics.

Aber evtl. gibt es ja noch einen User, der für dich programmiert, nur 
dann lernst du nichts.
Gast
Peter B. schrieb:
> Du wirst kein Sende und Empfangsprogramm finden für 1 Byte mit dem
> rf24.
>
> Gruss

Such ich auch nicht.
Nur wenn du die selbst programmiert hast, sollte es für dich kein 
Problem sein, mit meinen Tipps beide zusammen zu fügen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.