Serial.read Verständnisproblem

Hallo Zusammen,

ich möchte ein Teil eines Programmes auf Funktion testen.

char incomingByte; // for incoming serial data

void setup() {
  Serial.begin(115200); 
}

void loop() {
  // send data only when you receive data:
  if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.read();

    // say what you got:
    Serial.print("I received: ");
    Serial.println(incomingByte);
  }
}

Meiner Erwartung nach müsste ich auf die Eingabe im Seriellen Monitor die gleiche Ausgabe erhalten.

Tippe ich "x" ein sollte ich ein "x" sehen.

Stattdessen erhalte ich

16:16:35.260 -> I received: x
16:16:35.260 -> I received:
16:16:35.260 -> I received:
16:16:35.260 ->

Warum gibt mir die Konsole noch drei weitere Ausgaben?

VG
Tim

Das sind die Zeilenendezeichen CR/LF, die der serielle Monitor an eine Zeile anhängt.
Das kannst Du mit dem Pulldownmenü unten im seriellen Monitor ( links neben der Baudrate ) ausschalten ( auf 'kein Zeilenende' stellen )

Hi

Weil Du im Terminal, unten drunter, als Zeilenende CR+LF eingestellt hast.
Wenn Du Dir neben dem Zeichen auch den HEX-Code ausgeben lässt, wirst Du bei den unbekannten Zeichen 0D und 0A (bzw. ohne führende Null) angezeigt bekommen.

MfG

PS: ... zu spät ...

Oh man das darf doch nicht wahr sein.
Vielen Dank euch.