Table of Contents
RASCII Lichtdecoder
Beschreibung
Ein Decoder basierend auf dem Rocrail RASCII Protokoll. Alle 16 Ausgänge verwenden PWM und können individuell angesteuert werden. Die folgenden Funktionen sind mittels CV auswählbar und einzeln veränderbar.
Die folgenden Funktionen stehen zur Verfügung:
- Ausgang
- Blinker
- Wechselblinker
- Lauflicht (Lampe für Lampe wird eingeschaltet und ausgeschaltet)
- Lauflicht (Lampe für Lampe wird eingeschaltet. Wenn alle eingeschaltet sind, werden alle gelöscht.)
- Lauflicht (Lampe für Lampe wird eingeschaltet. Sind alle eingeschaltet, wird mit der ersten Lampe begonnen zu löschen.)
- Hausbeleuchtung
- Neonröhren
- Natriumdampflampen
- Fernseher
- Schweisslicht
- Feuer
Einige Ideen sind aus Foren oder sonnst aus dem Internet, andere sind von mir selber. Die Quellen sind jeweils im Quellcode angegeben.
Betriebsarten
Modus | Funktion | Anzahl Ausgänge | Bemerkungen | Defaults für CV's |
---|---|---|---|---|
40 | Einfacher ein/aus | 1 | n.a. | |
50 | einfacher Blinker mit fading. | 1 | onTime = 100 offTime = 100 Multiplikator = 10 onFade = 100 offFade = 100 BrightnessDay = 255 BrightnessNight = 100 |
|
51 | Wechselblinker mit fading | 2 | onTime = 100 offTime = 100 Multiplikator = 10 onFade = 100 offFade = 100 BrightnessDay = 255 BrightnessNight = 100 |
|
52 | Port für Port wird eingeschaltet. Der Vorhergehende Ausgang wird jeweils wieder ausgeschaltet | 2 - 16 default= 6 | Im Mode CV des 2. Ports kann die Anzahl der Ports eingetragen werden. Zeiteinheit 1/10s | Mode2 = 6 onTime = 100 offTime = 100 Multiplikator = 10 onFade = 50 offFade = 50 BrightnessDay = 255 BrightnessNight = 100 |
53 | Port für Port wird eingeschaltet. Wenn alle eingeschaltet sind, werden alle gelöscht. | 2 - 16 default = 6 | Im Mode CV des 2. Ports kann die Anzahl der Ports eingetragen werden. Zeiteinheit 1/10s | Mode2 = 6 onTime = 100 offTime = 100 Multiplikator = 10 onFade = 50 offFade = 50 BrightnessDay = 255 BrightnessNight = 100 |
54 | Port für Port wird eingeschaltet. Sind alle eingeschaltet, wird mit dem ersten Port begonnen zu löschen. | 2 - 16 default = 6 | Im Mode CV des 2. Ports kann die Anzahl der Ports eingetragen werden. Zeiteinheit 1/10s | Mode2 = 6 onTime = 100 offTime = 100 Multiplikator = 10 onFade = 50 offFade = 50 BrightnessDay = 255 BrightnessNight = 100 |
60 | Hausbeleuchtung | 2 - 16 default = 6 | Im Mode CV des 2. Ports kann die Anzahl der Ports eingetragen werden. Zeiteinheit 1s | Mode2 = 6 onTime = 5 offTime = 15 Multiplikator = 1 onFade = 0 offFade = 0 BrightnessDay = 255 BrightnessNight = 100 |
61 | Neonröhren | 2 - 16 default = 6 | Im Mode CV des 2. Ports kann die Anzahl der Ports eingetragen werden. Mit CV60 wird die prozentuale Chance auf eine defekte Lampe eingestellt Weisse LED's verwenden | Mode2 = 6 onTime = 0 offTime = 0 Multiplikator = 0 onFade = 0 offFade = 0 BrightnessDay = 255 BrightnessNight = 100 |
62 | Natriumlampen | 2 - 16 default = 6 | Simuliert eine oder mehrere Natriumdampflampe. Für jede Lampe werden die Zeiten individuell berechnet. Das heisst jede Leuchte hat ein anderes verhalten und glüht beim Abschalten länger oder kürzer aus. Orange LED's verwenden Im Mode CV des 2. Ports kann die Anzahl der Ports eingetragen werden. Mit CV60 wird die prozentuale Chance auf eine defekte Lampe eingestellt Zeiteinheit = 1s | Mode2 = 6 onTime = 1 offTime = 1 Multiplikator = 0 onFade = 0 offFade = 0 BrightnessDay = 255 BrightnessNight = 100 |
80 | Fernseher | 1 | Blaue LED am Ausgang simuliert einen laufenden Fernseher | n.a. |
81 | Schweisslicht | 3 | Blaue und weisse LED am Port 1 und 2, rote LED am Port 3. Wird die Funktion ausgeschaltet leuchtet die rote LED noch nach und simuliert so das ausglühen des Metalls. Beim Ausschalten wird noch fertig geschweisst. Zeiteinheit = 1/10s | onTime = 5 offTime = 15 Multiplikator = 1 onFade = 0 offFade = 0 BrightnessDay = 255 BrightnessNight = 100 |
82 | Feuer | 3 | Simuliert ein Feuer. Port 1 und 3 matte LED gelb Port 2 matte LED rot. | n.a. |
CV's
Adresse
CV | Beschreibung | Wertbereich / Default |
---|---|---|
1 | Decoder Adresse | 1 -255, default 255 |
Reset
Wird in CV 8 das Bit 3 geschrieben, wird der Decoder auf die Default Einstellungen zurückgesetzt.
CV | Beschreibung | Wertbereich / Default |
---|---|---|
8 | Reset | 8 |
Chance
Prozentuale Chance auf eine defekte Lampe: für 50:50 den Wert 1 eingeben. für 33:66 den Wert 2 eingeben, etc. Wenn 0 dann gibt es keine defekte Lampe, wenn 255, dann gibt es immer eine defekte Lampe.
CV | Beschreibung | Wertbereich / Default |
---|---|---|
60 | globale Einstellung für den ganzen Decoder. | 0 - 255, default 10 |
Modus
Mit diesem CV wird bestimmt welche Betriebsart ein Port annehmen soll. Default: 40
CV | Port 1 | Port 2 | Port 3 | Port 4 | Port 5 | Port 6 | Port 7 | Port 8 | Port 9 | Port 10 | Port 11 | Port 12 | Port 13 | Port 14 | Port 15 | Port 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Modus | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 |
- Hat eine Betriebsart mehrere Ports, haben die entsprechenden nachfolgenden CV's keine Funktion und werden nicht ausgewertet.
- Die Betriebsart Schweissen (Modus 81) benötigt 3 Ausgänge. Wird CV 100 (Port 1) mit 81 beschrieben, dann sind die CV's für Port 2 und 3 bedeutungslos. Ein neuer Modus kann erst bei CV 103 (Port 4) eingetragen werden.
- Wenn bei einer Betriebsart wie z.B. Hausbeleuchtung (Modus 60) die Anzahl Ports konfigurierbar ist, geschieht dies wie folgt.
- Start soll bei Port 4 sein. CV 103 mit 60 beschreiben.
- Es sollen 10 Ports verwendet werden. CV 104 mit 10 beschreiben.
Time
Diese CV's beeinflussen das Zeitliche verhalten des oder der Ports. Die genau Funktion ist jeweils bei der Betriebsart beschrieben. Defaults: onTime = 100 offTimme = 100 Multiplikator = 10
CV | Port 1 | Port 2 | Port 3 | Port 4 | Port 5 | Port 6 | Port 7 | Port 8 | Port 9 | Port 10 | Port 11 | Port 12 | Port 13 | Port 14 | Port 15 | Port 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
onTime | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 |
offTime | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 |
Multiplikator | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 |
onTime / offTime
Zeit wie lange ein Port on und off sein soll. Werden verschiedene Zeiten angegeben, ist das Blinken asynchron. Es werden nur CV Werte verwendet wo im entsprechenden Port ein Modus eingetragen ist.
Es sind Werte zwischen 1 und 255 erlaubt. Die Zeiteinheit ist in 10ms 1 = 10ms 255 = 2550ms = 2.5 Sekunden
Multiplikator
Die Werte in CV onTime und CV offTime werden mit diesem Wert multipliziert. Dadurch sind Zeiten im Minutenbereich möglich.
onTime = 100 Multiplikator = 100 255 * 255 * 10 = 650'250ms = 650s = ~10min
Fading
Je nach Modus wird Fading beim ein- und/oder ausschalten unterstützt.
- 0 = kein Fading
- 255 = maximales Fading
Default ist jeweils 100.
CV | Port 1 | Port 2 | Port 3 | Port 4 | Port 5 | Port 6 | Port 7 | Port 8 | Port 9 | Port 10 | Port 11 | Port 12 | Port 13 | Port 14 | Port 15 | Port 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
onFade | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 |
offFade | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 |
Brightness
Ist im Moment nicht implementiert
CV | Port 1 | Port 2 | Port 3 | Port 4 | Port 5 | Port 6 | Port 7 | Port 8 | Port 9 | Port 10 | Port 11 | Port 12 | Port 13 | Port 14 | Port 15 | Port 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Day | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 |
Night | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 |
Hardware
Die Hardware besteht aus einem MAX232 Pegelkonverter, einem Arduino NANO und einem PLED01 Baustein. Der PLED01 kann bei Display 3000 bezogen werden
Pin Belegung DB-9 Stecker
Funktion | RASCII | DB-9 |
---|---|---|
RX-Data | X1-1 | 2 |
TX-Data | X1-2 | 3 |
GND | X1-3 | 5 |
Software
Notwendige Librarys
Die folgenden Librarys sind notwendig um das Program zu erstellen
- StandardCplusplus wird ab IDE Version 1.8.6 nicht mehr unterstützt.
- ArduinoSTL neue Library, anstelle von StandardCplusplus
Source
Das Hauptprojet für einen Arduino NANO kann hier gefunden werden:
RocPro
Die Datei RASCII_Lichtdecoder.xml welche sich im Verzeichnis RASCII_Lichtdecoder befindet, kann in den Dekoder-Pfad von Rocrail kopiert werden. Damit kann mit RocPro sehr einfach der Decoder programmiert werden.