Das Programm zur Gebäudebeleuchtung steuert mit Hilfe von Schieberegistern über drei Ports eine theoretisch beliebig große Anzahl von LEDs in Modellgebäuden an. Es ist sowohl auf dem ATtiny85 als auch auf jedem Arduino lauffähig – lediglich die Ports sind anzupassen.
Das Programm basiert auf vier Prinzipien:
- Die Lichtmuster für jedes Schieberegister werden in einem Byte gespeichert und in der Funktion ShiftoutLEDs als Block ausgegeben, sobald sich ein Bit verändert hat.
- Diese Veränderung einer Position wird durch einen Wert von 1 bis 20 repräsentiert, wobei die Werte 1 bis 8 das jeweilige Bit über eine „oder“-Verknüpfung einschalten und die Werte 11 bis 18 das entsprechende Bit über eine „und“-Verknüpfung ausschalten. Die Werte 9 bis 10 und Werte größer 18 führen keine Änderung aus.
- Die Position wird zufällig bestimmt, wobei der Bereich abhängig von einem Sensor sein kann. So könnte in einem Raum mit Tag-Nacht-Beleuchtung je nach Helligkeit „nur zufällig einschalten“ (1-8) oder „nur zufällig ausschalten“ (11-18) vorgegeben werden. Ein Bereich bis größer 20 würde dazu führen, dass öfter „nichts“ passiert.
- Nach einem Schaltvorgang wird das nächste Zeitintervall neu festgelegt. Dies bietet auch weitere Feintuning-Optionen für die Geschwindigkeit des Gesamtablaufs.
In der Stadthauszeile werden von einem Arduino Nano über vier Schieberegister insgesamt 32 LED-Paare (jeweils eine LED auf der Straßenseite und eine auf der Hinterhofseite) angesteuert:
Anwendung findet das Programm auch bei meinen Hintergrundgebäuden und demnächst auch beim Bahnhof Bottrop Nord auf meiner H0-Anlage.