Im seriellen Monitor erhalte ich folgende Ausgabe:
17:13:55.325 -> Hed!
17:13:56.877 -> Hello World!
Ich habe dann etwas rumgespielt und festgestellt, dass die erste Ausgabe verschwindet, wenn ich ein Delay von einer Sekunde zwischen Serial.begin und der Print-Funktion einbaue.
Ein zweites Problem tritt auf, wenn ich Zeichen über den Monitor einlesen will:
char c;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
if (Serial.available() > 0) {
c = Serial.read();
Serial.println(c);
}
}
Gebe ich hier abc ein und bestätige mit Enter, erhalte ich folgende Ausgabe im Monitor:
17:21:38.284 -> a
17:21:38.284 -> b
17:21:38.284 -> c
17:21:38.284 ->
17:21:38.284 ->
Also zwei Leerleichen zu viel.
Ich benutze einen Elegoo UNO R3, der über einen USB-Adapter an einen iMac, der neusten Version angeschlossen ist.
Du hast vermutlich die Zeilenende-Zeichen nicht richtig wiedergegeben. Mindestens eines der beiden hat dir in der Ausgabe eine (zugegebenermaßen kaum sichtbare) Leerzeile produziert.
Funktioniert ja auch: Schreibt dir eine Zeile je Buchstabe, wie gewünscht. Und "Neue Zeile" ist auch ein Buchstabe im Text "abc<Enter>", je nachdem sogar mal zwei. Im Beispiel mit int statt char ist ein 'a' die 97 und 10 ist das NeueZeile-Zeichen, was man auf diese Weise deutlicher sehen kann.