VS14:
ich möche nach einer Zeit eine LED einschalten,
ist diese eingeschaltet soll eine zweite Zeit ablaufen und die LED 2 einschalten
doch irgendwie habe ich einen Denkfehler da beide LED gleichzeitig leuchten
Du möchtest ein Programm, das zweimal den Staus ändert:
- Programmstart
- nach Ablauf von ZEIT1 mache dies
- nach Ablauf von ZEIT2 maches das
- und danach mache nie wieder etwas (bis zum nächsten Reset)
Das machst Du am besten, indem Du Dir den Status merkst, in dem sich das Programm gerade befindet und mit der Auswertung von Bedingungen feststellst, ob sich der Status aufgrund einer Bedingung ändern soll. Hier mal ein Beispielcode mit Ausgabe auf Serial, aber das Umschreiben auf das Schalten von LEDs sollte wohl einfach sein:
enum {NICHTGESTARTET, ZEITLAEUFT, FERTIG};
#define ZEIT1 2000
#define ZEIT2 3000
byte status=NICHTGESTARTET;
void setup()
{
Serial.begin(9600);
Serial.println("Programm gestartet");
}
void loop()
{
static unsigned long startZeit=0;
if (status==NICHTGESTARTET && millis()>ZEIT1)
{
status=ZEITLAEUFT;
startZeit=millis();
Serial.println("ZEIT1 abgelaufen");
}
else if (status==ZEITLAEUFT && millis()-startZeit>ZEIT2)
{
status=FERTIG;
Serial.println("Fertig - ZEIT2 abgelaufen");
}
}