NavestidlaShiftDekoder
Tento dekodér je založený na Arduinu Nano a překonává omezení jiných dekodérů daná počtem výstupů Arduina pomocí řetězených posuvných registrů 74HC595. Pro ovládání PWM pomocí posuvných registrů se používá knihovna ShiftPWM. Při vývoji jsem otestoval funkci do poctu 80 výstupů, tzn 16x pětisvětelné návěstidlo.
Dekodér se konfiguruje primárně pomocí USB z počítače pomocí terminálu
Obsah
CLR
Příkaz vymaže konfiguraci, a restartuje dekodér.
DEF
Definuje návěstidlo. Definice jsou číslované od jedničky do povoleného maxima (16). Při použití čísla již vytvořeného návěstidla se definice přepíše. Definice dále obsahuje: - způsob ovládání DCC (bitové, jako výhybka, rozšířený paket) - Viz dále - první výstup příslušející návěstidlu (předpokládá se, že návěstidlo obsadí určitý počet po sobě jdoucí výstupů - počet světel (max 32 světel na každé návěstidlo)
DEF:číslo návěstidla:první výstup:počet světel:režim:počet návěstí
Režim | Druh ovládání | Počet obsazených adres (N je počet návěstí) |
---|---|---|
b, B | Bitové ovládání (výchozí) | log2 N |
t, T | Sada výhybek, bez směrů | N / 2 |
c, C | Sada výhybek | N |
e, E | Rozšířený packet | 1 |
Pro již existující návěstidlo je možné použít zkrácenou formu
DEF:číslo návěstidla
která sice neumožní měnit znaky a počet světel návěstidla, ale otevře definici pro další úpravy, např. mapování výstupů apod.
Definice se ukončuje příkazem END. Dokud je definice "otevřená" (před vydáním příkazu END), je možné nastavovat další vlastnosi návěstidla.
SET
Nastaví návěst na návěstidlu
SET:číslo návěstidla:návěst
Návěst je skutečná návěst podle tabulky JMRI; překladová tabulka podle typu návěstidla se zde neuplatňuje.
Bitové ovládání
Návěstidlo obsadí tolik po sobě jdoucích DCC adres, kolik je potřeba bitů pro bitově zapsané číslo povelu. Např. je-li počet podporovaných povelů 18, návěstidlo obsadí 5 po sobě jdoucích adres (4 bity je málo, vyjádří jen čísla 0-15). Nastavení "výhybky" na dané DCC adrese "rovně" znamená bitovou hodnotu 0, nastavení "výhybky" do odbočky pak hodnotu 1.
Pokud návěstidlo používá adresy 20-24, pak následující kombinace
Adresa | Stav "výhybky" | Hodnota bitu |
---|---|---|
20 | rovně | 0 |
21 | odbočka | 1 |
22 | rovně | 0 |
23 | odbočka | 1 |
24 | rovně | 0 |
značí povel číslo 10 (ať to už znamená co chce). Neméně významný bit (hodnota 1) udává adresa 20 (první adresa), nejvýznamnější bit (hodnota 32) pak adresa 24.
Sada výhybek
Návěstidlo obsadí po sobě jdoucí adresy tak, že vždy 2 po sobě jdoucí povely obsadí 1 DCC adresu. Návěst s lichým číslem se zobrazí při "přehození výhybky" na dané adrese rovně, Návěst se sudým číslem pak při přehození této adresy do odbočky. Například návěstidlo zobrazující 16 různých návěstí obsadí po 8 adres jdoucí po sobě.
Povel vydaný pro adresu v obsazeném rozsahu vždy zobrazí povel příslušný pro danou adresu - předchozí stav se zapomene. Taková návěstidla se obtížně používají, pokud se kolejiště po startu systému "inicializuje" a všem "výhybkám" se přisoudí a vydá povel pro výchozí stav. V takovém případě je nutné aby poslední povel v rozsahu adres návěstidla byl ten, který má být nakonec zobrazený, nelze jen adresy projet vzestupně.
Například, obsadí-li návěstidlo adresy 20-27 (8 adres, 16 návěstí), pak povel 2, do odbočky zobrazí návěst číslo 6:. 1 '(počítáme od 1)' + (22-20)*2 + 1 '(do odbočky)'.
Sada výhybek, bez rozlišení směru
Návěstidlo obsadí stejný počet adres jako má návěstních znaků. Vydáním povelu pro obsazenou adresu (lhostejno zda "do odbočky" nebo "rovně") se zobrazí příslušná návěst.
Rozšířený packet
Návěstidlo obsadí jen jedinou DCC adresu, ale pro ovládání se používá rozšířený DCC packet, který MultiMaus a podobné ovladače neumějí - JMRI však ano.