Hallo,
ich wollte Euch mein Weichenstellpult vorstellen, das ich mit Arduino für den CAN-Bus erstellt habe.
Es ist sehr einfach gehalten. Meinen nicht vorhandenen Programmierkenntnissen im Bezug auf Bitmanipulationen zu verdanken ist die Lösung, als CAN-ID einfach eine fixe ID zu verwenden, die von der Gleisbox verwendet wurde. Vielleicht kann mir jemand dabei helfen, die Generierung richtig zu implementieren.
Angeschlossen ist es nur an CAN-H und CAN-L der Gleisbox, die Stromversorung der 3 Komponenten (Arduino, CAN-Shield und LCD-Display) erfolgt über ein 5V-Netzteil.
Was kann es?
Über die Tasten gibt man die Weichennummer ein, das Display zeigt den derzeitigen Schaltzustand der Weiche, daraufhin kann die Weiche auf rot oder grün geschaltet werden (Tasten C/D)
Ich verwende zur Zeit den Servedecoder von Rudy der sich nach dem Einschalten immer im Grundzustand befindet, daher kann ich mit dem Pult (2x B nacheinander drücken) auf pauschal alle Weiche auf gerade setzten (Schaltung erfolgt hier nacheinander).
Außerdem eine rudimentäre Weichenstrassenfunktion. Manuell werden hier Kombinationen von bis zu 6 Weichen und deren gewünschte Stellungen angelegt, die dann automatisch alle in die entsprechenden Stellungen gebracht werden. (Taste A + Nummer der gewünschten Weichenstrasse)
Was muss konfiguriert werden?
Nur die Gesamtzahl der Weichen, die Adressen der Weichen und den Wert der höchsten Weiche.
Das System nimmt nur Schaltbefehle für eingetragene Weichennummern an.
Und dazu auf Wunsch die Weichenstrassen
Weitere Infos und den Code gibt es auf http://frax7890.gerstmeier.biz/can-bus/can-weichenstellpult/
Demnächst kommt noch der auf CAN umprogrammierte Servodecoder von Rudy dazu.