enum LED
{
// Startwert Pin 3
LED_1 = 3,
LED_2,
LED_3,
LED_4,
LED_5
};
// Zufallsbereich des Blinkintervalls
# define Minimum 100
# define Maximum 2000
void setup()
{
// pinMode festlegen: Startwert LED_1, Endwert LED_5
for (int i = LED_1; i <= LED_5; i++)
{
pinMode(i, OUTPUT);
}
// Zufallsgenerator starten
randomSeed(analogRead(A0));
}
void loop()
{
LED_1_Blinken();
LED_2_Blinken();
LED_3_Blinken();
LED_4_Blinken();
LED_5_Blinken();
}
void LED_1_Blinken()
{
/*
die Variablen sollen den letzten Wert des Aufrufs behalten
-> Definition als static
*/
static bool Zustand = false;
/*
der Rückgabewert von millis() ist unsigned long int
-> WarteZeit muss ebenfalls den Typ unsigned long int haben
*/
static unsigned long int WarteZeit = 0;
// Blinkintervall zufällig ermitteln
int BlinkIntervall = random(Minimum, Maximum);
// wenn Zustand false
if (!Zustand)
{
/*
millis() ermittelt die seit Programmstart verstrichene Zeit
prüfen, ob die Zeit schon abgelaufen ist
millis() - WarteZeit muss größer als das BlinkIntervall sein
*/
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_1, HIGH);
// Wartezeit um Blinkintervall erhöhen
WarteZeit += BlinkIntervall;
Zustand = !Zustand;
}
}
// wenn Zustand true
if (Zustand)
{
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_1, LOW);
WarteZeit += BlinkIntervall;
// Zustand "umdrehen" true -> false, false -> true
Zustand = !Zustand;
}
}
}
void LED_2_Blinken()
{
/*
die Variablen sollen den letzten Wert des Aufrufs behalten
-> Definition als static
*/
static bool Zustand = false;
/*
der Rückgabewert von millis() ist unsigned long int
-> WarteZeit muss ebenfalls den Typ unsigned long int haben
*/
static unsigned long int WarteZeit = 0;
// Blinkintervall zufällig ermitteln
int BlinkIntervall = random(Minimum, Maximum);
// wenn Zustand false
if (!Zustand)
{
/*
millis() ermittelt die seit Programmstart verstrichene Zeit
prüfen, ob die Zeit schon abgelaufen ist
millis() - WarteZeit muss größer als das BlinkIntervall sein
*/
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_2, HIGH);
// Wartezeit um Blinkintervall erhöhen
WarteZeit += BlinkIntervall;
Zustand = !Zustand;
}
}
// wenn Zustand true
if (Zustand)
{
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_2, LOW);
WarteZeit += BlinkIntervall;
// Zustand "umdrehen" true -> false, false -> true
Zustand = !Zustand;
}
}
}
void LED_3_Blinken()
{
/*
die Variablen sollen den letzten Wert des Aufrufs behalten
-> Definition als static
*/
static bool Zustand = false;
/*
der Rückgabewert von millis() ist unsigned long int
-> WarteZeit muss ebenfalls den Typ unsigned long int haben
*/
static unsigned long int WarteZeit = 0;
// Blinkintervall zufällig ermitteln
int BlinkIntervall = random(Minimum, Maximum);
// wenn Zustand false
if (!Zustand)
{
/*
millis() ermittelt die seit Programmstart verstrichene Zeit
prüfen, ob die Zeit schon abgelaufen ist
millis() - WarteZeit muss größer als das BlinkIntervall sein
*/
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_3, HIGH);
// Wartezeit um Blinkintervall erhöhen
WarteZeit += BlinkIntervall;
Zustand = !Zustand;
}
}
// wenn Zustand true
if (Zustand)
{
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_3, LOW);
WarteZeit += BlinkIntervall;
// Zustand "umdrehen" true -> false, false -> true
Zustand = !Zustand;
}
}
}
void LED_4_Blinken()
{
/*
die Variablen sollen den letzten Wert des Aufrufs behalten
-> Definition als static
*/
static bool Zustand = false;
/*
der Rückgabewert von millis() ist unsigned long int
-> WarteZeit muss ebenfalls den Typ unsigned long int haben
*/
static unsigned long int WarteZeit = 0;
// Blinkintervall zufällig ermitteln
int BlinkIntervall = random(Minimum, Maximum);
// wenn Zustand false
if (!Zustand)
{
/*
millis() ermittelt die seit Programmstart verstrichene Zeit
prüfen, ob die Zeit schon abgelaufen ist
millis() - WarteZeit muss größer als das BlinkIntervall sein
*/
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_4, HIGH);
// Wartezeit um Blinkintervall erhöhen
WarteZeit += BlinkIntervall;
Zustand = !Zustand;
}
}
// wenn Zustand true
if (Zustand)
{
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_4, LOW);
WarteZeit += BlinkIntervall;
// Zustand "umdrehen" true -> false, false -> true
Zustand = !Zustand;
}
}
}
void LED_5_Blinken()
{
/*
die Variablen sollen den letzten Wert des Aufrufs behalten
-> Definition als static
*/
static bool Zustand = false;
/*
der Rückgabewert von millis() ist unsigned long int
-> WarteZeit muss ebenfalls den Typ unsigned long int haben
*/
static unsigned long int WarteZeit = 0;
// Blinkintervall zufällig ermitteln
int BlinkIntervall = random(Minimum, Maximum);
// wenn Zustand false
if (!Zustand)
{
/*
millis() ermittelt die seit Programmstart verstrichene Zeit
prüfen, ob die Zeit schon abgelaufen ist
millis() - WarteZeit muss größer als das BlinkIntervall sein
*/
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_5, HIGH);
// Wartezeit um Blinkintervall erhöhen
WarteZeit += BlinkIntervall;
Zustand = !Zustand;
}
}
// wenn Zustand true
if (Zustand)
{
if (millis() - WarteZeit >= BlinkIntervall)
{
digitalWrite(LED_5, LOW);
WarteZeit += BlinkIntervall;
// Zustand "umdrehen" true -> false, false -> true
Zustand = !Zustand;
}
}
}
Letzte Aktualisierung: