Schakelen verlichting & seinen (met DCC-EX Commandstation)

Uw forum voor digitale vragen, opmerkingen, etc.
Plaats reactie

Onderwerp starter
jw82
Berichten: 308
Lid geworden op: 11 mei 2021 09:03

Schakelen verlichting & seinen (met DCC-EX Commandstation)

Bericht door jw82 »

Goedemorgen,

In de achterliggende periode heb ook ik weer één en ander beproefd met het DCC-EX Commandstation (incl. WIFI-board). Resulterend in een proefopstelling met:
- een rijdend digitaal locje en een rijdend analoog locje (via het nieuwe Trackmanager), beiden kan ik via RocRail of Engine Driver aansturen;
- een schakelbare LED en een bedienbaar 3-lichtsein, via RocRail.

Allemaal leuk natuurlijk, maar nu merk ik wat twijfels en dilemma's hoe eventueel te integreren in bestaande baan (in opbouw). Ten eerste is dat in principe een analoge baan, inclusief via schakelaars bediende wissels en secties die ik apart schakel qua stroom. Oftewel, met meerdere treinen op de baan is in principe volledig handmatig mogelijk (maar wel met één rijdende trein tegelijk 8-) ). Daarom had ik het plan om een apart stukje industriespoor digitaal (met DCC-EX) te maken met eigen treinbewegingen, vandaar mijn beproevingen van DCC-EX.

Daarbij had ik al eens een 2-tal Digikeijs DK50018 toegevoegd, waarop de verlichting én vooral een aantal seinen is aangesloten waardoor ik deze van Nederlandse seinbeelden (als 'knipperen') kan voorzien. Voor mij zat (en zit) het voordeel er in dat ik mn. voor de seinen niets ingewikkelds hoefde te doen om deze met allerlei schakelingen te bedienen en via de app (met wifi) kon aansturen. Maar ik had het ook wel aangeschaft met oog op toekomstige functies zoals aanpassen van CV's via die app, bijvoorbeeld om verlichting te kunnen dimmen/faden/andere effecten. Maar goed...dat zit er niet meer in nu hun einde gekomen is.

Des te leuker dat ik nu via de Arduino en DCC-EX juist ook op gebied van verlichting, effecten en seinen één en ander zelf kan doen. Maar zover ik nu weet moet ik dan wel naar een (gedeeltelijke) computer-bediening gaan, maar juist vanwege mijn kleinschalige baan (en niet alleen omdat het N-spoor is, maar ook in absolute maten ;-)) vind ik dat nogal wat...

Daarom een aantal vragen of dilemma's waarvan ik hoop dat iemand uit ervaring of kennis eens op wil reageren, mij helpend keuzes te maken! Alvast bedankt voor het meedenken!

* Het is dus gelukt om een 3-lichtsein en een LED via RocRail en Commandstation te bedienen/schakelen. Zover mij bekend is er geen ondersteuning in apps als Engine Driver om dit te doen (zodat ik hiervoor geen computer nodig zou hebben)?

* Het sein in RocRail kan ik via DCC-EX niet laten 'knipperen' (er staat ook in documentatie dat die values niet ondersteund worden voor DCC-EX). Zijn er manieren om wel naar (meer) Nederlandse seinbeelden te gaan bij gebruik van DCC-EX Commandstation?

Waarschijnlijk kan ik gewoon niet alles tegelijk of via dezelfde interface zonder over te gaan naar een computer...maar tot die conclusie moet ik dan nog komen. :?


Hartelijke groet,
Jan-Willem

Nederlandse baan in ontwikkeling: Kokkerdam
Gebruikersavatar

Momfer
Berichten: 554
Lid geworden op: 29 okt 2020 13:13
Locatie: Zwolle

Re: Schakelen verlichting & seinen (met DCC-EX Commandstation)

Bericht door Momfer »

Hallo Jan-Willem,

Ik zie in jouw verhaal geen enkel probleem dat niet is op te lossen met alleen DCC-EX met EX-RAIL (in combinatie met Engine Driver [ED]).

- Digikeijs schakelmodules zijn te gewoon te gebruiken icm DCC-EX, aansturen van DCC gestuurde accessoires is gewoon mogelijk.
- Seinen met meer aspects (of knipperen) zijn mogelijk, maar vergen wel aanvullende EX-RAIL routines om dat goed te laten werken.
- Via EX-RAIL zijn seinen/wissels/animaties automatisch bedienbaar, maar kunnen ook middels ED bediend worden.
- Baanautomatisering kan net zover doorgevoerd worden als je wilt, afhankelijk van de processor die je gebruikt (lees geheugenruimte).

Voor DCC-EX (en ook EX-RAIL) heb je uiteraard een Computer nodig, maar na het uploaden naar de Arduino kan deze afgekoppeld worden als alles eenmaal werkt.

Mijn "advies" zou zijn om elk stukje van de puzzel afzonderlijk aan te pakken (in zo klein mogelijke stukjes), de meeste mensen willen te snel met DCC-EX en de werkwijze is toch net even anders als met rocrail of itrain.


Groet,
Rico (momfer)

Centrale: DCC-Ex | Arduino Mega + Motor shield
Besturing: EXRAIL | Traintastic | RocRail | Engine Driver | DecoderPro
Rails: Minitrix / Fleischmann Piccolo
En hier vind je de bouw van mijn kerstbaan en Starten met EXRAIL

Onderwerp starter
jw82
Berichten: 308
Lid geworden op: 11 mei 2021 09:03

Re: Schakelen verlichting & seinen (met DCC-EX Commandstation)

Bericht door jw82 »

Bedankt voor je reactie Rico (@Momfer) ! Ik probeer het zeker bij kleine stapjes te houden. :roll:

Zo ben ik vanavond aan de slag geweest met EX-RAIL en via ROUTES en SEQUENCES één en ander aan leds kunnen schakelen via ED. Liep alleen aan tegen feit dat ik IF-statements niet aan de praat krijg...zowel testen of pin high/low is, als testen of sein rood/geel/groen is.

Bedenk nu dat mogelijk eraan ligt dat deze leds via PCA8635 zijn aangesloten? Weet eigenlijk niet of daar pin van 'gelezen' kan worden. Nu alles opgeruimd, maar later eens proberen door rechtstreeks op Mega aan te sluiten.


Hartelijke groet,
Jan-Willem

Nederlandse baan in ontwikkeling: Kokkerdam
Gebruikersavatar

Momfer
Berichten: 554
Lid geworden op: 29 okt 2020 13:13
Locatie: Zwolle

Re: Schakelen verlichting & seinen (met DCC-EX Commandstation)

Bericht door Momfer »

Wat tips:

Testen van een sensor hoog/laag: AT(pin). Is de pin actief hoog, dan AT(-pin)

IF(pin) is niet bedoeld voor sensors, wel voor knoppen/schakelaars en wordt ook gebruikt in combinatie met de Latch(pin) functie.


Testen van een signaal: IFRED(pinRed) / IFAMBER(pinRed) / IFGREEN(pinRed)

Dat laatste lijkt raar, maar de pinRed is tevens het ID van het signaal.

Als het sein gedefinieerd is met de PCA pinnen ( bv SIGNAL(101,102,103) ) , dan kun je de bovenstaande opties gewoon gebruiken om te testen of het sein op rood/amber/groen staat. ( bv IFAMBER(101) ... DONE)

Een IF statement moet altijd met een DONE worden afgesloten!

Groet,
Rico



Onderwerp starter
jw82
Berichten: 308
Lid geworden op: 11 mei 2021 09:03

Re: Schakelen verlichting & seinen (met EX-Commandstation)

Bericht door jw82 »

Ik ben inmiddels weer een stap(je) verder, met dank aan de tips die richting wezen en nog eens goed doornemen van documentatie en voorbeelden.

Eerste doel was dus om te beproeven hoe ik verlichting en seinen via Engine Driver zou kunnen schakelen/bedienen. En dat heb ik bereikt!

Voor nu heb ik daarbij de keuze laten vallen op gebruik van 'virtuele pins' en de LATCH/UNLATCH commando's van Exrail om daarmee zg. "toggles" te maken die ik in de verschillende IF-statements kan inzetten om te testen wat de huidige status is.

Of dit de meest geschikte methodes zijn weet ik niet, maar voor nu werkt het eindresultaat wel zoals ik voor ogen had: met één knop ('Route') in Engine Driver een sein bedienen (dan wel in vaste volgorde van (enkelvoudige) seinbeelden) en de verlichting (bestaande uit meerdere leds, bv. meerdere huizen/lantaarns/effectverlichting als zwaailichten in bepaald gebied, bv. module) in- en uitschakelen.

In dit filmpje is te zien dat dit bereikt is:



Omdat ik wel benieuwd ben of er andere en/of betere manieren zijn om dit te bereiken, ook met oog op schaalbaarheid naar een echte lay-out, plaats ik hier ook de code die ik heb gemaakt in de myAutomation.h. In de comments van de code heb ik geprobeerd zo duidelijk mogelijk te beschrijven wat waar voor dient. Ik sta open voor feedback!

Code: Selecteer alles

// myAutomation.h - Proefopstelling verlichting & sein
//@jw82 (Jan-Willem) 23-09-2023

//****************//
//**Configuratie**//
//****************//
//DCC-EX Commandstation track configuration
AUTOSTART SET_TRACK(A,MAIN) DONE
AUTOSTART SETLOCO(10) SET_TRACK(B,DC) DONE
ROSTER(10,"DC TRACK B","/* /")

// Toggles
ALIAS(TOGGLE_VERLICHTING, 255)
ALIAS(TOGGLE_SEIN_1_ROOD, 254)
ALIAS(TOGGLE_SEIN_1_GEEL, 253)
ALIAS(TOGGLE_SEIN_1_GROEN, 252)

//Seinnamen
ALIAS(SEIN_1, 101)

//LED-namen
ALIAS(LED_1, 100)
ALIAS(LED_KNIPPER, 104)

//Functienamen (sequences)
ALIAS(KNIPPERLICHT)

//Routenamen (voor throttle)
ALIAS(VERLICHTING_SCHAKELAAR)
ALIAS(HOOFDSEIN)

//seinbeeld 'rood' zit op pin 101 (PCA)
SIGNALH(SEIN_1,102,103)

//**************************//
//********Initiatie*********//
//**************************//
AUTOSTART
	//bij opstarten test van alle seinlampen
	//sein in startpositie 'rood' zetten
	GREEN(SEIN_1)
	DELAY(1000)
	AMBER(SEIN_1)
	DELAY(1000)
	RED(SEIN_1)
	//alle toggles in juiste startpositie zetten
	UNLATCH(TOGGLE_SEIN_1_GROEN)
	UNLATCH(TOGGLE_SEIN_1_GEEL)
	LATCH(TOGGLE_SEIN_1_ROOD)
	UNLATCH(TOGGLE_VERLICHTING)
DONE

//**************************//
//***Functies (sequences)***//
//**************************//
SEQUENCE(KNIPPERLICHT)
//ook hier is check op toggle nodig omdat het een 'follow'
//is die anders doorgaat, ook als verlichting wordt uitgezet.
IF(TOGGLE_VERLICHTING)
		FADE(LED_KNIPPER, 2000, 500)
		DELAY(1000)
		FADE(LED_KNIPPER, 0, 500)
		DELAY(1000)
	ENDIF
FOLLOW(KNIPPERLICHT)

//**************************//
//**Routes (voor throttle)**//
//**************************//
//In- en uitschakelen van alle verlichting op het aangesloten deel van de lay-out
ROUTE(VERLICHTING_SCHAKELAAR, "Verlichting")
	IF(TOGGLE_VERLICHTING)
		RESET(LED_1)
		RESET(LED_KNIPPER)
		UNLATCH(TOGGLE_VERLICHTING)
	ELSE
		SET(LED_1)
		//het knipperlicht is een aparte functie (sequence)
		START(KNIPPERLICHT)
		LATCH(TOGGLE_VERLICHTING)
	ENDIF
DONE

//Schakelen van sein in vaste volgorde: rood > geel > groen
ROUTE(HOOFDSEIN, "Hoofdsein")
	//als sein rood is: seinbeeld 'geel' tonen
	IF(TOGGLE_SEIN_1_ROOD)
		AMBER(SEIN_1)
		LATCH(TOGGLE_SEIN_1_GEEL)
		UNLATCH(TOGGLE_SEIN_1_ROOD)
	ELSE
		//als sein geel is: seinbeeld 'groen' tonen
		IF(TOGGLE_SEIN_1_GEEL)
			GREEN(SEIN_1)
			LATCH(TOGGLE_SEIN_1_GROEN)
			UNLATCH(TOGGLE_SEIN_1_GEEL)
		ELSE //dan is sein groen: seinbeeld 'rood' weer tonen
			RED(SEIN_1)
			LATCH(TOGGLE_SEIN_1_ROOD)
			UNLATCH(TOGGLE_SEIN_1_GROEN)
		ENDIF
	ENDIF
DONE
Zoals eerder aangegeven heb ik nu al Digikeijs schakeldecoders in gebruik, bediend via de app (bluetooth). Een volgende stap is om te kijken hoe ik die dan hieraan koppel, en bijvoorbeeld de NL seinbeelden kan toepassen (ivm. zelf in EXRAIL proberen te maken).
Laatst gewijzigd door jw82 op 24 sep 2023 12:25, 1 keer totaal gewijzigd.


Hartelijke groet,
Jan-Willem

Nederlandse baan in ontwikkeling: Kokkerdam
Gebruikersavatar

Momfer
Berichten: 554
Lid geworden op: 29 okt 2020 13:13
Locatie: Zwolle

Re: Schakelen verlichting & seinen (met DCC-EX Commandstation)

Bericht door Momfer »

Je bent een mooi stuk verder gekomen, mooi om te zien.

Of iets "de beste methode" is, hangt vooral af wat je zelf wilt en handig vindt lijkt me. Er leiden vele wegen naar Rome....

Groet,
RIco



Onderwerp starter
jw82
Berichten: 308
Lid geworden op: 11 mei 2021 09:03

Re: Schakelen verlichting & seinen (met DCC-EX Commandstation)

Bericht door jw82 »

Inderdaad Rico, ik besef dat er vele wegen zijn. En al doende leert men gelukkig ook nog. ;-) Leuk om dit door te ontwikkelen, ook qua code 'efficiency' en 'netheid'.

Zo ontdekte ik ook nog dat de toggles die ik had gedefinieerd voor het sein, niet eens nodig (b)lijken te zijn. Want ik kan op die pinnen waar het sein op zit (in deze code: 101, 102, 103) ook direct de LATCH/UNLATCH gebruiken, waardoor ik deze pin ook kan testen in de IF. Dat ontbrak in mijn eerste stuk code waar de vragen vooral ontstonden hoe te testen welke kleur het sein heeft.


Hartelijke groet,
Jan-Willem

Nederlandse baan in ontwikkeling: Kokkerdam
Plaats reactie