INHALT
Ein Array ist eine Datenstruktur, die mehrere Werte desselben Typs speichert. In der Arduino IDE können Arrays verschiedene Arten von Daten speichern, wie Zahlen (byte, int, float, Strings, etc). Die Struktur von Arrays in Arduino (Datenfelder) ist ähnlich wie bei anderen Programmiersprachen. Um mit Arrays zu arbeiten, deklariert man ein Array von Symbolen und greift auf dessen Elemente zu, um sie in einem Sketch zu verwenden.
Bestandteile:
- Arduino Uno / Arduino Nano / Arduino Mega
Was sind Arrays in Arduino IDE? Arrays (Datenfeld) nutzen zusammenhängende Speicherplätze, um mehrere Variablen desselben Datentyps zu speichern. Die Verwendung eines Arrays in einem Programm hat den Vorteil, dass es Speicherplatz auf dem Mikrocontroller spart. Wenn das Array nicht mehr genug Platz hat, um Elemente zu speichern, werden die Daten in angrenzenden Speicherplätzen abgelegt.
Was ist ein Datenfeld in der Arduino-Sprache?
Die Abbildung zeigt die Struktur eines numerischen Arrays int array[5] mit fünf Speicherplätzen. Der Name des Arrays ist array, und die gespeicherten numerischen Daten sind 55, 145, 250, 0 und 193. Das Array hat das erste Element mit dem Index null array[0]. Alle Arrays (Datenfelder) beginnen an der Position null und enden mit einem Element, dessen Index um eins kleiner ist als die Gesamtzahl der Arrayelemente array[4].
Deklaration eines Arrays in der Arduino-Sprache
So wie in der Arduino-Sprache lokale und globale Variablen verschiedener Datentypen deklariert werden, wird auch ein Array von Variablen global oder lokal deklariert. Es gibt drei Möglichkeiten, ein Array in einem Programm zu erstellen (zu deklarieren):
1 Methode der Array-Initialisierung
// Array-Deklaration mit der Größe und den Werten der Elemente int myArray [5] = { 10, 20, 30, 40, 50 };
2 Methode der Array-Initialisierung
// Das Datenfeld wird deklariert, ohne dass seine Größe angegeben wird // Um bei Bedarf mehr als fünf Elemente darin speichern zu können int myArray [] = { 10, 20, 30, 40, 50 };
3 Methode der Array-Initialisierung
// Array-Deklaration ohne Angabe von Größe und Elementwerten int myArray [] = { };
Wie man auf Arduino Array Elemente zugreift
In dem Programm können wir auf jedes Element eines Arrays zugreifen. Wir haben zum Beispiel ein Array int array [5] = { 55,145,250,0,193 };. Wenn wir auf das zweite Element mit dem Wert 145 zugreifen wollen, sollten wir den Array-Namen mit der Indexnummer des zweiten Elements in eckigen Klammern array[1] verwenden. Schließen Sie das Arduino-Board an den Computer an und laden Sie das folgende Programm in den Mikrocontroller.
Programm für Erstellung von Arrays (Datenfeld)
// Erstellen Sie ein Array mit der angegebenen Anzahl von Elementen int myArray[5] = { 10, 20, 30, 40, 50 }; void setup() { Serial.begin(9600); Serial.print(myArray[1]); // Ausgabe des zweiten Elements Serial.print(" + "); Serial.print(myArray[4]); // Ausgabe des fünften Elements Serial.print(" = "); Serial.println(myArray[1] + myArray[4]); // Summe der Elemente Serial.println(""); delay(1000); // Erstellen Sie ein Zeichenfeld, ohne die Anzahl der Elemente anzugeben char chArray[] = { 'H','e','l','l','o',' ','w','o','r','l','d' }; String text = String(chArray); // Die Zeichen aneinanderreihen Serial.println(text); // Senden Sie den String an den Port-Monitor Serial.println(""); delay(1000); // Erstellen Sie Array von Strings, ohne die Anzahl der Elemente anzugeben String stArray[] = { "Welcome ", "to ", "de.arduino-france.site" }; // Matrix-Ausgang zum Port-Monitor Serial.println(stArray[0] + stArray[1] + stArray[2]); Serial.println(""); } void loop() { }
- Das Datenfeld myArray[5] hat im Programm eine globale Sichtbarkeit. Im Gegensatz dazu sind chArray[] und stArray[] Datenfelder mit lokaler Sichtbarkeit.
Das Programm ermöglicht es, die Länge von Arrays oder einzelnen Elementen zu ermitteln und Daten vom Sensor in das Datenfelder zu schreiben oder zu überschreiben. Im folgenden Beispiel zeigen wir auf dem Portmonitor die Größe des ersten Elements des Arrays in Bytes und die Länge des gesamten Arrays an. Dann überschreiben wir das erste Element im Array mit dem neuen Wert und zeigen den neuen Text auf dem Portmonitor an.
Programm für Berechnung der Länge eines Arrays
// Erstellung von String-Arrays String strArray[] = { "Welcome ", "to ", "de.arduino-france.site" }; void setup() { Serial.begin(9600); // sendet das String-Array an den Port Monitor Serial.println(strArray[0] + strArray[1] + strArray[2]); Serial.println(""); delay(1000); int x = sizeof(strArray[0]); // Größe des ersten Elements in Bytes Serial.println("sizeof(Welcome) = " + String(x)); Serial.println(""); delay(1000); int y = sizeof(strArray); // Größe des gesamten Arrays in Bytes Serial.println("sizeof(strArray) = " + String(y)); Serial.println(""); delay(1000); strArray[0] = "Go "; // Berechnung der Länge eines Arrays // sendet das String-Array an den Port Monitor Serial.println(strArray[0] + strArray[1] + strArray[2]); Serial.println(""); } void loop() { }
- Die Größe in Bytes entspricht der Anzahl der Zeichen.
Die Arduino-Programmiersprache unterstützt nicht nur eindimensionale Arrays, sondern auch zweidimensionale Arrays. Diese können zwei Listen speichern. Die Methode zur Erstellung eines 2-dimensionalen Arrays ist ähnlich. Es gibt auch mehrdimensionale Arrays. Im Tetris Game auf Arduino mit OLED-Display speichern die mehrdimensionalen Arrays der Skizze beispielsweise die auf dem Bildschirm erscheinenden Formen.
Eindimensionale, zweidimensionale, mehrdimensionale Arrays
// eindimensionale Fünf-Elemente Datenfeld int OneDimensionalArray[5] = {10, 20, 30, 40, 50}; // zweidimensionale Datenfeld aus zwei Reihen mit je drei Elementen int TwoDimensionalArray[2][3] = { {1, 2, 3}, {4, 5, 6} }; // mehrdimensionale Datenfeld der "S"-Form in Tetris const char MultiDimensionalArray[2][2][4] = { {{1, 1, 0, 0}, {0, 1, 1, 2}}, {{0, 1, 1, 2}, {0, 0, 1, 1}} };
Schlussfolgerung. In der Arduino sind Arrays Datenstrukturen, die zur Speicherung mehrerer Werte desselben Datentyps (Zahlen oder Zeichenketten) verwendet werden. Arrays sind zusammenhängende Speicherzellen, in denen Werte gespeichert werden. In diesem Artikel haben wir den Aufbau und die Deklarationsmethoden von Arrays besprochen und Beispiele gegeben, um die Verwendung von Arrays zu verstehen.
Schreibe einen Kommentar