Arduino – Arrays

Ein Array ist ein Speicherplatz, in dem derselbe Elementtyp gespeichert ist. Geben Sie als Referenz auf eine bestimmte Position oder ein bestimmtes Element im Array den Namen des Arrays und die Positionsnummer dieses Elements ein.

Arrays deklarieren

Auf jedes Element in einem Array kann verwiesen werden, indem die Positionsnummer dieses Elements in eckigen Klammern [] neben dem Arraynamen angegeben wird. Die Positionsnummer wird als Index bezeichnet, und diese Nummer bestimmt die Position des Elements vom Anfang des Arrays an. Der Index des ersten Elements ist 0 (Null). Wenn Sie ein Array vom Typ char deklarieren, ist für die Initialisierung ein Element erforderlich, und das erforderliche Nullzeichen gibt das Ende des Arrays an.

Arrays belegen platz im Speicherplatz. Die Art des Arrays und die Anzahl seiner Elemente bestimmen die zugewiesene Speichermenge. Achten Sie beim Deklarieren von Arrays genau darauf, dass die Arraygröße ausreicht, damit die Elemente darin gespeichert werden können. Der Compiler weist die entsprechende Speichermenge zu. Im folgenden Beispiel wird genügend Speicherplatz für ein 4-Element-Array mit dem Namen myIntArray zugewiesen.

type arrayName[arraySize];
int myIntArray[4]; // 4-Element-Int-Typ-Array

Die Größe des Arrays (arraySize) ist eine konstante Ganzzahl größer als Null.

const int arraySize = 4;
int myIntArray[arraySize];

Sie können gleichzeitig mit der Deklaration einen Wert hinzufügen. In diesem Beispiel zeigen wir ein Array vom Typ int mit dem Namen myIntArray und füllen es mit 4 Elementen, in diesem Fall einer Zahl. Trotzdem wird eine angemessene Speichermenge zugewiesen.

int myIntArray[] = {1,2,3,4};

Operationen mit Arrays

Sie können die Elemente eines Arrays mit ihrem Index referenzieren. Das dritte Element des myIntArray-Arrays befindet sich beispielsweise in Index 2.

int myIntArray[] = {1,2,3,4};
Serial.println(myIntArray[2]);

Drucke auf der Konsole: 3

Sie können alle Elemente eines Arrays mit einer for-Schleife drucken.

int myIntArray[] = {1,2,3,4};
for ( int i = 0; i < 4; ++i )
{
  Serial.print(myIntArray[i]);
  Serial.print (", ") ;
}

Die Ausgabe ist 1, 2, 3, 4,

Sie können auch Operationen an Elementen eines Arrays ausführen.

int myIntArray[] = {1,2,3,4};
Serial.println(myIntArray[0] + myIntArray[2]);
Serial.println(myIntArray[3] - myIntArray[1]);
Serial.println(myIntArray[3] * myIntArray[1]);
Serial.println(myIntArray[3] / myIntArray[1]);
Serial.println(myIntArray[3] % myIntArray[2]);

Wir können aber auch einen Zyklus verwenden.

int myIntArray[] = {1,2,3,4};
int sum = 0;

for ( int i = 0; i < 4; ++i )
{
  sum += myIntArray[i];
}

Serial.println(sum);

Das Ergebnis ist 10 auf der Konsole.

Mehrdimensionale Arrays

In zwei- oder mehrdimensionalen Arrays werden häufig Tabellenwerte gespeichert, die aus Informationen bestehen, die in Zeilen und Spalten angeordnet sind. Um ein bestimmtes Tabellenelement zu identifizieren, müssen zwei Indizes angegeben werden. Die erste identifiziert die Zeile des Elements und die zweite identifiziert die Spalte des Elements. Arrays, für deren Identifizierung zwei Indizes erforderlich sind, werden als zweidimensionale Arrays oder 2D-Arrays bezeichnet. Arrays mit zwei oder mehr Dimensionen können auch als mehrdimensionale Arrays bezeichnet werden.

Sehen wir uns ein Beispiel an.

const int rows = 2;
const int cols = 3;

int myIntArray[rows][cols] = {
  {1,2,3},
  {4,5,6}
};
myIntArray [0] [0] ==> 1myIntArray [0] [1] ==> 2myIntArray [0] [2] ==> 3
myIntArray [1] [0] ==> 4myIntArray [1] [1] ==> 5myIntArray [1] [2] ==> 6
2-dimensionales Array

Können wir eine string erstellen mit einem Zeichenfolgenarray. Diese können anhand der folgenden Beispiele deklariert werden. Die alle gültig sind. Das letzte Element der Zeichenarrays ist 0 (Null), daher erkennt der Compiler das Ende der Zeichenfolge.

char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '
char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str4[ ] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";
'}; char Str4[ ] = "arduino"; char Str5[8] = "arduino"; char Str6[15] = "arduino";

Zeichen können als Apostrophe in Arrays geschrieben werden.

char myArray[2][5] = { 
  {'A','B','C','D'},
  {'1','2','3','4'} 
};

Zeichenfolgen müssen in Anführungszeichen gesetzt werden.

const int rows = 4;
const int cols = 5;

char myCharArray[rows][cols] = {
  "row1",
  "row2",
  "row3", 
  "row4"
};

void setup()
{
  Serial.begin(115200);
  Serial.println(myCharArray[3][3]);   // console => 4
}

void loop(){}

Wenn Sie eine Zeichenfolge in das Array eingeben, können Sie die Zeichen mit ihrem Index referenzieren. Verwenden Sie die for-Schleife, um den Inhalt des Arrays auf der Konsole zu drucken.

const int rows = 4;
const int cols = 5;
char myCharArray[rows][cols] = {
  "row1",
  "row2",
  "row3",
  "row4"
};
void setup()
{
  Serial.begin(115200);
  for ( int i = 0; i < 4; ++i )
  {
    for (int j = 0; j < 4; j++)
    {
      Serial.print(myCharArray[i][j]);
    }
  }
}
void loop(){}

Wir können auch längere Texte in einem Array speichern.

char myString[] = 
   "Erste Reihe"
   "Zweite Reihe"
   "Dritte";

Serial.println (myString[7]);

Der Arduino Mega 2560 Mikrocontroller-Board

Arduino Mega 2560
Werbung – Arduino Mega 2560

Soviel zu den Arrays für jetzt. Gehen Sie weiter und lernen Sie ein paar weitere interessante Dinge über strings.

werbung – amazon.de