// Init blingLed
struct blingLed {
int pin;
long onLight;
long offLight;
};
// Initialisierung der LEDs
blingLed redLed = {8, 1, 5}; // Pin 13, Einschaltdauer 1s, Ausschaltdauer 5s
blingLed greenLed = {12, 4, 2}; // Pin 12, Einschaltdauer 4s, Ausschaltdauer 2s
void setup() {
// Info Text: Start Loading
Serial.begin(9600);
Serial.println(">Ardumino MEGA<");
Serial.print("Loading...");
// Setup:
pinMode(redLed.pin, OUTPUT); // Initialisiere rote LED
pinMode(greenLed.pin, OUTPUT); // Initialisiere grüne LED
Serial.println("Finished."); // Info Text: Finished Loading
}
void loop() {
BlingLed(redLed); // Steuere rote LED
BlingLed(greenLed); // Steuere grüne LED
}
// BlingLed Funktion
void BlingLed(blingLed &led) {
// Zeiten in Millisekunden umwandeln
unsigned long on = led.onLight * 1000;
unsigned long off = led.offLight * 1000;
static long millisLast = 0; // Wert zwischen Funktionsaufrufen beibehalten
if (digitalRead(led.pin) == LOW) { // LED ist derzeit aus
if (millis() - millisLast >= off) {
digitalWrite(led.pin, HIGH); // LED einschalten
millisLast = millis(); // Zeitpunkt der letzten Änderung speichern
}
} else { // LED ist derzeit an
if (millis() - millisLast >= on) {
digitalWrite(led.pin, LOW); // LED ausschalten
millisLast = millis(); // Zeitpunkt der letzten Änderung speichern
}
}
}