Beim Ausschalten wird die Helligkeit der LED vom Startwert an (255) runtergezählt. Die Verzögerung wird über den Zeitgeber gesteuert. Erhöht man den Wert der Variablen dauer, dauert das Ausschalten länger.

Im nächsten Schritt werden nach dem Drücken von Knopf A die LEDs verzögert heller. Dazu wird eine neue Variable ziel_helligkeit erzeugt, die mit einem Klick auf den Knopf A auf 255 gesetzt wird.
In der dauerhaft-Schhleife wird zuerst geprüft, ob die Zeit, die in dauer steht, abgelaufen ist. Ist das der Fall, wird geprüft, ob die helligkeit der LEDs kleiner ist als die eben festgelegt ziel_helligkeit. Ist das der Fall, wird die Helligkeit um eins erhöht und die LEDs mit diesem neuen Wert angesteuert.
Damit die LEDs mit der Taste B langsam ausgehen, muss über diese Taste die ziel_helligkeit auf 0 gesetzt werden. Schon geht das auch.
Häufig stellt man fest, dass das Programm nicht perfekt läuft. Hier ist es genau so. Mängel sind
Alle diese Probleme lassen sich mit mit wenigen Programmzeilen lösen:
Reduziert man den Wert von dauer und ändert die Helligkeit je Aufruf nicht um 1, sondern z.B. um 5, erhält man eine Lampe, die augenfreundlich an- und ausgeht.
Zu Beginn des Programms müssen die Neopixel und alle Variablen initialisiert werden. In der unendlichen Schleife wird beim Drücken von A die Helligkeit auf 255 gesetzt, die LEDs strahlen hell.
Wird A losgelassen, wird die Helligkeit im 20ms-Takt bis auf den Wert 0 verkleinert und sofort angezeigt.
Der Wartebefelh sleep() wird bewusst nicht verwendet, weil der Calliope mini während dieses Effektes sich eventuell auch noch um andere Sachen kümmern muss und nicht schlafen soll.

Falls der Effekt schneller oder langsamer ablaufen soll, muss die Variable dauer verändert werden.
Aufgabe: Erweitere das Programm, so dass beim Einschalten die LED ebenfalls allmählich angeht. Dabei sollte die Einschaltzeit kürzer als die Ausschaltzeit sein.