Serial.available

Hey Leute,

Serial.available() oder Serial.available()> 0

Gibts ja beides
0 kann natürlich andere Zahlen annehmen. Genau da ist der Punkt

Wie genau kann ich mir das vorstellen ? Zb wenn ich abfrage If Serial.available, dann wird die if ausgeführt, sobald irgendwas neues reinkommt richtig?

Wenn ich if serial.available() > 5 abfrage, wird die if nur wahr, wenn im Puffer mehr wie 5 neue Zeichen reinkommen oder ?

Würde um kurzes Statement sehr dankbar sein :slight_smile:

Franz

0 ist false. Alles andere ist true.

Jupp

... oder etwas länger:
Du hast Es schon genau getroffen.
Serial.available() gibt die Anzahl der Zeichen zurück, Die bereits empfangen wurden.
Wenn Du nur Serial.available() prüfst, wird die Bedingung ab dem ersten Zeichen wahr - solltest Du auch machen, da die Serielle schnarch-lahm gegenüber dem Arduino ist.
Wenn Du mit >15 auf 'mindestens 16 Zeichen' wartest, wird der Kram eben erst ausgeführt, wenn diese Anzahl vorhanden ist - wenn Das dann noch in einer WHILE steht, macht der Arduino kaum mehr andere Sachen - außer WARTE AUF ZEICHEN.

In jedem Durchlauf, in Dem ein neues Zeichen empfangen wurde, prüft man, ob die Nachricht komplett ist, dann gibt man den Startschuss für den nächsten Schritt (... StateMaschine).

MfG

Super, danke für die erklärenden Antworten :slight_smile: