Andreaskreuzt Blinksteuerung mit Arduino

Andreaskreuz Blinksteuerung mittels Arduino

In diesem Beitrag zeigen wir euch, wie ihr eine Andreaskreuz Blinksteuerung einfach mittels Arduino erstellen könnt.

Andreaskreuz Blinksteuerung mittels Arduino

Auf der Kinderanlage möchte ich einen Bahnübergang mit Andreaskreuz darzustellen. Daher war ich auf der Suche nach einer einfachen Möglichkeit die LED´s in den Andreaskreuzen abwechselnd zum Blinken zu bringen. Natürlich gibt es für diese Aufgabe fertige Blinkelektronik auf dem Markt, allerdings habe ich bereits zur Weichensteuerung ein Arduino im Einsatz (Hier geht es zum Bericht). Also lag es nahe mit Hilfe des vorhandenen Arduinos diese Aufgabe zu erledigen.

Grundsätzlicher Aufbau

Für den Bahnübergang verwende ich Andreaskreuzbausätze von Viessmann (erhältlich bei Conrad oder Völkner). Wie man die Andreaskreuze genau zusammenbaut, werde ich in einem extra Bericht für euch festhalten. Aber nun zurück zu Blinklichtsteuerung. Durch Betätigung eines Drucktaster sollen die LED´s am Bahnübergang beginnen zu leuchten und sobald der Taster ein weiters mal gedrückt wird, wieder erlöschen. Natürlich könnte man die Andreaskreuze auch vom vorbeifahrenden Zug per Kontaktgleis oder ähnlichem auslösen lassen, aber das war nicht meine Ziel (..wäre aber auch mit dem Arduino Machbar).

Verkabelung:

Die grundsätzliche Verkabelung der Andreaskreuz Blinksteuerung sieht wie folgt aus:

Anschluss der LEDs an den Arduino
Anschluss der LEDs an den Arduino für die Blinklichtsteuerung

Kommen wir nun zum Eigentlichen Sketch:

Das hier erklärte Arduino Sketch umfasst nur die Funktionalität der Andreaskreuz Blinksteuerung, sozusagen als stand-alone Version.

Ihr könnt das entsprechende Sketch hier herunterladen:
—> Andreaskreuz Blinksteuerung stand-alone

Für mein Stellpult habe ich das ganze natürlich in das bereits vorgestellte Weichensteuerung Sketch integriert (siehe Arduino Weichensteuerung), als Vollversion….

Ihr könnt das  entsprechende Sketch hier herunterladen
—> Andreaskreuz Blinksteuerung  + Weichensteuerung

Im Kopf des Sketch werden zunächst die Input (Drucktaster) und Output (Andreaskreuz LEDs) PINs festgelegt. Damit das Sketch korrekt abläuft kann, müssen noch einige Variablen und Initialwert definiert werden.
Mit der variable Crossing_tiLightInterval kann die Blinkdauer individuell eingestellt werden. Der Wert ist immer in milliseconden, somit in unserem Beispiel 500ms (500ms LED ON / 500ms LED OFF)

Im “void  setup ()” wird die Funktion der einzelnen PIN´s, ob es sich um einen Input oder Output handelt, genau definiert. Des Weiteren ist noch wichtig zu erwähnen, dass ich für den Input immer den internen Pull Up Widerstand des Atmega chip verwende. Dadurch sind alle Eingangssignale invertiert d.h. Taster gedrückt = Low und Taster nicht gedrückt = High .

Im “void loop ()” steht nun der eigentliche Programmcode für die Steuerung. Zunächst wird ständig mit Hilfe des Befehls “millis()” die aktuelle Einschaltdauer der Arduinos and die variable Crossing_tiCurrentMillis übergeben. Diese Zeitabfrage ist wichtig um das Blinken der LEDs zu erreichen.
Mittels If Abfrage wird geprüft ob ein Blinken nun gewünscht ist oder nicht. Wenn Blink_stCrossing== HIGH ist, wird das Blinken Aktiviert. Die zweite If Abfrage sorgt dafür, das nach Ablaufen der Blinkdauer (Crossing_tiLightInterval) die LEDs ein bzw. wieder ausgeschaltet werden. Wenn kein Blinken gewünscht wird, sind die LEDs abgeschaltet (else Pfad)

 

0 comments on “Andreaskreuz Blinksteuerung mittels ArduinoAdd yours →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Ich akzeptiere

Translate »