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.
Beispiel:
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:
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(A0));
}
Definiere eine Funktion 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 Funktion 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
-> Funktion LEDBlinken aufrufen
*/
LEDBlinken(LED[i], AnzahlBlinken, Leuchtdauer);
}
}
Verwandte Anleitungen:
- Blinkende LED
- Blinkende LED mit einem Potentiometer
- Blinkende LEDs mit Multithreading
- Farbe und Helligkeit eines LED-Streifens mit Potentiometern manipulieren
- Farbenspiele mit einem LED-Streifen
- Interrupt - Lauflicht mit Drehgeber
- Interrupt: Farbenspiel mit einem NeoPixel-Ring
- Lauflicht
- Wechselblinker mit einem Relais
- LEDs mit Transistor schalten
- LEDs mit dem UDP-Protokoll über WLAN im lokalen Netzwerk schalten
- LEDs mit einem Joystick-Shield 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 Bewegungsmelder und Lichtintensitätssensor oder Fotowiderstand
- Wechselblinker
Letzte Aktualisierung: