Hallo,
ich wollte euch mal meinen Bahnübergang vorstellen.
Meine Anforderungen:
- Per Taster Aktivierbar
- Status LED
- Andreaskreuze sollen eine bestimmte Zeit vorher schon Blinken bevor die Schranken schließen
- Steckbar (da ich es aus dem Keller wegen Feuchtigkeit mit hoch nehmen möchte)
Schranke/Andreaskreuze:
Schranke: Viessmann 5700 (Spur TT)
Andreaskreuze: Busch 5929 (Spur TT)
Das ganze habe ich mit einem Arduino UNO realisiert. Hier seht ihr einmal den Aufbau:
Zu den Anschlüssen:
Anschluss 1&2:
Diese beiden Ausgänge müssen mit eurem Taster verbunden werden.
Anschluss 3:
Dieser Anschluss ist die Anode (+) der Status LED.
Anschluss 4:
Dieser Anschluss ist die Kathode (-) der Status LED.
Anschluss 5:
Anschluss Andreaskreuze
Anschluss 6:
Schranke öffnen
Anschluss 7:
Schranke schließen
Anschluss 8:
Spannung für Ausgang
Bitte darauf Achten das ihr einen Pol eurer Spannung an die eine Seite der Schranke/Andreaskreuze anlegt und den anderen Pol über den Arduino legt (Ausgang 8 rein -> Ausgang 5,6,7) und dann an den anderen Pol der Schranke!
Jetzt zum Sketch/Programm
Diesen Sketch könnt ihr gerne für euren Bahnübergang nutzen:
<============================================================================================================================>
int Schalter= 0;
int Zustand = 0;
int a = 0;
void setup(){
pinMode(6, OUTPUT); // Andreaskreuze
pinMode(5, OUTPUT); // Schranke hoch
pinMode(4, OUTPUT); // Schranke runter
pinMode(3, OUTPUT); // Status-LED
pinMode(2, INPUT); // Schalter
}
void loop(){
digitalWrite(3, HIGH); // START // Einrichten der Schranke
delay(500);
digitalWrite(3, LOW);
delay(500);
digitalWrite(5, HIGH);
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(5, LOW);
delay(1000);
digitalWrite(3, LOW); // ENDE // Ende des Einrichtens
while(a == 0){
Schalter = digitalRead(2);
if ((Schalter == HIGH)&&(Zustand == 0)){
Zustand = 1;
digitalWrite(6, HIGH);
digitalWrite(3, HIGH);
delay(5000); // Zeit Bevor die Schranke runter geht
digitalWrite(4, HIGH);
delay(100);
digitalWrite(4, LOW);
}
Schalter = digitalRead(2);
if ((Schalter == HIGH)&&(Zustand== 1)){
Zustand = 0;
digitalWrite(5, HIGH);
delay(100); // Verzögerung der Andreaskreuze bis Schranke offen ist
digitalWrite(5, LOW);
delay(2500);
digitalWrite(3, LOW);
digitalWrite(6, LOW);
}
}
}
<============================================================================================================================>
Ich denke man könnte das ganze noch Kompakter machen aber es funktioniert auch so .
Hier noch ein Bild des fertigen Aufbaus (Sorry für die Schlechte Qualität -> iPad ...)
Nachtrag: Bei diesem Bild fehlen die Kabel zur Spannungsversorgung des Breadboards!
Das müsste dann alles gewesen sein.
Falss noch jemand eine Frage hat dann einfach stellen!
Viel Spaß
Christoph