Wahrscheinlich schickst du die falsche Terminierung. Im Seriellen Monitor kann man das unten rechts umstellen. Mit 'Neue Zeile' sollte es funktionieren.
Wahrscheinlich schickst du die falsche Terminierung. Im Seriellen Monitor kann man das unten rechts umstellen. Mit 'Neue Zeile' sollte es funktionieren.
Wenn ich die SS2 nur mit read auslese, erhalte ich hex 106, 97,13,10 das sind j, a, CR und LF.
Das wäre ja fast plausibel, da ich das "ja" von einem anderen Arduino mit println sende. Aber das sind ja nun 4 und nicht 3 Zeichen.
Ich bin über dieses Problem auch deshalb so erstaunt, weil ich das aus einem andern Programm genau so übernommen habe, erhalte da die SS-Signale jedoch über ein Bluetooth-Modul HC06 von einer Tablet-App.
Geändert von fredyxx (03.01.2017 um 10:37 Uhr)
Naja, readStringUntil('\n') liesst alle Zeichen bis '\n'. Da dies als Trennzeichen gewertet wird, wird es nicht in den Rückgabestring geschrieben.
Ich habe das Problem nun folgendermaßen behoben:
Blinken = Serial2.readStringUntil('\n');.....ersetzt durch.....Blinken = Serial2.readStringUntil('\r');
und
if (Blinken == "ja").....ersetzt durch.....if (Blinken.substring(1) == "ja").....da wird dann das erste Zeichen nicht mitgenommen.
Danke für eure Hilfen
Gruß
fredyxx
Damit liest du erst ab der zweiten 'ja'-Nachricht. Die erste wird ignoriert.
Mach besser sowas:
Damit löscht du das '\r' in der Nachricht, falls es vorkommt.Code:if (Serial.available()) { str = Serial.readStringUntil('\n'); str.replace("\r", "\0"); }
Geändert von Sisor (03.01.2017 um 12:33 Uhr)
Danke, das sind wohl die Feinheiten, die man Erfahrung nennt!!
Lesezeichen