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