String einlesen und Vergleichen

Hallo Zusammen,

wie ist es Möglich einen String über die serielle Schnittstelle einzulesen und im Anschluss zu vergleichen?
Ich verstehe einfach nicht warum das Programm nicht funktioniert.

String input;

if (Serial.available() > 0)
{
input = Serial.readString();
if (input == "test")
{
Serial.println("OK");
}
}

Vielleicht kommt nicht "test" sondern "test\n", weil der SerialMonitor Ausgaben mit einem NeueZeile-Endezeichen versieht?
Lass dir doch genau anzeigen, was kommt.

String Objekte sind nur einfach, wenn es funktioniert.

Hier mal ein paar Infos zu Zeichenketten.

Gruß Tommy

Vielen Dank für die schnelle Rückmeldung!
Wenn das Neuzeile-Endzeichen hinzugefügt wird funktioniert es.

Hallo,

im Monitor unten gibt es eine Auswahl Kein Zeilenende / neue Zeile. usw.

Je nach dem was Du da eingestellt hast funktioniert dein Sketch ja auch. Normale Einstellung ist allerdings "neue Zeile" damit wird das ASCII Zeichen NL mit gesendet und ist Teil des Strings. Damit musst Du dann auf

 if (input == "test\n") {

      Serial.println("OK");
    }

abfragen

Heinz

Sauberer ist eine der beiden beiden Varianten und keine Vermischung:

1.) Automatisch ein Newline/LF senden und dann readStringUntil() verwenden
2.) Kein LF senden und readString() verwenden