Sorry guys!
I just wanted to say that I coded a function for the different cases, where it is opened with different parameters, e.g. the the LEDpin.
Here the whole arduino code:
void setup() {
Serial.begin(9600);
// pins 3 - 29 set as output, default will be low
pinMode(3, OUTPUT); //Fach1 - rot
pinMode(4, OUTPUT); //Fach1 - blau
pinMode(5, OUTPUT); //Fach1 - grün
pinMode(6, OUTPUT); //Fach2 - rot
pinMode(7, OUTPUT); //Fach2 - blau
pinMode(8, OUTPUT); //Fach2 - grün
pinMode(9, OUTPUT); //Fach3 - rot
pinMode(10, OUTPUT); //Fach3 - blau
pinMode(11, OUTPUT); //Fach3 - grün
pinMode(12, OUTPUT); //Fach4 - rot
pinMode(13, OUTPUT); //Fach4 - blau
pinMode(14, OUTPUT); //Fach4 - grün
pinMode(15, OUTPUT); //Fach5 - rot
pinMode(16, OUTPUT); //Fach5 - blau
pinMode(17, OUTPUT); //Fach5 - grün
pinMode(18, OUTPUT); //Fach6 - rot
pinMode(19, OUTPUT); //Fach6 - blau
pinMode(20, OUTPUT); //Fach6 - grün
pinMode(21, OUTPUT); //Fach7 - rot
pinMode(22, OUTPUT); //Fach7 - blau
pinMode(23, OUTPUT); //Fach7 - grün
pinMode(24, OUTPUT); //Fach8 - rot
pinMode(25, OUTPUT); //Fach8 - blau
pinMode(26, OUTPUT); //Fach8 - grün
pinMode(27, OUTPUT); //Fach9 - rot
pinMode(28, OUTPUT); //Fach9 - blau
pinMode(29, OUTPUT); //Fach9 - grün
}
void loop() {
switch (Serial.read()) {
case 0x01:
blinkWithoutDelay(3, 100, 200)
break;
case 0x02:
digitalWrite(4, HIGH);
break;
case 0x03:
digitalWrite(5, HIGH);
break;
case 0x04:
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
break;
case 0x05:
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
break;
case 0x06:
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
break;
case 0x07:
digitalWrite(6, HIGH);
break;
case 0x08:
digitalWrite(7, HIGH);
break;
case 0x09:
digitalWrite(8, HIGH);
break;
case 0x0A:
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
break;
case 0x0B:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
break;
case 0x0C:
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
break;
case 0x0D:
digitalWrite(9, HIGH);
break;
case 0x0E:
digitalWrite(10, HIGH);
break;
case 0x0F:
digitalWrite(11, HIGH);
break;
case 0x10:
digitalWrite(9, HIGH);
digitalWrite(11, HIGH);
break;
case 0x11:
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
break;
case 0x12:
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
break;
case 0x13:
digitalWrite(12, HIGH);
break;
case 0x14:
digitalWrite(13, HIGH);
break;
case 0x15:
digitalWrite(14, HIGH);
break;
case 0x16:
digitalWrite(12, HIGH);
digitalWrite(14, HIGH);
break;
case 0x17:
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
break;
case 0x18:
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(14, HIGH);
break;
case 0x19:
digitalWrite(15, HIGH);
break;
case 0x1A:
digitalWrite(16, HIGH);
break;
case 0x1B:
digitalWrite(17, HIGH);
break;
case 0x1C:
digitalWrite(15, HIGH);
digitalWrite(17, HIGH);
break;
case 0x1D:
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
break;
case 0x1E:
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
break;
case 0x1F:
digitalWrite(18, HIGH);
break;
case 0x20:
digitalWrite(19, HIGH);
break;
case 0x21:
digitalWrite(20, HIGH);
break;
case 0x22:
digitalWrite(18, HIGH);
digitalWrite(20, HIGH);
break;
case 0x23:
digitalWrite(18, HIGH);
digitalWrite(19, HIGH);
break;
case 0x24:
digitalWrite(18, HIGH);
digitalWrite(19, HIGH);
digitalWrite(20, HIGH);
break;
}
void blinkWithoutDelay(int pin, int off, int on)
{
int blinkPhase=millis()%(off+on);
if (blinkPhase<off) {
digitalWrite(pin, LOW);
}
else {
digitalWrite(pin, HIGH);
}
}
}