

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 Methode) „auszulagern“.
So sieht es aus:
Benötigte Bauteile:
- 5 LEDs
- 5 Widerstände > 100 Ω
- Leitungsdrähte
Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)

Jede Methode muss außerhalb des setup und des loop-Teils stehen.

Beispiel:
void LEDBlinken()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
Die Methode LEDBlinken kann jetzt beliebig oft im loop-Teil aufgerufeń werden.
LEDBlinken();
Methoden können auch mit Parametern aufgerufen werden:
Beispiel:
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:
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:
void setup()
{
for (int i = 0; i <= 4; i ++)
{
pinMode(LED[i], OUTPUT);
}
// Zufallsgenerator starten
randomSeed(analogRead(0));
}
Definiere eine Methode LEDBlinken, der als Variable die Nummer der LED und die Anzahl der Blinkvorgänge übergeben werden
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 Methode LEDBlinken mit der Nummer der LED, der Anzahl der Blinkvorgänge und die Leuchtdauer der jeweiligen LED aufgerufen:
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
-> Methode LEDBlinken aufrufen
*/
LEDBlinken(LED[i], AnzahlBlinken, Leuchtdauer);
}
}
Verwandte Aufgaben:
- Blinkende LED
- Blinkende LED mit einem Potentiometer
- Blinkende LEDs mit Multithreading
- Farbenspiele mit einem LED-Streifen
- Interrupt - Lauflicht mit Drehgeber
- Interrupt: Farbenspiel mit einem NeoPixel-Ring
- Lauflicht
- LED mit einem Relais schalten
- LEDs mit dem UDP-Protokoll im LAN schalten
- LEDs ohne Pulsweitenmodulation dimmen
- LEDs schalten mit PORT/DDR
- LEDs mit dem Schieberegister 74HC595 steuern
- LEDs mit einem Taster steuern
- Licht schalten mit dem Hall-Sensor 1881
- Wechselblinker
- Würfeln mit LEDs
Letzte Aktualisierung: