Der serielle Monitor ist in der Entwicklungsumgebung Arduino IDE enthalten und im Menü "Werkzeuge" zu finden.

Abb.: Serieller Monitor; Quelle: BBS2 Wolfsburg

Über diesen Monitor kann man sich Ausgaben anzeigen lassen oder auch Eingaben tätigen.

Der serielle Monitor läuft über die EIA232-Schnittstelle, die in diesem Kurs bereits in der Entwicklungsumgebung Atmel Studio erklärt wurde.

Sowohl die Initialisierung als auch die Verwendung der Schnittstelle ist in Arduino IDE erheblich einfacher als in Atmel Studio.

Wie auch in Atmel Studio muss die Baudrate festgelegt werden. Hier geschieht dies über die Funktion "Serial.begin()". Alle weiteren Register konfiguriert Arduino IDE automatisch, so dass der serielle Monitor bereits verwendet werden kann.

Die Ausgaben erfolgen über die Funktion "Serial.print" oder "Serial.println" für einen anschließenden Zeilenumbruch.

Das Einlesen der empfangenen Daten ist etwas umfangreicher.

Hier muss über "Serial.availble()>0" abgefragt werden, ob Daten zu empfangen sind. Wenn die Bedingung "true" ist, wird das erste char über "Serial.read()" eingelesen. Es bietet sich an, den eingelesenen Wert direkt in einer Variablen zu speichern.
So funktioniert das Einlesen allgemein.

Für unsere Zwecke muss der eingelesene Wert noch weiterverarbeitet werden. Um den Zahlenwert der Zahl in char zu erhalten, subtrahieren wir einfach den char wert der ersten Ziffer "0". Um eine mehrstellige Zahl einlesen zu können muss eine Endbedinung dafür sorgen, dass das Ende des strings auch als solches erkannt wird.

Das Zeichen, das durch Drücken des "Senden"-Buttons übermittelt wird, hat nach dem Subtrahieren der "0" den Wert -38. Dies kann als Endbedingung des Strings verwendet werden. Ist diese Bedingung erfüllt, soll die eingelesene Zahl zur Kontrolle auf dem Monitor ausgegeben werden. Wenn der Eingelesene Wert ungleich -38 ist, ist der String nicht beendet. Ist der String nicht beendet, muss der bisherige Wert mit 10 multipliziert werden und der neu eingelesene Wert auf das Ergebnis drauf addiert werden. Das Multiplizieren mit 10 entspricht einem Links-Schieben der Zahl damit die letzte Stelle frei für den neu eingelesenen Wert ist.


Beispiel zum Seriellen Monitor:

Funktion:

Über die Tastatur wird ein Zahlenwert eingelesen, vom Mikrocontroller ausgewertet und auf dem Seriellen Monitor ausgegeben.

Schaltung:

Um dieses Beispiel zu realisieren ist keine zusätzliche Verschaltung des Arduinos notwendig. Der Datenaustausch wird hier über die Leitung der Spannungsversorung realisiert.

Programmcode:

//Variablen zum Einlesen und Ausgeben
int incomingByte = 0;                                     //einzelnes Zeichen vom Seriellen Monitor
int inByte = 0;                                           //Wert der bereits eingelesenen Zeichen
int wert=0;                                               //Wert der ausgegeben werden soll

void setup()
{
  Serial.begin(9600);                                     //Beginn des Seriellen Monitors
  Serial.println("Geben Sie eine Zahlen ein: ");          //Ausgabe auf dem seriellen Bildschirm
}

void loop()
{
  if (Serial.available()>0)                               //wenn was eingelesen wurde
  {
    incomingByte=Serial.read()-'0';                       //lese Zeichen ein und wandel es in eine Zahl um
    if (incomingByte==-38)                                //wenn eingelesenes Zeichen "enter" oder "senden" ist
    {                                                     //Sting wurde beendet
      wert=inByte;                                        //eingelesener Wert als Intervall speichern
      inByte=0;                                           //zurücksetzen des eingelesenen Wertes für neue Eingabe
      Serial.print("Der eingegebene Wert lautet:");
      Serial.println(wert);                               //Ausgabe des Intervalls auf dem Seriellen Monitor zur Bestätigung
      Serial.println("Geben Sie eine neue Zahl ein");
    }
    else
    {
      inByte=inByte*10;                                   //eingelesener Wert wird im Dezimalsystem um 1 nach links geschoben
      inByte+=incomingByte;                               //neu eingelesener Wert wird auf den alten Wert drauf addiert
    }
  }
}

Der serielle Bildschirm wird nach einigen Eingaben in etwa so aussehen:

Abb.: Serieller Monitor Ausgabe; Quelle: BBS2 Wolfsburg

Zuletzt geändert: Montag, 21. Februar 2022, 08:30