Ein­mal­eins­rei­hen anzei­gen

Lese­zeit: 4 Minu­ten
Navi­ga­ti­on

In die­sem Pro­gramm soll die Ein­ga­be im Seri­el­len Moni­tor dazu ver­wen­det wer­den, belie­bi­ge Ein­mal­eins­rei­hen anzu­zei­gen. Für die­se Auf­ga­be musst du den Ardui­no nur über USB ver­bin­den.

So sieht es aus:

Defi­nie­re Ein­ga­be als String und als glo­ba­le Varia­ble.

Im setup-Teil musst du den Seri­el­len Moni­tor star­ten:

void setup() 
{ 
  Serial.begin(9600); 
}

Die seri­el­le Ein­ga­be wird mit einer ➨while-Schlei­fe und ➨Serial.available() abge­fragt …

while (Serial.available() > 0)  
{
  // Eingabe lesen
  char Zahl = Serial.read();
  
  // Dem String Eingabe wird der gelesene Wert hinzugefügt:
  Eingabe += Zahl;    
  // entspricht Eingabe = Eingabe + Zahl;

Mit ...

    if (Zahl == '\n')      
    {

… wird der Klick auf den But­ton Sen­den bzw. der Druck auf die Enter-Taste abge­fragt.
Jetzt musst du noch den String Ein­ga­be in eine Integer-Variable umwan­deln. In die­sem Fall wird der Gel­tungs­be­reich mit long (2.147.483.648 bis 2.147.483.647) erwei­tert. Dann wird der Wert der ➨Metho­de Rei­he­An­zei­gen über­ge­ben.
Zum Schluss musst du noch den String Ein­ga­be lee­ren:

     long Reihe = Eingabe.toInt();  
     ReiheAnzeigen(Reihe);   
     Eingabe = "";  
  } 
}

Die Metho­de Rei­he­An­zei­gen ...

void ReiheAnzeigen(long Reihe) 
{ 
  Serial.print("Einmaleins der\t"); 
  Serial.println(Reihe); 
  for (int i = 1; i <= 10; i ++) 
  {  
    Serial.print(i);  
    Serial.print(" * ");  
    Serial.print(Reihe);   
    Serial.print(" = ");   
    Serial.print(i * Reihe);  
    Serial.println(); 
  }
  Serial.print("-------------------------------\n");
} 

Erwei­te­rung des Pro­gramms

Es soll ver­hin­dert wer­den, dass Buch­sta­ben der Ein­mal­eins­rei­he hin­zu­ge­fügt wer­den.
Mit der Funk­ti­on isDi­git() wird geprüft, ob das ein­ge­ge­be­ne Zei­chen eine Zahl ist. Wenn das der Fall ist, wird das ein­ge­ge­be­ne Zei­chen hin­zu­ge­fügt

Ergän­ze den loop-Teil:

  while (Serial.available() > 0)    
  {   
    // Eingabe im Seriellen Monitor lesen   
    char Zahl = Serial.read();   
    if (isDigit(Zahl))    
    {   
      Eingabe += Zahl;   
    }

Im nächs­ten Schritt soll geprüft wer­den, ob der String nicht leer ist. Das ist der Fall, wenn die Län­ge des Strings grö­ßer als 0 ist.

Die Funk­ti­on length() über­prüft die Län­ge eines Strings.

   if (Zahl == '\n')     
   {     
     if (Eingabe.length() > 0)   
     {     
       long Reihe = Eingabe.toInt();   
       ReiheAnzeigen(Reihe);     
     }  
     Eingabe = ""; 
   }

Ergän­ze das Pro­gramm: Wenn ver­se­hent­lich Buch­sta­ben ein­ge­ge­ben wur­den, wird eine Mel­dung aus­ge­ge­ben.



Ver­wand­te Auf­ga­ben:


Letzte Aktualisierung: 21. Mrz 2020 @ 13:18