RX-FM4SF und RX Pin

Ich habe einen Arduino Nano und einen RX-FM4SF443 Receiver von Aurel. Ich habe alles angeschlossen und so verbunden, dass der Daten-Pin vom Receiver am RX Pin des Nanos angeschlossen ist. Ich habe oben kurzen Sketch geschrieben, der Serial mit 9600 Baud startet und sobald serielle Daten vorhanden sind, diese über die Serielle Leitung an den PC schickt. (Dies ist der Standard Sketch, den es sehr häufig im Internet zu finden gibt) mein Problem ist jetzt, dass ich absolut keine Daten empfange :confused: habt ihr eine Idee, woran das liegen könnte? (Der Sender sendet 100%ig, Frequenz und Modulation sind gleich)

Und jetzt sollen wir im internet nach Standard-Sketch suchen un dir dann sagen, warum es nicht funktioniert?

Ich denke, es liegt entweder am roten oder am blauen Draht, und / oder an zeile 43 deines Sketches, die sollte nicht unsichtbar sein.

42 ! :wink:

Warum postest du deine Frage doppelt ?
Damit wir auf eine deiner Fragen auch antworten können, musst du einen Hyperlink zu deinem Empfänger posten und auch den Sketch in Code-Tags posten.

Das war keine Absicht, dass ich das doppelt poste :confused:

Es handelt sich um diesen Receiver:

Und diesen Code habe ich benutzt:

Die Bedingung Serial.available()>0 tritt niemals ein. Ich habe schon die verschiedensten Varianten dieses Codes probiert, auch über SoftwareSerial die seriellen Ports (vom Receiver, zum Computer) zu trennen, hilft jedoch auch nichts

m1996:
Das war keine Absicht, dass ich das doppelt poste :confused:

Dann lösche den anderen Thread bitte. Mein Posting habe ich bereits gelöscht, Deine musst Du selbst löschen. Oder bitte Uwe darum, den anderen Thread zu sperren.

Ich kenne kaum etwas Nervigeres als doppelte Threads.

Gruß

Gregor

m1996:
Das war keine Absicht, dass ich das doppelt poste :confused:

Das verstehe ich nicht, wieso ist es dann doppelt ?

Und diesen Code habe ich benutzt:
Serial.read() - Arduino Reference

Die Bedingung Serial.available()>0 tritt niemals ein. Ich habe schon die verschiedensten Varianten dieses Codes probiert, auch über SoftwareSerial die seriellen Ports (vom Receiver, zum Computer) zu trennen, hilft jedoch auch nichts

Und wie kommst du da drauf, dass es mit serial funktioniert ?
Du hast hier doch keine UART.

Versuche doch mal mit der Library "virtualWire", die ist für Funk gedacht.
Ob das mit deinem bestehenden Protokoll funktioniert, kann ich nicht sagen.

Hast Du pin 10 vom Aurel mit +5V verbunden? Wenn nicht, ist der Empfänger im Ruhemodus!

Ich habe den Eintrag vom Handy aus gemacht. Als ich dann wieder auf die Seite bin, wurde es mir immer noch angezeigt und ich habe noch mal auf Posten gedrückt, weil ich dachte, dass es beim ersten Mal nicht geklappt hat :confused:

Ok, dann probiere ich das mal, Danke :slight_smile:

Ja, habe ich verbunden

m1996:
Ich habe den Eintrag vom Handy aus gemacht. Als ich dann wieder auf die Seite bin, wurde es mir immer noch angezeigt und ich habe noch mal auf Posten gedrückt, weil ich dachte, dass es beim ersten Mal nicht geklappt hat :confused:

Ok, dann probiere ich das mal, Danke :slight_smile:

Ja, habe ich verbunden

Alles klar, dann den anderen Beitrag bitte löschen.

Kennt Ihr eine Lib, die man für FSK Receiver benutzen kann?

-VirtualWire ist leider nicht für FSK geeignet

m1996:
Kennt Ihr eine Lib, die man für FSK Receiver benutzen kann?

-VirtualWire ist leider nicht für FSK geeignet

Dann nimm mal RadioHead.

Aber welches der ganzen Beispiele soll ich davon benutzen? Mein Receiver ist nirgends aufgeführt

m1996:
Aber welches der ganzen Beispiele soll ich davon benutzen? Mein Receiver ist nirgends aufgeführt

K.A. ....einfach mal probieren.
Ich habe mit deinem Empfänger bisher noch nichts gemacht.

Ich habe es jetzt noch mal über softwareSerial probiert und jetzt bekomme ich Daten :slight_smile: allerdings weis ich nicht genau, wie ich diese richte interpretiere
Mein Sender sendet immer eine Zahl als ein Byte. Wie kann ich genau diese Bytes richtig empfangen? (Ich bekomme durchgehend einkommende Daten, auch wenn mein Sender nicht sendet)

m1996:
Ich habe es jetzt noch mal über softwareSerial probiert und jetzt bekomme ich Daten :slight_smile:

Bitte poste einmal den vollständigen, übersetzbaren Sketch.

Guß

Gregor

m1996:
Mein Sender sendet immer eine Zahl als ein Byte. Wie kann ich genau diese Bytes richtig empfangen? (Ich bekomme durchgehend einkommende Daten, auch wenn mein Sender nicht sendet)

Das ist schon normal, da der Empfänger wohl auch die Störungen in der Luft aufnimmt.
Daraus musst du dann deine Nutzdaten rausfiltern.

Zeig doch mal, was du jetzt empfängst. Ein paar sinvolle Informationen musst du schon liefern, damit wir weiter helfen können.

hier ist mein Sketch:

#include <SoftwareSerial.h>

#define rxPin 3
#define txPin 4

SoftwareSerial softSerial =  SoftwareSerial(rxPin, txPin);

long i = 0;

void setup()  {

 pinMode(rxPin, INPUT);
 //pinMode(txPin, OUTPUT);
 softSerial.begin(9600);

 Serial.begin(9600);
 softSerial.begin(9600);

 Serial.println("starten ...:");
 delay(1000);
}

void loop() {

  if (softSerial.available()){
    
    byte data = softSerial.read();
    Serial.println(data);

  }

}

hier mal ein ganz kleiner Ausschnitt der einkommenden Daten:

217
33
102
49
74
71
226
66
138
250
52
48
131
40
132
117
74
72
241
160
211
108
4
124
135
75
93
56
240
177
180
128
76
20
167
242
45
0
3
134
6
66
60
133
115
146
78
200
137
188
136
50
140
50
190
14
101
5
184
128
162
96
192
168
201
11
251

Mein Problem ist folgendes:
Der Sender sendet direkt nacheinander 11 Bytes, die ich alle empfangen muss.
Dies gelingt mir aktuell nicht, ich weis jedoch nicht, ob es daran liegt, dass von anderen Quellen andere Daten "dazwischen" kommen oder dass die Daten vll noch gar nicht empfangen werden.

Was meint ihr dazu? :slight_smile:

Und noch mal vielen Dank für Eure Hilfe :slight_smile:

Gibt es Zeichen/Zeichenfolgen, die in Deinen Nutzdaten nicht vorkommen können?
Diese könnte man als Anfangs-/Endekennung benutzen.

Gruß Tommy

Und falls es solche Zeichen/Zeichenfolgen nicht gibt, -> Senderseitig Pakete schnüren mit immer gleicher Länge, Strartbyte und Edbyte (vlt. 2 Endbyte). Das kannst Du dann Empfängerseitig gut auswerten.