Wenn mit Serial.read() (mehr dazu auf der nächsten Seite) Daten eingelesen werden diese im Zwischenspeicher gespeichert. Serial.available() schaut beim Aufruf, ob es noch Daten gibt, die ungelesen sind. Dies kann man unter anderem mit einer if-Anweisung oder einer while-Schleife überprüfen.

Nachdem alles mit Serial.read() gelesen wurde, ergibt Serial.available() den Wert 0.

Syntax:

Serial.available();

Parameter:

keine

Beispiel: 

int ungelesen;

void setup() 
{
  Serial.begin(9600);   //Initialisierung der seriellen Schnittstelle
}

void loop()
{
  ungelesen = Serial.available();   //Speichern der ungelesenen Daten einer Variable
  Serial.println(ungelesen);
  delay(1000);
}


Serieller Monitor:

Serial.available_output 

Abbildung 2: Ausgabe 1
Quelle: BBS2 Wolfsburg


Wenn man jetzt etwas in das Eingabefeld schreibt und auf senden klickt wird Serial.available() solange 
die Länge der Eingabe anzeigen bis Serial.read() ausgeführt wird.

Serial.available_output2

Abbildung 3: Ausgabe 2
Quelle: BBS2 Wolfsburg

In diesem Fall wird der Text "hallo" eingegeben. Dieser String besteht aus 5 chars und ein char ist ein byte groß.
Zusätzlich wird bei abschicken von der Eingabe noch Carriage Return und Linefeed  mit rangehängt.

So entsteht die Länge 6:

    • 5 bytes aus dem "hallo"
    • 1 byte für Carriage Return und Linefeed

Zuletzt geändert: Donnerstag, 18. Februar 2021, 09:58