Hallo,

ich habe mir diesen UART-FS20-Sender für meinen Arduino Uno gekauft. Ich möchte per SoftwareSerial Daten lesen und schreiben und habe dabei Probleme. Wenn ich den Taster drücke, kann ich ohne Probleme die Daten einlesen, welche auch dem richtigen Format entsprechen.
Wenn ich aber Daten schreibe, dann passiert hin und wieder was, oder gar nichts. Meist antwortet der Sender mit irgendwelchen Bytes, die dem Protokoll gar nicht entsprechen und hin und wieder sendet er mir eine Antwort (im richtigen Format), dass ich die Daten falsch angegeben hätte. Nur kann ich hier keinen Fehler erkennen.


#include <SoftwareSerial.h>

const int rxPin = 9;
const int txPin = 10;

SoftwareSerial fs(rxPin, txPin);

void write_with_log(SoftwareSerial& s, byte *data, size_t len) {
Serial.println(s.write(data, len), DEC);
}

void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);

fs.begin(9600);
Serial.begin(9600);
}



void loop() {
bool bFlag = false;
for(;fs.available(); delay(50)) {
Serial.print(fs.read(), HEX);
Serial.print(' ');
bFlag = true;
}

if(bFlag)
Serial.println();

static int iLast = millis();
int iCurrent = millis();

if(Serial.read() != -1 && (iCurrent >= (iLast + 100))) {
byte data = { 0x02, 0x06, 0xF1, 0xFD, 0x04, 0x02, 0x11, 0xFF };
write_with_log(fs, data, 8);

iLast = iCurrent;
}
}


Und hier die Ausgabe, wenn ich im Monitoring die Enter-Taste gedrückt halte:

8
8
8
8
2 2 6 1
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
90 90 50 F0
8
8

Man kann dabei gut erkenne, dass er oft gar keine Antwort zurücksendet, oder auch mit falschen Daten antwortet. Ich glaube, dass der Fehler selber beim Senden auftritt. Kalte Lötstellen habe ich auch nicht und somit weiß ich nicht mehr, was ich tun soll.
Ich würde mich auf eine Antwort freuen :D

Grüße aus Österreich