Variablen Eine Variable ist die Benennung eines numerischen Wertes mit einem Namen und Speicherplatz für die spätere Verwendung in einem Programm. Wie der Name schon vermuten lässt kann der Wert der Variablen kontinuierlich verändert werden, im Gegensatz zu Konstanten deren Wert im Programmablauf konstant bleibt. Eine Variable muss deklariert werden und optional mit einem Wert versehen werden. Das folgende Beispiel deklariert eine Variable ‘inputVariable’ und ordnet ihr dann den Wert vom analogen Pin 2 zu:

int inputVariable = 0; // deklariert eine Variable und // setzt ihren Wert auf 0 inputVariable = analogRead(2); // setzt den Wert der Variable gleich // mit dem Wert von Analog Pin 2

‘inputVariable’ ist die Variable selber. Die erste Zeile erklärt, dass ihr Datentyp ‘int’ ist, das ist der Kurzausdruck für Integer. Die zweite Zeile gibt der Variablen den Wert des analogen Pin 2. Damit wird der Wert des Pins überall im Code verfügbar. Wenn der Wert einer Variablen zugeordnet oder verändert wird kann man seine Wert testen, um zu sehen ob er bestimmte Bedingungen erfüllt. Ein Beispiel wie man mit Variablen sinnvoll arbeiten kann zeigt der folgende Code. Hier wird getestet ob ‘inputVariable’ weniger als 100 ist. Ist dies der Fall wird der Wert 100 der ‘inputVariablen’ zugeordnet und das Programm verwendet diesen Wert als Pause (delay). Der minimale Wert von ‘inputVariable’ ist somit in jedem Fall 100.

if (inputVariable < 100) // prüft, ob Variable kleiner als 100 { inputVariable = 100; // wenn wahr, ordne Wert von 100 zu } delay(inputVariable); // benutzt Variable als Verzögerung

Bemerkung: Variablen sollten immer möglichst deutlich beschreibende Namen erhalten um den Code besser lesbar zu machen. Variablen Names wie ’tiltSensor’ oder ‘pushButton’ helfen dem Programmierer und jedem Leser besser zu verstehen was die Variable bewirkt. Namen wie var oder value sagen wenig aus und wurden hier nur als Beispiel verwendet. Als Namen kann alles verwendet werden dass nicht bereits ein Schlüsselwort in der Arduino Sprache ist. Variablen Deklaration Alle Variables müssen vor der Benutzung deklariert werden. Eine Variable zu deklarieren bedeutet ihren Typ wie z.B. int, long, float, etc. zu definieren, einen Namen zu vergeben und optional einen Anfangswert. Dies muss nur einmal im Programm vorgenommen werden. Danach kann der Wert zu jedem Zeitpunkt durch Berechnungen oder verschiedenste Zuordnungen geändert werden. Das folgende Beispiel deklariert ‘inputVariable’ als ‘int’, also Integer Datentyp und setzt den Anfangswert auf 0. Dies nennt man eine ‘einfache Zuordnung’.

int inputVariable = 0;

Eine Variable kann an vielen Orten im Programm deklariert werden. Der Ort der Deklaration bestimmt welche Programmteile Zugriff auf die Variable haben. Variablen Geltungsbereich (=scope) Eine Variable kann am Anfang des Programms vor ‘void setup()’ deklariert werden, lokal innerhalb von Funktionen und manchmal auch innerhalb eine Anweisungsblocks wie zum Beispiel einer Schleife. Wo die Variable deklariert wird bestimmt ihren Geltungsbereich, oder die Fähigkeit bestimmter Programmteile, auf den Wert der Variablen zuzugreifen. Eine globale Variable kann von jeder Funktion und Anweisung des Programms gesehen und benutzt werden. Diese Variable wird zu Beginn des Programms deklariert, noch vor der setup() Funktion. Eine lokale Variable wird nur innerhalb einer Funktion oder eindes Codeblocks (z.B. Schleife) definiert. Sie ist nur sichtbar und nutzbar innerhalb der Funktion bzw. des Codeblocks in der sie deklariert wurde. Deswegen ist es möglich zwei oder mehr Variablen mit dem selben Namen in verschiedenen Teilen des Programms unterschiedliche Werte enthalten. Durch die Sicherstellung, dass nur die Funktion selber Zugriff auf seine eigenen Variablen hat, wird das Programm vereinfacht und man reduziert das Risiko von Fehlern. Das folgende Beispiel zeigt anschaulich wie man Variablen auf verschiedene Weisen deklarieren kann und zeigt ihre Geltungsbereiche.

int value; // ‘value’ ist sichtbar // für jede Funktion (=global) void setup() { // kein Setup erforderlich }   void loop() { int g; // ‘g’ ist innerhalb der loop-Funktion // sichtbar, auch innerhalb der Schleife for (int i=0; i<20;) // ‘i’ ist nur sichtbar { // innerhalb der for-Schleife i++; } float f; // ‘f’ ist erst ab hier sichtbar }