In der Variable lautstärke wird der aktuelle Wert des Mikrofons gespeichert. Da das Mikro nur Werte zwischen 0 und 100 liefert, die LED aber mit Werten von 0 bis 255 angesteuert wird, multipliziert man den Lautstärkewert mit 2,55.
So richtig beeindruckt das Lichterspiel aber nicht. Das hängt damit zusammen, dass unsere Empfindungen dem Logarithmus des Reizes entsprechen. (Weber-Fechner-Gesetz)
Im Programm wird deshalb der natürliche Logarithmus des Lautstärkewertes gebildet. Da der Logarithmus von 0 aber nicht definiert ist und alle Wert kleiner als 1 einen negativen Logarithmus liefern, addiert man zum Wert des Mikrofons einfach eine 1 dazu.
Der Logarithmus vom größten Lautstärkewert 101 (100+1) liefert 4,6. Um das wieder in den Bereich von 0 bis 255 für die LED umzuwandeln, wird das Ergebnis mit 55 multipliziert. (4,6 * 55 = 253)
Jetzt sieht das Ergebnis schon besser aus.
Die Lichtorgel soll nicht nur in rot, sondern auch in anderen Farben aufleuchten.
In einer Entscheidung wird geprüft, ob eine in der Variablen zeitdauer gespeicherte Zeit abgelaufen ist. Falls das der Fall ist, wird der Zeitgeber auf 0 gesetzt. Damit der Farbwechsel nicht immer nach der gleichen Zeit erfolgt, wird die Zeittdauer für den nächsten Farbwechsel zufällig zwischen 1 und 2 Sekunden bestimmt. Das kann natürlich individuell verändert werden.
In der Variablen farbe wird zufällig ein Wert zwischen 1 und 3 abgelegt. In der nachfolgenden Entscheidung wird an Hand dem Wert in der Variablen farbe die ensprechenden LED angesteuert.
Im Beispiel sind das nur die Farben Rot, Grün und Blau. Es wären aber auch noch Gelb, Cyan, Magenta und Weiß möglich.