Dekodér pro 15 serv

Vlastnosti dekodéru

    • po zapnutí napájení nedochází k zákmitu serva

    • po zapnutí napájení nedochází k velkému proudovému nárazu

    • v koncové poloze nedochází k vrnění serva

    • serva se přestavují postupně

    • přestavování je signalizováno LED diodou

    • je možné nastavit koncovou polohu serva a rychlost přestavování

    • je možné změnit směr otáčení serva

    • změna CV bez nutnosti restartovat dekodér

    • zápis do CV je potvrzován ACK

    • je možné číst hodnoty CV

Vyzkoušeno s centrálou DIGI-CZ NanoX-S88 http://www.digi-cz.info/ a řídícím softwarem JMRI http://jmri.org/.

Konstrukce dekodéru je rozdělena na tři desky.

Deska Arduino

Deska Arduino obsahuje připojení napájení, připojení DCC signálu a Arduino.

Jako ochranná dioda proti přepólování je použita Schottky dioda s úbytkem napětí 0,4 V. Z tohoto důvodu se na svorky P2 připojuje stabilizované napětí 5,4 V.

Seznam součástek pro obvod Arduino

Seznam vybraných součástek

Deska PWR

Serva jsou napájeny tranzistory. Použil jsem MOSFET P-typ tranzistor 1 A. Je možné změnit zapojení na bipolární tranzistory obdobných parametrů. Potom je potřeba změnit v programu příslušné řádky.

Deska tranzistorů je zkonstruována pro tři serva. Na jednu desku Arduina je možné připojit až pět desek s tranzistory. Celkem je tak možno obsluhovat patnáct serv.

Seznam součástek pro obvod PWR

Seznam vybraných součástek

Deska ACK

Pro potvrzení zápisu hodnot CV se používá potvrzovací mechanizmus v servisním módu (programování). Pro tento účel je připravena potvrzovací deska. Deska se připojuje na kablíku s konektorem. Připojuje se pouze v čase nastavování CV hodnot dekodéru. V operačním módu (běžný provoz) obvod není potřeba a deska může být odpojena. Jednu desku je možné používat pro více dekodérů.

Při návrhu desky jsem měl problém s hodnotou zatěžovacího odporu. Podle normy MNRA S 9.2.3 je pro potvrzení příkazu potřeba zvýšit odběr dekodéru o 60 mA na dobu 6 ms. To by odpovídalo odporu asi 200 Ω. Bohužel toto zapojení nefungovalo s centrálou DIGI-CZ NanoX-S88. Postupně jsem musel snižovat hodnotu odporu a zvyšovat proud potvrzovacího signálu. Skončil jsem u hodnoty odporu 56 Ω. S tímto odporem je hodnota odebíraného proudu 285 mA při napětí zdroje 16 V. To už překračuje dovolený proud v servisním módu, který je 250 mA po dobu 100 ms dle stejné normy. Pokud by u jiného typu centrály byly problémy s nadproudovou ochranou, potom by bylo nutné zvýšit hodnotu zatěžovacího odporu na 100 Ω. Některé centrály mají problémy detekovat délku pulzu 6 ms. U těchto centrál je potřeba prodloužit délku pulzu na 10 – 20 ms. Tyto hodnoty je nutné s konkrétní centrálou zjistit zkusmo.

Na desce je použit drátový rezistor v keramickém tělísku s výkonem 5 W. Na potvrzovací impulz 6 ms by stačil výkonově i menší odpor. Úmyslně jsem zvolil odpor s výkonem pro trvalý proud. Během ladění aplikací nefunguje vše na první pokus. Omylem může dojít k nevypnutí potvrzovacího impulzu a proud odporem potom teče delší dobu. U poddimenzovaného odporu potom dojde k jeho spálení. S dostatečně dimenzovaným odporem k žádnému zničení obvodu nedojde.

Seznam součástek pro obvod ACK

Seznam vybraných součástek

Nastavení dekodéru

Dekodér používá knihovnu NmraDcc http://mrrwa.org/ Program byl testován na verzi 1.3.0.

Dekodér si vezme 15 po sobě jdoucích adres pro 15 serv.

Tabulka CV adresa

Hodnoty společné pro dekodér.

CV 1 a 9 – LSB a MSB adresu lze měnit podle pravidel NMRA v intervalu 1 – 2044.

LSB adresa v intervalu 0 – 255.

MSB adresa v intervalu 0 – 7.

Výsledná adresa se vypočítá LSB + MSB × 256.

CV 2 – určeno pouze pro ladění. Pokud je změněná hodnota po nahrání nové verze programu, tak se provede výchozí nastavení CV hodnot. Pokud změna není zůstanou CV hodnoty nezměněny i po nahrání nové verze programu.

CV8 – zápis libovolné hodnoty do CV8 provede obnovu továrního nastavení.

Tabulka CV servo

Hodnoty jednotlivě pro každé servo.

Každé servo zabere 5 CV čísel.

CV rovně – hodnota výchylky serva pro pozici rovně. Mění se v intervalu 1 – N, kde N musí být menší než hodnota výchylky odbočka.

CV odbočka – hodnoty výchylky serva pro pozici odbočka. Mění se v intervalu M – 179, kde M musí být větší než hodnoty výchylky rovně.

CV pomalost – pomalost otáčení serva. Větší hodnota zpomalí otáčení, menší hodnota zrychlí otáčení.

CV poslední pozice – nenastavuje se. Požívá se pro zapamatování si poslední pozice serva při provozu.

CV opačný směr – nastavení hodnoty na 1 se změní směr otáčení serva – prohodí se pozice rovně a odbočka. Nastavením na 0 se vrátí původní směr otáčení.

Nastavování hodnot

Nastavování CV hodnot je možné provádět libovolným ovladačem, který umí programovat. Nastavování koncových poloh serv, rychlost a směr otáčení se provádí zkusmo. Velmi se k tomu hodí program JMRI.

V programu JMRI spustit okna Jednoduchý programátor – Simple Programmer, Ovládání výhybek – Turnout Control a Monitor XpressNet – Xpressnet Traffic.

V okně Jednoduchý programátor – Simple Programmer se do jednotlivých CV čísel přiřazují požadované hodnoty.

V okně Monitor XpressNet – Xpressnet Traffic je možné sledovat a kontrolovat, že zápis nebo čtení proběhlo korektně.

V okně Ovládání výhybek – Turnout Control je možně okamžitě vyzkoušet jak se chová právě nastavená hodnota.

Přílohy

    • program pro Arduino – Servo.zip

    • zapojení obvodu Arduino – S15.zip

    • zapojení obvodu PWR – S15-PWR.zip

    • zapojení obvodu ACK – S15-ACK.zip

aktualizace 11. 11. 2017

aktualizace 9. 7. 2016

aktualizace 8. 7. 2016

vytvořeno 6. 7. 2016