
In diesem Programm soll die Eingabe im Seriellen Monitor dazu verwendet werden, beliebige Einmaleinsreihen anzuzeigen.
Für diese Anleitung musst du den Arduino nur über USB verbinden.
So sieht es aus:


Definiere Eingabe als String und als globale Variable.
String Eingabe = "";
Im setup-Teil musst du den Seriellen Monitor starten:
void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
}
Die serielle Eingabe wird mit einer ➨while-Schleife und ➨Serial.available() abgefragt …
while (Serial.available() > 0)
{
// Eingabe lesen
char Zahl = Serial.read();
// dem String Eingabe wird der gelesene Wert hinzugefügt:
Eingabe = Eingabe + Zahl;
Mit ...
if (Zahl == '\n')
{
… wird der Druck auf die Enter-Taste abgefragt.
Jetzt musst du noch den String Eingabe in eine Integer-Variable umwandeln. In diesem Fall wird der Geltungsbereich mit unsigned long (bis 4.294.967.295) erweitert. Dann wird der Wert der ➨Funktion ReiheAnzeigen übergeben.
Zum Schluss musst du noch den String Eingabe leeren, damit Platz für eine neue Zahl ist:
unsigned long Reihe = Eingabe.toInt();
ReiheAnzeigen(Reihe);
Eingabe = "";
}
}
Der vollständige loop-Teil:
void loop()
{
while (Serial.available() > 0)
{
char Zahl = Serial.read();
Eingabe = Eingabe + Zahl;
if (Zahl == '\n')
{
unsigned long Reihe = Eingabe.toInt();
ReiheAnzeigen(Reihe);
Eingabe = "";
}
}
}
Die Funktion ReiheAnzeigen verwendet eine ➨for-Schleife. Hier wird der eingegebene Wert (unsigned long) übergeben.
void ReiheAnzeigen(unsigned long Reihe)
{
Serial.print("Einmaleins der ");
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.println("-------------------------------");
}
Erweiterung des Programms
Es soll verhindert werden, dass Buchstaben der Einmaleinsreihe hinzugefügt werden.
Mit der Funktion isDigit() wird geprüft, ob das eingegebene Zeichen eine Zahl ist. Wenn das der Fall ist, wird das eingegebene Zeichen hinzugefügt
Ergänze den loop-Teil:
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
char Zahl = Serial.read();
if (isDigit(Zahl))
{
Eingabe = Eingabe + Zahl;
}
Im nächsten Schritt soll geprüft werden, ob der String nicht leer ist. Das ist der Fall, wenn die Länge des Strings größer als 0 ist.
Die Funktion length() überprüft die Länge eines Strings.
if (Zahl == '\n')
{
if (Eingabe.length() > 0)
{
unsigned long Reihe = Eingabe.toInt();
ReiheAnzeigen(Reihe);
}
Eingabe = "";
}
Verwandte Aufgaben:
- Fußballtipp
- Geldautomat
- Laplace-Versuch
- Lottozahlen - Anzeige im Seriellen Monitor
- Primzahlen ermitteln
- Satzmaschine
- Schneckenrennen
- Städte-Info
- Taschenrechner Grundrechenarten
- Teiler bestimmen
- Vokale zählen
- Vollkommene Zahlen
- Würfeln Serieller Monitor
Letzte Aktualisierung: