Serieller Monitor

Beitrag vom 18. November 2020

Dateneingabe mit dem Seriellen Monitor

Dieses Thema scheint ja schon überall erschöpfend behandelt worden zu sein.
Aber so leicht ist es auch wieder nicht...

Ich wollte ein Zinsberechnungsprogramm mit Eingabe des Zinssatzes über den Seriellen Monitor schreiben.
Die Berechnung und Ausgabe der Zinsentwicklung bei einem fest vorgegebenen Zinssatz waren in 10 Minuten programmiert.
Aber wie kann man das Programm so lange "anhalten", bis etwas eingegeben wir?

Hier meine Lösung des Problems:

 

// Zinsberechnung mit Eingabe des Zinssatzes über Ser. Monitor
// Entwicklung von anfänglich 1000 € in 10 Jahren

void setup() {
  Serial.begin(9600);
  Serial.flush(); // Seriellen Puffer löschen
  Serial.println("Zinsberechnung");
  Serial.println("1000 € für 10 Jahre anlegen");
  // Eingabe
  Serial.println("Bitte Zinssatz eingeben!");
  String zinssatz="0";
  while (zinssatz == "0")
  {
    while (Serial.available())
    {
      zinssatz = Serial.readString(); // read the incoming data as string
      Serial.print("Zinssatz = ");
      Serial.println(zinssatz);
      delay(100);
      Serial.flush();
    }
  }
  Serial.print("Gerundet auf ");
  Serial.print(zinssatz.toInt());
  Serial.println(" %");
 
  // Rekursive Lösung
  float Jahresergebnis = 1000; // Start mit 1000 €
  for (int i = 0; i < 10; i++)
  {
    Jahresergebnis = Jahresergebnis + Jahresergebnis * zinssatz.toInt() / 100;
    Serial.print(i + 1);
    Serial.print(". Jahr: ");
    Serial.print(Jahresergebnis);
    Serial.println(" Euro");
  }
}

void loop() {

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Meine Quellen für diesen Artikel:

Externer Link  https://www.instructables.com/Arduino-Function-Serialread-And-SerialreadString/

Externer Link  https://www.arduino.cc/reference/en/language/functions/communication/serial/readstring/

.