Heo, ich habe gerade eine kleine Aufgabe, die ich irgendwie nicht ganz gelöst bekomme.
Ich schaffe es wohl, mit einem Button eine LED an und aus zu schalten, aber im gegebenen Fall sollen drei verschiedene LED Leuchten durgegangen werden und beim vierten Mal dann ausgehen. Also 1, 2, 3, aus.
Ich habe es schon mit pushcounter versucht, konnte aber nie mehr als 2 LEDs wechseln lassen.
Dir fehlt das theoretische Konzept, ob du das programmieren kannst, ist erst in zweiter Hinsicht wichtig.
simple state machine (0,1,2,3)
je nach Status gibst du eine andere Szene aus, auch "AUS" bzw. Status 0 ist eine Szene.
Dazu sollten die Szene irgendwie einzeln gespeichert werden, z.B jeweils als Zeichenkette (z.B. "0110", jede Stelle für eine LED, 0 aus, 1 ein). Also: je nach Status übergibst du dann einer Ausgabe-Funktion eine solche Szenen-Beschreibung als Parameter.
Also brauchst du noch (mind.) eine Funktion, die diese Zeichenketten interpretieren kann und je nach Position und Wert der enthaltenen Stellen die jeweils zugeordnete LED schaltet.
Wenn man es richtig schön modular machen möchte, definiert man noch eine weitere Funktion, der man als Parameter die LED-Position/Nummer und den Schaltzustand (0 oder 1) übergibt ...
Der große Vorteil dieser (möglicherweise von einigen Besserwissern hier) als "umständlich" bezeichneten - Methodik ist, dass man die einzelnen Funktionen getrennt entwickeln und testen kann und das das Programm später mal problemlos verändert oder erweiteret werden kann.
Beispiel: Irgendwann möchtest du evtl. die LEDs nicht nur an/aus-schalten, sondern per PWM unterschiedlich hell leuchten lassen. Dann bräuchtest du lediglich die eine Funktion zu verändern, die die einzelnen LEDs ansteuert, und natürlich die hinterlegten Szenenbeschreibungen (z.B. statt "0110" nun eben "0F30"). Der gesamte Rest des Programmes kann unverändert bleiben.
Und auch nach einem Jahr versteht man noch, was da passiert, wenn man mal wieder in den Code guckt.