Detektor obsazení pro LocoNet s RailCom
Rozhodl jsem se vyzkoušet detektor zveřejněný na Stummiforu, stručný popis je nyní k dispozici i na stránkách Philippa Gahtow a software ke stažení na sourceforge.net.
Protože si lze popis přečíst na výše zmíněném Stummiforu, napíšu jen základní informace. Tento 8-násobný detektor obsazení slouží k detekci lokomotiv(y) ve sledovaných úsecích. Detektor není dostatečně rychlý na to, aby mohl číst data RailCom komunikace, proto čte pouze data ze signálu DCC. K tomuto čtení jsou použity cyklicky se opakující pakety adresované lokomotivním dekodérům. Pokud detektor (za pomoci ADC převodníku) ve sledovaném úseku zachytí odpověď lokomotivního dekodéru v druhém kanálu RailCom, zobrazí adresu lokomotivy a její směr jízdy na displeji. Aby mohlo dojít ke správné identifikaci lokomotivy, je nutné, aby všem sledovaným lokomotivám (dekodérům) byl alespoň jednou odeslán příkaz (rychlosti nebo funkce). Většina software (testováno s RocRail) může tento příkaz (např. nulové rychlosti) poslat všem požadovaným lokomotivám při startu aplikace. Podle verze hardwaru a softwaru lze displej použít pro každý úsek, tzn. až 8 displejů (zde byl použit 1 displej pro vstup A0). Na jeden úsek lze načíst a zobrazit až 4 adresy lokomotiv (bylo by možné načítat i více, ale je to zbytečné, softwarově omezeno).
Informace o obsazení je odesílána přes LocoNet.
Jako číslo prvního úseku lze přiřadit libovolnou hodnotu. Tuto hodnotu lze následně nastavit pomocí LNCV.
Detektor je napájen z DCC trakce, LocoNet je opticky oddělen.
Alternativně lze použít dva opticky izolované výstupy Arduina D11 a D12 pro spínání externích zařízení, např. přepínání relé vratné smyčky (tuto funkci lze povolit makrem #define WENDE).
Další rozšíření (lze povolit makrem #define MIRKO) umožní při detekci obsazení úseku vyslat přes sběrnici LocoNet příkaz pro dekodér příslušenství, nebo dekodér lokomotivy.
Zatím jsem se dostal pouze k návrhu a zhotovení konstrukce. Provedené úpravy zapojení:
Po přečtení připomínek ve fóru jsem upravil zapojení tak, aby vstupní impedance tohoto modulu splňovala požadavky na sběrnici LocoNet.
Další úpravou je použití obvodu TL431 pro stabilizaci referenčního napětí Arduina.
Dále jsem vynechal párové svorky na svorkovnici DCC, které nebyly z mého pohledu nezbytně nutné, protože jedna kolejnice se přerušovat nebude. Někteří modeláři však doporučují rozvody ke kolejím natahovat souběžně.
Na rozdíl od autora napájím Arduino přes pin 5V, proto je na vstup RAW přidána ochranná dioda.
Pro správnou funkci může být potřebné, odpájet na desce Arduina rezistor pro LED na pinu D13 (dodatek: toto platí pro starší verze, novější verze používá výstup D13 pouze pro signalizaci).
Pro vyšší verze programu byla na pin D5 přidána propojka pro kalibraci detektoru (pozn. při kalibraci nesmí stát na žádném úseku žádné vozidlo).
Protože v záporné půlvlně se na DCC vstupu (pinu D2) objevovalo nepřípustné záporné napětí -627mV, byla na místě Zenerovy diody použita Schottky dioda (na schématu D21), záporné napětí se tak snížilo na přijatelných -251mV. Pozn. v novější verzi zapojení na Philippových stránkách jsou rezistor i dioda vynechány (zde R4 a D21).
Upozornění: Autor přidává do programu opravy a nové funkce (signál LN_TX je v novějším software přesunut na pin D7, přidáno tlačítko pro kalibraci na pinu D5 a od verze 41 zápis hodnot pomocí LNCV), schéma zapojení i deska se tak mohou ještě změnit.