Moin,
Serenifly:
[...] Ich wollte dich nur nicht völlig verwirren. [...]
also spätestens jetzt isses soweit
Ich find das super als Denkanstoß, denn ich wusste ja nichtmal dass sowas hier möglich ist:
Serenifly:
Was auch mit der Übersichtlichkeit hilft ist Variablen die zusammengehören in eine Struktur zusammenzufasssen. Und dann ein Array daraus zu machen:struct Stellung
{
const byte pin;
const byte relaisZustand[3];
bool marker = false;
};
Stellung drehknopf[] =
{
{ 3, { 0, 0, 1 } },
{ 4, { 1, 0, 1 } }
};
const byte ANZAHL_STELLUNGEN = sizeof(drehknopf) / sizeof(drehknopf[0]);
void setup()
{
Serial.begin(9600);
for (byte i = 0; i < ANZAHL_STELLUNGEN; i++)
{
Serial.print(drehknopf[i].pin);
Serial.print(" -> ");
for (byte j = 0; j < sizeof(drehknopf[0].relaisZustand); j++)
{
Serial.print(drehknopf[i].relaisZustand[j]);
Serial.print(" ");
}
Serial.println();
}
Serial.println();
//Oder einfacher mit for each. Lese: für jedes Objekt stellung im Array drehknopf mach folgendes
for (auto& stellung : drehknopf) //Referenz da es sich um ein Objekt handelt. Dadurch wird keine Kopie angelegt
{
Serial.print(stellung.pin);
Serial.print(" -> ");
for (auto zustand : stellung.relaisZustand)
{
Serial.print(zustand);
Serial.print(" ");
}
Serial.println();
}
}
void loop()
{
}
EDIT: Arrays für Relais gleich in die Struktur gepackt und Dinge etwas sinnvoller benannt Das sieht man auch wie viel schöner ein for each ist :) Ansonsten gibt es auch noch zwei-dimensionale Arrays. Damit lässt sich die Durchnummerierung der Zustände auch vermeiden Und gewöhne dir an const für Konstanten zu verwenden. Auch deine Relais Pins sind besser so:
const byte Relais_3B = 29;
Ich lasse mein "Progrämmchen" jetzt erstmal so, behalte deinen Vorschlag aber im Hinterkopf.
Vielen Dank für Deine Mühen!!!
Viele Grüße,
Marcus