Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Der Einstieg in die MobaLedLib:

Stammtische

aktuell verwendete Versionen


Python MobaLedLib

Workshops

Verwendung mit der MoBa-Zentrale

Steuerung der MobaLedLib-Effekte

Erste Hilfe

Bewegung mit der MLL

Servoplatine

Relaisplatine

WS2811-BiPol


Sound mit der MLL

JQ6500

MP3-TF-16P

Hauptplatine

Servoplatine

Sounddateien

Anwendungsbeispiele:

3D-Druck

Entwicklungen MoBa-Universum

Platinen van Theo

MobaLedLib Sonderplatinen

Drehscheibensteuerung LocoTurn V 1.4

Drehscheibe (V0.6)

Lok-Platinen

OLED Displays

Infrared to Z21 Bridge

Hilfereiche Themen

Wissen für Fortgeschrittene

Impressum & Datenschutz

Für Wiki-Editoren:

Faszination Modellbahn - wir sind 2025 dabei

wir sind dabei

anleitungen:prog_gen:tag_und_nachtsteuerung

Tag und Nachtsteuerung

Varianten zur Ansteuerung

Zur Tag- und Nachtsteuerung mit der MobaLedLib gibt es zwei verschiedene Möglichkeiten:
Variante 1: Steuerung über einen Helligkeitssensor
Der Helligkeitssensor misst die Umgebungshelligkeit. Die Lichter gehen automatisch an, wenn es dunkel im Raum wird.

Variante 2: Steuerung über eine Modellbahnzeit
Dabei erzeugt der Arduino eine Modellbahnzeit. Das kann entweder automatisch oder in Synchronisation mit der Digitalzentrale/ dem Steuerungsprogramm erfolgen.

Variante 1

An die Hauptplatine wird ein Helligkeitssensor (LDR) angeschlossen. Dazu ist eine zweipolige Stiftleiste oben links auf der Hauptplatine vorgesehen. Stattdessen kann auch ein Schalter angeschlossen werden, mit dem zwischen Tag und Nacht umgeschaltet werden kann. Ist der Schalter geöffnet, ist es Nacht. Wenn der Schaltet geschlossen ist, dann ist es Tag. Man kann auch einen dreipoligen Schalter verwenden. Dabei ist die mittlere Stellung dann der Automatikmodus per Helligkeitssensor.
Der Arduino erkennt, wenn es dunkler wird und schaltet die Lichter abhängig von den gemessenen Helligkeitswerten ein oder aus.
Konfiguration im Programm- Generator: Zunächst wählt man im Programm Generator die Funktion Read LDR, danach die Funktion Read_LDR_Debug. Die Funktion Read LDR sorgt dafür, dass die Helligkeitswerte ausgelesen werden. Durch die Funktion Read_LDR_Debug werden die Helligkeitswerte im seriellen Monitor der Arduino IDE angezeigt. Das sieht dann so aus:

Im Bild zeigen die steigenden Zahlen, dass es dunkler wird. Man kann zum Testen den Helligkeitssensor abdecken und wird sehen, dass die Zahlen langsam steigen. Im Beispiel ist es bei Werten von 70-80 hell und bei Werten über 150 dunkel. Nun muss man den Helligkeitswert bestimmen, bei dem die Lichter angehen sollen.
Danach ruft man im Programm Generator die Funktion Schedule auf. Dann erscheint dieses Fenster:

Unter Zielvariable 1 gibt man den Namen der ersten Variable, unter letzte Zielvariable den Namen der letzten Variable ein. Diese Namen müssen mit einer Zahl enden. Im Beispiel werden die Variablen Haus1 bis Haus2 verwendet. Diese Variablen werden dann eingeschaltet, wenn es dunkel wird. Bei den Eingabefeldern Startwert und Endwert gibt man die Helligkeitswerte ein. Im Feld Startwert wird die Helligkeit eingegeben, bei der die ersten Häuser eingeschaltet werden sollen. Unter Endwert wird der Helligkeitswert eingegeben, bei dem alle Häuser eingeschaltet sein sollen. Im Beispiel werden dazu die Werte 120 und 150 verwendet. Diese Werte sind aber abhängig vom verwendeten Helligkeitssensor.
Im Feld Enable_Pin muss SI_1 eingetragen bleiben. Dort wird nicht der Pin eingetragen, an dem der Helligkeitssensor angeschlossen ist.

Es ist auch denkbar, mehrere Schedule Funktionen gleichzeitig zu verwenden. Dadurch können unterschiedliche Beleuchtungen bei unterschiedlichen Helligkeitswerten angehen. Man kann z. B. eine Schedule Funktion für Häuser und eine eigene Schedule Funktion für Straßenlaternen verwenden. So können dann z. B. die Straßenlaternen vor den Häusern angehen. Es sind beliebige Kombinationen möglich. Man kann damit z.B. auch erreichen, dass Ampeln gelb blinken, wenn es ganz dunkel ist.
Nun trägt man im Programm Generator noch die Häuser ein. Für das Beispiel habe ich zwei Häuser mit je drei RGB Leds verwendet. In der Spalte Adresse oder Name trägt man nun bei den beiden Häusern die Variablen Haus1 und Haus2 ein. Nun sollte die Konfiguration so aussehen:


Variante 2

Bei Variante 2 wird vom Arduino eine Modellbahnzeit generiert. Diese kann entweder automatisch ablaufen oder mit der Modellbahnzeit einer Digitalzentrale oder eines Steuerungsprogramms synchronisiert werden. Diese Modellzeit wird von einer Variable mit einem Wertebereich von 0 bis 255 repräsentiert. Zwischen 12 Uhr mittags und Mitternacht steigen die Werte an, danach sinken sie wieder. Es kann festgelegt werden, wie lange ein Tag/ Nacht Zyklus dauern soll. Dazu wählt man im Programm Generator die Funktion DayAndNightTimer aus. Daraufhin erscheint dieses Fenster:

Im Feld Dauer eines Tag/ Nacht Zyklus trägt man die Zeit in Minuten ein, die ein Tag dauern soll. Zum Testen habe ich hier 1 eingegeben.
Nun ruft man die Schedule Funktion auf.

Unter Zielvariable 1 gibt man den Namen der ersten Variable, unter letzte Zielvariable den Namen der letzten Variable ein. Diese Namen müssen mit einer Zahl enden. Im Beispiel werden die Variablen Haus1 bis Haus2 verwendet. Diese Variablen werden dann eingeschaltet, wenn es dunkel wird.
Im Feld Enable_Pin muss SI_1 eingetragen bleiben. Dort wird nicht der Pin eingetragen, an dem der Helligkeitssensor angeschlossen ist.
Bei den Eingabefeldern Startwert und Endwert gibt man die Helligkeitswerte ein. Im Feld Startwert wird die Uhrzeit eingegeben, bei der die ersten Häuser eingeschaltet werden sollen. Unter Endwert wird die Uhrzeit eingegeben, bei der alle Häuser eingeschaltet sein sollen. Im Beispiel werden dazu die Werte 140 und 150 verwendet. Es wird nicht die reale Uhrzeit eingetragen. Die Zahlen von 0 bis 255 stehen jeweils für eine bestimmte Uhrzeit. Diese Werte kann man über den seriellen Monitor herausfinden. Die Uhrzeit ist zunächst 12:00 Uhr mittags. Das entspricht einem Wert von 0. Bis 24:00 Uhr steigen die Werte. Um Mitternacht ist es dann ein Wert von 255. Danach sinken die Werte wieder, bis sie um 12:00 mittags wieder bei 0 sind.

Nun trägt man noch die Häuser ein. Für das Beispiel habe ich zwei Häuser mit je drei Leds verwendet. In die Spalte Adresse oder Name werden nun die Variablen eingetragen (Hier Haus1 und Haus2). Nun sollte die Konfiguration etwa so aussehen:

Es ist auch denkbar, mehrere Schedule Funktionen gleichzeitig zu verwenden. Dadurch können unterschiedliche Beleuchtungen zu unterschiedlichen Zeiten angehen. Man kann z. B. eine Schedule Funktion für Häuser und eine eigene Schedule Funktion für Straßenlaternen verwenden. So können dann z. B. die Straßenlaternen vor den Häusern angehen. Es sind beliebige Kombinationen möglich. Man kann damit z.B. auch erreichen, dass Ampeln spät in der Nacht gelb blinken usw.

Die fertige Konfiguration kann man dann auf den Arduino laden.


Synchronisation der Modellzeit

Will man die Modellzeit mit der Modellzeit eines Steuerungsprogramms synchronisieren, muss man in der Zeile mit der Funktion DayAndNightTimer() in der Spalte Adresse oder Name eine DCC Adresse eintragen. Wichtig: Die Dauer eines Tag/ Nacht Zyklus muss in der MobaLedLib Konfiguration den gleichen Wert wie im Steuerungsprogramm haben. Nun muss das Steuerungsprogramm um 12:00 Uhr mittags die DCC Adresse ein- und um Mitternacht wieder ausschalten. Die Modellzeit des Arduinos bleibt bei diesen Zeiten dann so lange stehen, bis die DCC Adresse umgeschaltet wird.


Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
anleitungen/prog_gen/tag_und_nachtsteuerung.txt · Zuletzt geändert: 2021/01/09 11:59 von 127.0.0.1