Steht ihr alle auf redundanten Code oder gehts um das einfachere Verständnis?
Hier nochmal die Variante mit dem Struct, aber deutlich kürzer. Eine Boolsche Variable braucht man übrigens nicht auf true prüfen
if (var == true)
das passiert automatisch und es reicht
if (var)
Hier das Sketch von agmue mit der Änderung
struct LedZustand
{
bool Led00: 1;
bool Led01: 1;
bool Led02: 1;
bool Led03: 1;
bool Led04: 1;
bool Led05: 1;
bool Led06: 1;
bool Led07: 1;
};
LedZustand Leds ;
void setup() {
pinMode(14, INPUT); // Pin 14 = A0 ist Eingang für Taster, PullDown
pinMode(15, INPUT);
pinMode(16, INPUT);
pinMode(17, INPUT);
pinMode(13, OUTPUT); // Pin13 .. als Ausgang
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(13, HIGH); // Programmstart Pin 13 auf HIGH
}
void loop() {
Leds.Led01 = digitalRead(14);
Leds.Led02 = digitalRead(15);
Leds.Led03 = digitalRead(16);
Leds.Led04 = digitalRead(17);
if (Leds.Led01 || Leds.Led02 || Leds.Led03 || Leds.Led04) { // wenn irgend ein Button auf HIGH ist
digitalWrite(13, Leds.Led01);
digitalWrite(12, Leds.Led02);
digitalWrite(11, Leds.Led03);
digitalWrite(10, Leds.Led04);
}
}