
Die LEDs sollen nacheinander zufällig oft blinken. Auch die Leuchtdauer soll zufällig bestimmt werden.
Um das zu realisieren, wären viele Programmzeilen nötig, die immer wieder die gleichen Befehle ausführen. Die Programmiersprache bietet die Möglichkeit, häufig verwendete Befehle in einem gesonderten Programmteil (einer Funktion) „auszulagern“.
So sieht es aus:
Benötigte Bauteile:
- 5 LEDs
- 3 Widerstände 220 Ω (gelbe, rote und grüne LED)
- 2 Widerstände 100 Ω (blaue und weiße LED)
- Leitungsdrähte

Beachte die ⇒Vorwiderstände verschiedener LEDs
Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)

Jede Funktion muss außerhalb des setup und des loop-Teils stehen. Sie wird mit dem Schlüsselwort void eingeleitet.
Beispiel:
1 2 3 4 5 6 7 | void LEDBlinken() { digitalWrite(LED, HIGH); delay(500); digitalWrite(LED, LOW); delay(500); } |
Die Funktion LEDBlinken() kann jetzt beliebig oft im loop-Teil aufgerufeń werden.
LEDBlinken();
Funktionen können auch mit Parametern aufgerufen werden:
Beispiel:
1 2 3 4 5 6 7 | void LEDBlinken(int LEDNummer, int LeuchtDauer) { digitalWrite(LEDNummer, HIGH); delay(Leuchtdauer); digitalWrite(LEDNummer, LOW); delay(Leuchtdauer); } |
Der Aufruf sieht dann so aus:
LEDBlinken(6, 1000);
Die LED an Pin 6 blinkt eine Sekunde.

Die LEDs werden wieder in einem Array angelegt
Zusätzlich werden noch Variablen für die Nummer der LED und die Anzahl der Blinkvorgänge benötigt:
1 2 3 | int LED[5] = {3, 4, 5, 6, 7}; int AnzahlBlinken; int LEDNummer; |
Im setup-Teil erledigt eine for-Schleife die Zuordnung der LEDs als OUTPUT:
1 2 3 4 5 6 7 8 9 10 | void setup() { for (int i = 0; i <= 4; i++) { pinMode(LED[i], OUTPUT); } // Zufallsgenerator starten randomSeed(analogRead(A0)); } |
Definiere eine Funktion LEDBlinken, der als Variable die Nummer der LED und die Anzahl der Blinkvorgänge übergeben werden
1 2 3 4 5 6 7 8 9 10 | void LEDBlinken(int LEDNummer, int Anzahl, int Leuchtdauer) { for (int i = 0; i <= Anzahl; i++) { digitalWrite(LEDNummer, HIGH); delay(Leuchtdauer); digitalWrite(LEDNummer, LOW); delay(Leuchtdauer); } } |
Im loop-Teil wird die Anzahl der Blinkvorgänge und die Leuchtdauer der LED zufällig bestimmt und die Funktion LEDBlinken mit der Nummer der LED, der Anzahl der Blinkvorgänge und die Leuchtdauer der jeweiligen LED aufgerufen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | void loop() { for (int i = 0; i <= 4; i++) { // Anzahl des Blinkens der LEDs zufällig bestimmen AnzahlBlinken = random(1, 5); // Leuchtdauer zufällig bestimmen int Leuchtdauer = random(50, 500); /* aktuelle LED i einschalten -> Funktion LEDBlinken aufrufen */ LEDBlinken(LED[i], AnzahlBlinken, Leuchtdauer); } } |
Verwandte Anleitungen:
Letzte Aktualisierung:






