5. Variablen nutzen

Statt feste Werte in Programmen zu verwenden, ist es möglich Variablen einzusetzen. Variablen können als Platzhalter verstanden werden. Zum einen helfen sie, Programme übersichtlicher zu machen. Zum anderen sind viele Funktionen erst mit ihnen möglich.

Variablen müssen im Programm vor der Verwendung bekannt gemacht werden. Diesen Vorgang nennt man Deklaration.

Eine Variablendeklaration hat in folgender Form zu erfolgen:

Typ Name [ = Wert ]

Der Typ beschreibt die Art der Daten, die in der Variable gespeichert werden kann. Vorerst ist es ausreichend den Datentyp int zu kennen. Er dient dazu, Ganzzahlen zu speichern.

Der Name ist (fast) frei wählbar. Die Groß-/Kleinschreibung ist bedeutend! Der Wert ist optional. Die Variable kann zu Beginn einen definierten Wert erhalten. In Syntax­be­schreibungen wird dies häufig durch eckige Klammern kenntlich gemacht. Die erste Zuweisung eines Werts zu einer Variablen bezeichnet man auch Initialisierung.

Auftrag

1) Schreiben Sie das Blink-Programm mit Hilfe von Variablen um:

int ledPinNr = 13;
 
void setup() {
    pinMode(ledPinNr, OUTPUT);
}
 
void loop() {
    digitalWrite(ledPinNr, HIGH);
    delay(1000);
    digitalWrite(ledPinNr, LOW); 
    delay(1000);
}

2) Untersuchen Sie die Funktionsweise folgender Programme und begründen Sie warum die Variante B nicht wie gewünscht funktioniert.

Variante A:

int ledPinNr;

void setup() {
    ledPinNr = 13;
    pinMode(ledPinNr, OUTPUT);
}

void loop() {
    digitalWrite(ledPinNr, HIGH);
    delay(1000);
    digitalWrite(ledPinNr, LOW); 
    delay(1000);
}

Variante B:

int ledPinNr;
  
void setup() {
  pinMode(ledPinNr, OUTPUT);
}

void loop() {
  digitalWrite(ledPinNr, HIGH);
  delay(1000);
  digitalWrite(ledPinNr, LOW); 
  delay(1000);
}

3) Programmoptimierung

Im unten stehenden Programm wurde eine Variable eingeführt, um die Blinkverzögerung zu steuern. Untersuchen Sie das Programm auch mit den Serialmonitor und  erläutern Sie die Bedeutung und Sinnhaftigkeit der Zuweisungen 1 – 3.

int ledPinNr = 13;
int verzoegerung = 1000;  // Zuweisung 1

void setup() {
    Serial.begin(9600);
    pinMode(ledPinNr, OUTPUT);
    verzoegerung = 10;    // Zuweisung 2
}

void loop() {
    verzoegerung = verzoegerung+1000; // Zuweisung 3
    Serial.println(verzoegerung);
    digitalWrite(ledPinNr, HIGH);
    delay(verzoegerung);
    digitalWrite(ledPinNr, LOW); 
    delay(verzoegerung);
}

4. Eine externe LED anschließen

Der Arduino verfügt über zahlreiche Anschlussmöglichkeiten den sogenannten GPIOs (General Purpose Input Outputs).
Diese Anschlusspins können genutzt werden um beispielsweise weitere LEDs anzuschließen.

ampelsimulation

Entwickeln Sie eine Ampel indem Sie 3 LEDs an den das Mikrocontrollerboard anschließen und eine Ampelschaltung programmieren.

Anschluss von LEDs

LEDs können je nach Mikrocontroller an den GPIOs anschließen. Beim Arduino ist es erlaubt, sie an die digitalen Pins DX oder auch an die auch für analoge Zwecke nutzbaren analogen Pins AX anschließen.
Um die LEDs auf die durch den Mikrocontroller-Pin bereit gestellte Spannung anzupassen und den maximal zulässigen Strom einzuhalten, müssen die LEDs mit einem Vorwiderstand versehen werden.
Eine Beschreibung des genauen Anschlusses folgt.