Hallo Leute
Ich habe mir für die Modelleisenbahn eine kleine Rundumleuchte (Lauflicht) aus 3 smd LEDs gebaut. Diese kan ich mit einen Taster einschalten aber ich bekomme es nicht hin die Rundumleuchte mit mit einen anderen Taster wieder auszuschalten. Also 1. Taster schaltet ein 2.Taster wieder aus. Ich hoffe ihr könnt mir ein wenig helfen.
Gruß in die Runde
Code: [Select]
[code]
const byte tasterstartPin = 2;
const byte led1pin = 3;
const byte led2pin = 4;
const byte led3pin = 5;
const byte tasterausPin = 7;
bool tasterstate = LOW;
bool taster1state = LOW;
const int ZEITPHASE = 100;
unsigned long einMillis;
unsigned long einIntervall;
enum ZUSTAENDE {Warten, LED1, LED2, LED3, Aus, };
byte zustand = Warten;
int tasterstartStatus = 0;
int taster1startStatus = 0;
void setup() {
pinMode(led1pin, OUTPUT);
pinMode(led2pin, OUTPUT);
pinMode(led3pin, OUTPUT);
pinMode(tasterstartPin, INPUT);
pinMode(tasterausPin, INPUT);
}
void loop() {
tasterstartStatus = digitalRead(tasterstartPin);
taster1startStatus = digitalRead(tasterausPin);
if (millis() - einMillis >= einIntervall) {
switch (zustand) {
case Warten:
if (tasterstartStatus) {
zustand = LED1;
}
if (taster1startStatus) {
zustand = Aus;
}
break;
case LED1:
digitalWrite(led1pin, HIGH);
digitalWrite(led2pin, LOW);
digitalWrite(led3pin, LOW);
zustand = LED2;
einMillis = millis();
einIntervall = ZEITPHASE;
break;
case LED2:
digitalWrite(led1pin, LOW);
digitalWrite(led2pin, HIGH);
digitalWrite(led3pin, LOW);
zustand = LED3;
einMillis = millis();
einIntervall = ZEITPHASE;
break;
case LED3:
digitalWrite(led1pin, LOW);
digitalWrite(led2pin, LOW);
digitalWrite(led3pin, HIGH);
zustand = LED1;
einMillis = millis();
einIntervall = ZEITPHASE;
break;
case Aus:
digitalWrite(led1pin, LOW);
digitalWrite(led2pin, LOW);
digitalWrite(led3pin, LOW);
zustand = Warten;
einMillis = millis();
einIntervall = ZEITPHASE;
break;
}
}
}
[/code]