Bisher kennst du Arrays, die eine bestimmte Anzahl von Elemente in einer Reihe haben (➨eindimensionale Arrays).
String Eigenschaft[3] = {"schnell ", "langsam ", "im Schritttempo "};
int LED[5] = {3, 4, 5, 6, 7};
Außerdem gibt es noch mehrdimensionale Arrays, sie sind in Reihen und Spalten organisiert.
Beispiel für ein zweidimensionales Array:
// 4 Reihen, 4 Spalten
int Zahlen[4] [4] =
{
{1, 2, 3, 4},
{11, 12, 13, 14},
{21, 22, 23, 24},
{31, 32, 33, 34}
};
Das Beispielprogramm zeigt das Array an:
// 4 Reihen, 4 Spalten
int Zahlen[4] [4] =
{
{1, 2, 3, 4},
{11, 12, 13, 14},
{21, 22, 23, 24},
{31, 32, 33, 34}
};
void setup()
{
Serial.begin(9600);
/*
Elemente des Arrays anzeigen
for-Schleife durch die Reihen
*/
for (ist Zeile = 0; Zeile < 4; Zeile ++)
{
Serial.print("Zeile " + String(Zeile) + ": ");
// for-Schleife durch die Spalten
for (int Spalte = 0; Spalte < 4; Spalte ++)
{
Serial.print(String(Zahlen[Zeile] [Spalte]) + " ");
}
Serial.println();
}
}
void loop()
{
// bleibt leer, das Programm läuft nur einmal
}
Weiteres
Beispiel:
Das
Programm bildet aus dem Array vier Sätze und zeigt sie an.
// 2 Reihen, 4 Spalten
String Wortliste[2] [4] =
{
{"Der Bus ", "Das Auto ", "Die U-Bahn ", "Das Motorrad "},
{"h\u00e4lt an der Haltestelle.", "f\u00e4hrt in die Garage.", "stoppt im Bahnhof.", "flitzt \u00fcber die Autobahn."}
};
void setup()
{
Serial.begin(9600);
// alle Sätze anzeigen
for (int i = 0; i < 4; i++)
{
Serial.print(Wortliste[0] [i]);
Serial.println(Wortliste[1] [i]);
}
}
void loop()
{
// bleibt leer, das Programm läuft nur einmal
}
Benötigte Bauteile:
- einen Taster
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
So sieht es aus (Beispiel):
Das „Prellen“ des Tasters soll mit der Bibliothek Bounce2 verhindert werden.
Binde die Bibliothek Bounce2 ein und definiere die Arrays für die Satzteile.
Beachte die Kommentare.
# include <Bounce2.h>
int TASTER = 8;
String Artikel_Substantiv [5] [5] =
{
{"Der ", "Das ", "Die ", "Das ", "Das "},
{"Bus ", "Auto ", "U-Bahn ", "Fahrrad ", "Motorrad "},
};
// eindimensionales Array für die Adverbien
String Eigenschaft [5] = {"im Zeitlupentempo ", "schnell ", "langsam ", "z\u00fcgig ", "im Schritttempo "};
String Verb_Objekt [5] [5] =
{
{"saust ", "rast ", "schleicht ", "f\u00e4hrt ", "bummelt "},
{"ans Ende der Welt.", "um die Ecke.", "zum Bahnhof.", "zur Haltestelle.",
"in die Garage."}
};
int Minimum = 0;
int Maximum = 5;
// Bibliothek Bounce2
// "Prellverhinderer" für die Taste starten
Bounce Satz = Bounce();
Der setup-Teil. Beachte die Kommentare.
void setup()
{
Serial.begin(9600);
pinMode(TASTER, INPUT_PULLUP);
// Zufallsgenerator starten
randomSeed(analogRead(0));
// Instanzen des Objekts Bounce für die Taste zuordnen
// Zeitintervall einstellen
Satz.attach(TASTER);
Satz.interval(20);
}
Der loop-Teil. Beachte die Kommentare.
void loop()
{
if (Satz.update())
{
if (Satz.read() == LOW)
{
int Position = random(Minimum, Maximum);
// Artikel sollen zum Substantiv passen
// es wird die gleiche Spalte gewählt
Serial.print(Artikel_Substantiv[0] [Position]);
Serial.print(Artikel_Substantiv[1] [Position]);
// Bestimmung des Verbs
Position = random(Minimum, Maximum);
Serial.print(Verb_Objekt[0] [Position]);
// Festlegung der Eigenschaft
Position = random(Minimum, Maximum);
Serial.print(Eigenschaft[Position]);
// Objekt auswählen
Position = random(Minimum, Maximum);
Serial.println(Verb_Objekt[1] [Position]);
}
}
}
Verwandte Aufgaben:
- Einmaleinsreihen anzeigen
- Geldautomat
- Lottozahlen - Anzeige im Seriellen Monitor
- Primzahlen ermitteln
- Schneckenrennen
- Städte-Info
- Taschenrechner Grundrechenarten
- Teiler bestimmen
- Vokale zählen
- Vollkommene Zahlen
Letzte Aktualisierung: