Selectrix-Selbstbaudekoder Modelleisenbahn und Arduino, Anwendungen der Arduinos in der Modellbahn, ATtiny


Diese Dekoder sind für den SX-Bus gedacht. Je nach μC ist eine etwas andere Library SX nötig. (Downloads am Ende der Seite.) Die ATmega328 und der ArduinoMega benötigen die SX1 Library, die ATtiny84/85 benötigen die SX1attiny84 bzw. SX1attiny85 Library. Beim ATmega328 liegt der Takt T0 an Digitalport 2 und das Signal T1 an Digitalport 4, der Rückkanal liegt auf Digitalport 12. Beim ArduinoMega liegt T0 und T1 wie beim ATmega328, der Rückkanal jedoch auf Digitalport 10.
(Wird kein Rückkanal benötigt, kann anstatt der Library SX1 die Library SX1r [r wie readOnly] benutzt werden, dann ist der Pin für den Rückkanal für beliebige Zwecke frei.)
Für den ATtiny84 liegt der Takt T0 an Digitalport 8 und das Signal T1 an Digitalport 9. Beim ATtiny85 liegen Takt T0 auf Digitalport 2 und Signal T1 auf Digitalport 4.
Die Libraries für ATtiny können nur lesen, zum Schreiben sind sie bei 8MHz zu langsam - zumindest mit den hier verwendeten Libraries. Die benötigte Interface-Hardware ist hier beschrieben, wobei auch folgende einfache Schaltung funktioniert:

Bei sämtlichen Schaltungen ist der μC direkt an den Anschlüssen der Versorgungsspannung mit einem Kondensator von einigen 100 nF abzublocken.

Hinweise, wie man sich einen "Arduino-Clone" selbst herstellt, finden Sie hier.



Dekoder für eine Weiche

Verwendet wird ein ATtiny85, der an seinen Digitalports 0 und 1 einen Impuls zum Stellen der Magnetartikel (Weiche oder Formsignal) abgibt. Der Kanal und das Bit des Magnetartikels wird beim Programmieren des ATtiny festgelegt, Sie müssen dazu im Sketch die Variablen "kanal" und "bitNr" anpassen. Die Variable "dauer" legt die Impulsdauer in Millisekunden fest.
Hier das Schaltbild und ein Auszug aus dem Sketch:

Den Sketch finden Sie hier.



Dekoder für ein Lichtsignal

Das Prinzip ist wie beim Dekoder für eine Weiche, nur ist es noch einfacher, da die Treibertransistoren entfallen, der ATtiny kann direkt über Vorwiderstände die LEDs des Signals treiben. Die Variablen "kanal" und "bitNr" werden wie oben beim Programmieren festgelegt, die Variable "fade" legt die Überblenddauer fest.
Hier das Schaltbild und ein Auszug aus dem Sketch:

Den Sketch finden Sie hier.

Bei Bedarf kann auch Hp0, Hp1 und Hp2 dargestellt werden. Dabei kann zwischen Hp1 und Hp2 z.B. aufgrund einer Weichenstellung umgeschaltet werden. (Die Weichenstellungen sind über den SX-Bus ja verfügbar.) In folgendem Beispiel ist angenommen, dass auf Hp2 umgeschaltet wird, wenn Weiche 88/3 (Kanal88, Bit3) auf gebogen (1) steht.
Hier das Schaltbild und ein Auszug aus dem Sketch:

Den Sketch finden Sie hier.



Dekoder für mehrere Weichen

Je nachdem wieviel Ausgangsports benötigt werden, wird man auf den ATmega328 oder den ATtiny84 zurückgreifen. Die Programmierung geschieht analog den obigen Beispielen, wobei in einem Dekoder auch Magnetartikel und Lichtsignale gemischt werden können.
Natürlich ist das Schalten nicht auf Weichen und Signale beschränkt, hier sind der Phantasie keine Grenzen gesetzt, mit entsprechenden Libraries können auch Servos angesteuert werden.

Wie man sich anstatt eines Arduino einen ATMega328 als Ersatz baut, erfahren Sie hier.



Download der Libraries

SX1, SX1attiny85, SX1attiny84