Mehrere LED´s in verschiedenen Modis mit einem Taster steuern

Moin liebe Community! Ich bin noch ganz frisch in der Arduino Welt und habe promt ein kleines Projekt vor. Es gibt dazu schon unzählige Threads zu, nur keiner konnte meine Frage exakt klären... Deshalb nun die Frage an euch:

Mein Ziel ist es die Beleuchtung eines Modellflugzeuges mit Hilfe eines Tasters steuern zu können. Das An und Ausschalten funktioniert ohne Probleme nur komme ich nun nicht mehr weiter, wenn ich einzelne LED blitzen lassen will.

Hier der Sketch mit dem ich mit dem Taster durch die Modis gehe und einzelne LED´s an oder ausschalten kann. Wie gesagt, die "Strobe Lights" sollen aber, während alle anderen LED´s in dem Modus an sind, blinken.

Ich hoffe auf eure Mithilfe... Vielen Dank schon einmal!

// Konstanten
const int tasterPin = 2; // Taster an Pin 2 angeschlossen
const int rotPin = 3; // Rote LED an Pin 3 angeschlossen
const int gruenPin = 4; // Gruene LED an Pin 4 angeschlossen
const int beaconPin = 5; // beacon LED an Pin 5 angeschlossen
const int navigationPin = 6; // position LED an Pin 6 angeschlossen
const int taxiPin = 7; // strobe LED an Pin 7 angeschlossen
const int strobePin = 8; // taxi LED an Pin 8 angeschlossen
const int landingPin = 9; // landing LED an Pin 9 angeschlossen

// Variablen
int lichtmodus = 0; // Variable für die verschiedenen festgelegten Farben
int tasterStatus = LOW; // Variable zu speichern des Tasterstatus

void setup()
{
pinMode(tasterPin, INPUT); // Setzt den TasterPin als Eingang
pinMode(rotPin, OUTPUT); // Setzt den LEDPin als Ausgang
pinMode(gruenPin, OUTPUT); // Setzt den LEDPin als Ausgang
pinMode(beaconPin, OUTPUT); // Setzt den LEDPin als Ausgang
pinMode(navigationPin, OUTPUT); // Setzt den LEDPin als Ausgang
pinMode(taxiPin, OUTPUT); // Setzt den LEDPin als Ausgang
pinMode(strobePin, OUTPUT); // Setzt den LEDPin als Ausgang
pinMode(landingPin, OUTPUT); // Setzt den LEDPin als Ausgang
}

void loop()
{
// Abfrage ob der Taster gedrückt ist
tasterStatus = digitalRead(tasterPin);

// Wenn Taster gedrückt ist...
if (tasterStatus == HIGH)
{
lichtmodus++; // Lichtmodus +1
delay(300); // 300ms warten
}

//+++++++++++++++ LEUCHTPROGRAMME +++++++++++++++++

// Modus 0 = Licht aus
if (lichtmodus == 0)
{
analogWrite(rotPin, 0);
analogWrite(gruenPin, 0);
analogWrite(beaconPin, 0);
analogWrite(navigationPin, 0);
analogWrite(taxiPin, 0);
analogWrite(strobePin, 0);
analogWrite(landingPin, 0);
}

// Modus 1 = GATE
else if (lichtmodus == 1)
{
analogWrite(rotPin, 255);
analogWrite(gruenPin, 255);
analogWrite(beaconPin, 0);
analogWrite(navigationPin, 255);
analogWrite(taxiPin, 0);
analogWrite(strobePin, 0);
analogWrite(landingPin, 0);
}

// Modus 2 = PUSHBACK
else if (lichtmodus == 2)
{
analogWrite(rotPin, 255);
analogWrite(gruenPin, 255);
analogWrite(beaconPin, 255);
analogWrite(navigationPin, 255);
analogWrite(taxiPin, 0);
analogWrite(strobePin, 0);
analogWrite(landingPin, 0);

}

// Modus 3 = TAXI
else if (lichtmodus == 3)
{
analogWrite(rotPin, 255);
analogWrite(gruenPin, 255);
analogWrite(beaconPin, 255);
analogWrite(navigationPin, 255);
analogWrite(taxiPin, 255);
analogWrite(strobePin, 0);
analogWrite(landingPin, 0);

}

// Modus 4 = TAKEOFF
else if (lichtmodus == 4)
{
analogWrite(rotPin, 255);
analogWrite(gruenPin, 255);
analogWrite(beaconPin, 255);
analogWrite(navigationPin, 255);
analogWrite(taxiPin, 255);
analogWrite(strobePin, 255);
analogWrite(landingPin, 255);
}

// Modus 5 = FLIGHT
else if (lichtmodus == 5)
{
analogWrite(rotPin, 255);
analogWrite(gruenPin, 255);
analogWrite(beaconPin, 255);
analogWrite(navigationPin, 255);
analogWrite(taxiPin, 0);
analogWrite(strobePin, 255);
analogWrite(landingPin, 0);
}

// Modus 4 = LANDING
else if (lichtmodus == 6)
{
analogWrite(rotPin, 255);
analogWrite(gruenPin, 255);
analogWrite(beaconPin, 255);
analogWrite(navigationPin, 255);
analogWrite(taxiPin, 255);
analogWrite(strobePin, 255);
analogWrite(landingPin, 255);
}

// Modus 4 = TAXI
else if (lichtmodus == 7)
{
analogWrite(rotPin, 255);
analogWrite(gruenPin, 255);
analogWrite(beaconPin, 255);
analogWrite(navigationPin, 255);
analogWrite(taxiPin, 255);
analogWrite(strobePin, 0);
analogWrite(landingPin, 0);
}

// Anzahl der Leuchtmodi auf 8 begrenzen. (0 bis 7)
else
{
lichtmodus = 0;
}
}

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Statt direkt den strobepin zu setzen, solltest du eine Hilfsvariable verwenden.
Je nach deren Zustand kannst du dann nach der BlinkWithoutDelay - Methode dein strobe-Licht blitzen lassen.

Mit der Hilfsvariable verstehe ich nicht ganz... Auch mit der BlinkWithoutDelay nicht. Ich verstehe dabei nicht wie ich eine einzelne LED von vielen in einem Modi ansteuern kann...

Warum ignorierst Du unsere Bitte nach den Codetags?

Gruß Tommy

Anregung: Lichtsteuerung Modellflugzeug (Standmodell)