const int LEDBlau=7;
const int LEDRot=4;
const int LEDGelb=3;
const int LEDGruen=2;
const int RGBRot=6;
const int RGBGruen=5;
const int SWEin=12;
const int SWAus=11;
const int valGruen=1; //binäre Wert
const int valGelb=2;
const int valRot=4;
const int valRGBGruen=8;
const int valRGBRot=16;
const int valBlau=32;
const int valLED[]={17,16,17,16,17,16,17,16,17,18,20,12,4,12,4,12,4,12,4,12,22};
const int valdelay[]={8000,500,500,500,500,500,500,500,500,3000,4000,2000,500,500,500,500,500,500,500,500,2000};
int lastindex=sizeof(valLED)/sizeof(int)-1;
int i=0;
void setup() {
pinMode(LEDRot, OUTPUT);
pinMode(LEDGelb, OUTPUT);
pinMode(LEDGruen, OUTPUT);
pinMode(LEDBlau, OUTPUT);
pinMode(RGBRot, OUTPUT);
pinMode(RGBGruen, OUTPUT);
pinMode(SWEin, INPUT_PULLUP);
pinMode(SWAus, INPUT_PULLUP);
}
void loop() {
if(digitalRead(SWEin)) {
digitalWrite(LEDBlau, LOW);
setLED(valLED[i],valdelay[i]);
i++;
if(i >lastindex) i=0;
}
else {
setLED(2,500);
setLED(0,500);
digitalWrite(LEDBlau, HIGH);
}
}
void setLED(int valLED, int valdelay)
{
digitalWrite(LEDGruen, valLED & valGruen);
digitalWrite(LEDGelb, valLED & valGelb);
digitalWrite(LEDRot, valLED & valRot);
digitalWrite(RGBGruen, !(valLED & valRGBGruen));
digitalWrite(RGBRot, !(valLED & valRGBRot));
delay(valdelay/2);
}