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. Im setup-Teil musst du den Seriellen Monitor starten:
void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial);
delay(1000);
Serial.println("Bitte gib eine Zahl ein:");
}
Die serielle Eingabe wird mit einer ➨while-Schleife und ➨Serial.available() abgefragt. Zunächst wird der Druck auf die Enter-Taste ('\n') abgefragt.
Anschließend 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.'\n'
while (Serial.available() > 0)
{
// Eingabe lesen
char Zahl = Serial.read();
// dem String Eingabe wird der gelesene Wert hinzugefügt:
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. 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.
Ergänze den loop-Teil:
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
char Zahl = Serial.read();
if (isDigit(Zahl))
{
Eingabe = Eingabe + Zahl;
}
if (Zahl == '\n')
{
if (Eingabe.length() > 0)
{
unsigned long Reihe = Eingabe.toInt();
ReiheAnzeigen(Reihe);
}
Eingabe = "";
}
Verwandte Anleitungen:
- 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: