Přejezdové zařízení se zvukem (není DCC)

Zaujalo mě zapojení Petera Gilinga GCA186 . Program byl zveřejněn pod licencí CC Attribution-Share Alike 4.0 International, proto se tato licence vztahuje i na zde uvedený upravený program. Modul v závislosti na použitém firmware slouží k ovládání obousměrného nebo jednosměrného přejezdu se závorami. Já se rozhodl realizovat jednokolejný obousměrný, proto bude veškerý popis k této verzi.

Toto přejezdové zařízení pomocí Hallových snímačů detekuje pohyb soupravy, spíná optickou signalizaci výstrahy, spíná externí zvukové zařízení výstrahy a pomocí servomotoru ovládá závory. 

Modul k automatickému provozu potřebuje 4 detekce polohy, zde Hallovy snímače. Hallovy snímače pracují na principu detekce magnetického pole. Pro detekci lokomotivy (vozu) je nutné umístit na lokomotivu malý magnet. V kolejišti měřítka N používám pro spolehlivou detekci neodymové magnety velikosti Ø3x1mm. V tomto zapojení je nutno použít unipolární Hallovy snímače se Schmittovým klopným obvodem např. OH137, A3141-4, TLE4905, lineární ani bipolární Hallovy snímače (49E, 3503) nelze použít. Použití unipolárních snímačů vyžaduje (na rozdíl od jazýčkových kontaktů) správnou polarizaci detekovaných magnetů (sever/jih). To znamená, že před umístěním magnetu na lokomotivu nebo vůz, je nutné ověření polarity magnetu. 

Lze použít i jiné způsoby detekce, podmínkou je, aby byl signál spínán proti zemi. Protože se zde používá systém počítání vozů, není použití úsekových ani optických snímačů vhodné. Program počítá, kolik vozů (magnetů) přejelo přes vstupní snímač (první ve směru jízdy, přibližovací úsek) a následné akce se provedou po napočítání stejného počtu vozů (magnetů) na následných snímačích ve směru jízdy. Detekce na prvním snímači spustí optickou (2 červená světla) i zvukovou (zvonek) výstrahu a program začne odčítat předzváněcí dobu (cca 4 sec.). Po ukončení předzváněcí doby jsou spuštěny závory. Po uzavření závor je odstavena zvuková signalizace. Nyní jsou očekávány detekce na snímači umístěném za přejezdem, třetím ve směru jízdy (druhý snímač, umístěný před přejezdem, nemá při jízdě tímto směrem žádnou funkci). Po napočítání stejného počtu detekcí, jako na prvním snímači (opuštění přejezdu) jsou závory zvednuty. Optická signalizace výstrahy zůstává aktivní ještě cca 1 vteřinu, poté se vypne. Pokud za přejezdem nedojde k napočítání stejného počtu detekcí po dobu 4minut (překročení doby výstrahy - vlak před přejezdem nebo na něm zastaví, nebo změní směr jízdy a vrátí se zpět), závory jsou zvednuty, signalizace vypnuta a systém přejde do výchozího stavu. Pokud vlak směr jízdy nezmění systém se do výchozího stavu dostane také po odpočítání detekcí na posledním snímači. Magnety nemusí být osazeny na všechny vozy, modulu postačuje, když je osazen jeden magnet na začátku a druhý na konci vlakové soupravy. Pokud by došlo k rozpojení soupravy v přibližovacím úseku, systém na snímači za přejezdem nenapočítá správný počet magnetů a závory zůstanou zavřeny. Ovládání tlačítky nebo přepínači by po přidání na volné vstupy procesoru a úpravě programu, bylo také možné.

Protože se mi v původním projektu nelíbilo spínání relé přímo výstupem z mikroprocesoru, rozhodl jsem se pro úpravu zapojení. Relé bylo vynecháno a zvukový modul je spínán tranzistorem. Do návrhu je také zakomponován obvod s pomalým náběhem napětí, který eliminuje zakmitnutí servomotoru při zapnutí napájení. ICSP konektor byl vynechán. 

Bylo také nutno upravit program, aby rychlost blikání výstražníků souhlasila s místními předpisy (60x/min) a doba předzvánění se vzdáleností snímačů od přejezdu. Pro věrnější podání jsem do programu také přidal pomalé zhášení světel ve výstražnících. Také byla přidána funkce ukládání poslední koncové polohy servomotoru: Pokud dojde k výpadku napájení v době, kdy je přejezd uzavřen, po obnovení napájení je uložená poloha servomotoru vyčtena z paměti a přejezd otevřen. Na rozdíl od původního programu je druhý servomotor řízen inverzně vůči prvnímu, úhel řízení je však u obou servomotorů stejný. 

Protože je každé kolejiště specifické svými vlastnostmi a veškerá nastavení (předzváněcí doba, rychlost a výchylky servomotorů, ...) jsou provedena přímo v programu, je zde zapojení a program zveřejněn jen jako příklad provedení. 

Zvuk není moc slyšet, natáčel jsem v noci, tak si zvyšte hlasitost. 

Edit: Ve videu je použita starší verze programu, v nové verzi k vypnutí výstrahy dojde cca. 1 sec. po zvednutí závor, v této starší verzi až po opuštění vzdalovacího úseku.

Verze Arduino 

Pro tuto verzi přejezdového zařízení bylo zvoleno Arduino. Zde je výčet některých výhod Arduina:

1) nepotřebujete programátor, pro nahrávání programu se pro použitou verzi Arduina ProMini používá běžný převodník USB/RS232, u některých verzí Arduina např. Nano je převodník již jeho součástí 

2) používá jednoduché vývojové prostředí Arduino IDE, kde si každý může upravit program podle svých představ bez dalších investic do software

3) je to výuková platforma, na internetu snadno najdete spoustu návodů a ve fórech vám většinou i poradí

Protože je každé kolejiště individuální (vzdálenost snímačů, doba předzvánění atd.), bylo dalším krokem převést předchozí zapojení na tuto platformu

Opět se jedná o obousměrný jednokolejový přejezd se závorami. Program vychází z předešlého zapojení, proto se nebudu opakovat s popisem funkce a popíšu pouze změny. Ovládání pohybu závor jsem ponechal na dvou servomotorech (i když závory jsou na mém kolejišti ovládány jedním). Druhý servomotor je na rozdíl od výchozího zapojení řízen inverzně (pokud je v jedné poloze výchylka prvního serva vpravo, u druhého serva je vlevo). V programu je také přidáno ukládání pozice servomotoru po dojetí do koncové polohy. Pokud tedy dojde k výpadku napájení v době, kdy jsou závory zavřeny, po obnově napájení dojde k resetu a servomotor přejede do výchozího stavu (závory otevřeny) běžnou rychlostí. Do programu se také podařilo přidat pomalé zhasínání světel a také, u nás používané, bílé světlo pro pozitivu (SV2/4) a bílé světlo pro přejezdník (SV2/5). Pozitiva je aktivována až po opuštění vzdalovacího úseku. Do programu bylo také přidáno ukončení výstrahy při překročení vyzváněcí doby. Protože je v této modifikaci řešeno spouštění zvuku modulem DFPlayer, bylo možno vynechat obvod pro spínání zvuku z původního projektu. V programu je možnost spínat pro zvuk výstup Arduina A4, prakticky však není tento výstup zapojen. Pro použití zvukového modulu s knihovnou, musí být na mikro SD kartě (která je v modulu použita) vytvořen adresář mp3 a v něm umístěn soubor 0001.mp3 se zvukem přejezdu. S použitým programem musí být délka zvuku v souboru větší než délka předzváněcí doby. Program používá knihovny software servo, EEPROM a pro ovládání zvukového modulu DFPlayer_Mini_Mp3 a SoftwareSerial.

Schéma je celkem jednoduché. Do obvodu napájení servomotorů je opět vřazen obvod, který eliminuje zakmitnutí servomotoru při zapnutí napájení (v tomto obvodu nedoporučuji měnit hodnoty součástek R1,R2, R3, C3, C4, D2, D3, D4). Konektor SV1 je určen pro připojení LED (společný pro oba výstražníky), je na něj vyvedeno společné napájení +5V a otevřené kolektory tranzistorů. K LEDkám je nutno samozřejmě připojit externí předřadné odpory. Pro připojení Hallových snímačů jsou určeny konektory JP4 až JP7. Opět jsou zde použity unipolární Hallovy snímače (TLE4905, A3144, OH137, apod.), ale mohou se použít i jazýčkové kontakty (reed switch), nebo i jiné detektory obsazení, které při obsazení spínají na GND. V případě použití jazýčkových kontaktů nebudou napájecí piny 1 na konektorech JP4 až JP7 využity. Konektory JP1 a JP3 jsou určeny pro připojení servomotorů ovládaných závor, konektor JP8 pak pro připojení reproduktoru. 

Konektor SV1 je určen pro budoucí využití, SMD rezistory R10 a R11 velikosti 0805 tak nemusí být osazeny. V programu byla přidána možnost manuálního ovládání přejezdu spínačem (označení BTN1). Pokud chcete tuto možnost využít, doporučuji osadit rezistor R11. Při spojení pinu D12 se zemí (na konektoru SV1 piny 2 a 4), dojde k uzavření přejezdu, při rozpojení k otevření přejezdu. Při ručním řízení dojde k ukončení výstrahy a aktivaci pozitivy ihned po otevření závor. Při aktivaci ručního řízení jsou také resetována všechna počítadla.

Protože na mém kolejišti nejsou výstražníky s pozitivou a výše uvedený systém s procesorem PIC je plně funkční, toto zapojení nebylo realizováno. Návrh desky byl dokončen a program odzkoušen na nepájivém kontaktním poli, proto bez záruky. Hlásit chyby a posílat návrhy na vylepšení můžete pomocí kontaktního formuláře na úvodní stránce.

Přejezd se závorami FALLER 12074

Kamarád Jenda mě požádal o zprovoznění komerčně vyráběného přejezdu FALLER 120174 ve velikosti H0. Jedná se o přejezd pouze se závorami (bez zvuku a světelných výstražníků).

Původní zapojení podle výrobce

Podle přiložené dokumentace k přejezdu je pro automatické řízení jednokolejného přejezdu zapotřebí šestice detektorů polohy a polarizované relé. Po sestavení tohoto zapojení do testovacího stavu, jsem to chtěl vzdát (jako už to udělalo několik kolegů přede mnou). Problémovou součástí této sestavy je totiž asynchronní motor Faller. Tento motor má jeden směr otáčení mechanicky blokován, a proto má problémy s rozběhem. Pokud se sinusovkou při sepnutí netrefíte do správného směru, motor bude tlačit směrem do mechanického blokování. Spínání tohoto motoru bylo navíc vymyšleno pomocí nespolehlivého kontaktu, který je součástí stavebnice. Napětí je přivedeno na tento kontakt a pomocí impulsu (který musí být delší, než tento kontakt sepne, ale kratší, než motor dojede do koncové polohy) je motor spuštěn. Kontaktem je napětí přidrženo a po otočení do koncové polohy se kontakt rozepne a motor zastaví. To vyžaduje přesné umístění snímačů polohy vozidla, snímače s dostatečnou délkou sepnutí a stanovenou maximální délku soupravy (a také pravděpodobnost, že se motor rozběhne). Navíc zde není jasně určeno, v jaké poloze zůstanou závory po opuštění přejezdu, protože jeden impuls závory zavírá a následný impuls závory otevírá (pokud se jednou motor nerozběhne, celý přejezd pak pracuje opačně, což je pro většinu modelářů nepřijatelné). 

Nové zapojení se servomotorem

Protože mi nebylo jasné, jak by se systém řízení podle výrobce choval při různých délkách vlakových souprav, rozhodl jsem se vydat jinou cestou. Na místě nespolehlivého motoru Faller jsem se rozhodl použít servomotor a jeho řízení ovládat procesorem. Toto řízení zároveň řeší problém s nespolehlivým kontaktem stavebnice a také zde můžeme jednoznačně určit stav, kdy mají být závory otevřeny a kdy zavřeny. Na fotografii níže můžete vidět detail osazení servomotoru na místě původního motoru.

K automatizaci přejezdu a řízení servomotoru jsem si vybral mikroprocesor PIC12F629. Použití procesoru řeší problémy s přesným umístěním snímačů polohy i délkou vlaků. Samozřejmostí je pak umístění vstupních snímačů v takové vzdálenosti od přejezdu, aby došlo k uzavření závor dříve, než vlak k přejezdu dorazí. Jelikož jsem tento modul nevyráběl pro sebe, nemohl jsem použít snímání polohy pomocí Hallových senzorů (nutnost umísťovat magnety na každou lokomotivu a vagóny). Rozhodl jsem se použít detekci podle Geoffa Bunzy ( creative commons license ), kterou nazval "diferenční snímání absolutní polohy". V principu se jedná o vyhodnocení intenzity osvětlení mezi referenčním a snímacím fototranzistorem za pomoci komparátoru. Referenční fototranzistor je umístěn mimo koleje a snímací mezi kolejnicemi. Zastíněním snímacího tranzistoru dojde k detekci lokomotivy (vagonu). Pozor, z principu nebude tato detekce funkční v úplné tmě. Oba tranzistory (snímací i referenční) bude potřeba v tunelu rovnoměrně přisvítit. Pokud by vadilo světlo tohoto přisvícení, můžeme jej realizovat i pomocí infračervené diody (pozor na vyzařovací úhel). Detekce jsou vyhodnocovány pomocí čtveřice komparátorů obvodu LM339.

Modul k automatickému provozu potřebuje 4 detekce polohy (pro obousměrný provoz), zde DAPD snímače. Program při detekci nastaví u každého snímače prodlevu (cca 2sec), po kterou bude snímač posuzován jako obsazený. Při detekci na vstupním snímači A (D), prvním ve směru jízdy směrem k přejezdu, je dán povel k zavření závor (přejezd serva). Následné otevření závor se provede po opuštění prvních tří snímačů A,B,C (D,C,B) ve směru jízdy (třetí je umístěn za přejezdem). Po zvednutí závor se spustí odpočet (cca 10 sec) pro opuštění všech snímaných úseků, aby se vyloučilo opětovné spuštění závor při detekci na posledním snímači D (A). Pokud po ukončení odpočtu není na žádném snímači detekováno obsazení, přejde systém do výchozího stavu. 

Pokud by jste chtěli provozovat jednosměrný přejezd s použitím pouze 2 snímačů polohy, museli by jste patřičně upravit program, nebo zajistit, aby výstupy nepoužitých komparátorů zůstaly ve stavu vysoké impedance (logické 1). Ovládání spínačem je také možné (i bez snímačů polohy). Spínač je možno připojit ke konektoru JP2. V případě, že se rozhodnete pro ovládání spínačem a nejsou připojeny žádné snímače, neosazujte obvod LM339. Tak budou zajištěny logické 1 na vstupech procesoru.

DPS je opět navržena jako jednostranná pro THT součástky. V návrhu desky jsem počítal se zapojením 4 detektorů polohy, každý s vlastním referenčním fototranzistorem. Protože jsou však v mém případě snímače umístěny nedaleko od sebe, referenční tranzistor jsem použil pouze jeden a invertující vstupy komparátorů jsem pospojoval (na fotce tenký drátek spojující piny 4,6,8,10 obvodu LM339). Při tomto pospojování je nutno osadit pouze jeden rezistor 5k6 (libovolný z R4,R8,R9,R10), ostatní neosazovat. Pokud by vám toto zapojení nechtělo spolehlivě pracovat, snižte hodnotu odporů u referenčních fototranzistorů na 4k7, popř. až na 3k9.

Na konektoru pro snímače je vyvedeno společné + pro kolektory fototranzistorů a jednotlivé vstupy komparátorů pro emitory fototranzistorů. Ve schématu jsou jako SENSx IN značeny piny pro snímací fototranzistory (umístěné mezi kolejnicemi) a SENSx OUT piny pro referenční fototranzistory (umístěné mimo koleje).

Alternativně by bylo možné desku použít i pro vícekolejný přejezd, ale na stejné vstupy komparátorů, by se musely paralelně připojit další snímací fototranzistory a upravit hodnoty sériových rezistorů.

Program pro mikroprocesor PIC12F629 byl vytvořen v programu PIC simulator IDE. Pro alternativní použití si můžete stáhnout i program s opačným chodem servomotoru.