Detecteren stand van Wissel voor Arduino
Detecteren stand van Wissel voor Arduino
Hoi hoi
Zoals jullie misschien gezien hebben, ik ben bezig om mijn “Reverse Loop” te realiseren, maar ik wil graag nog wat dingen toevoegen.
Mijn plan is om mbv een Arduino te gaan kijken in welke stand een wissel staat.
Nu heb ik al gemeten dat als ik met een multimeter ga kijken( AC uiteraard) keurig rond de 5 volt staat als de wissel recht staat, en dat ie naar 0 springt als ie omgezet wordt, dus dat zou ik als input op de Arduino kunnen gebruiken.
Als ik echter de wissel omzet springt ie even heel kort naar rond de 14v, om daarna weer keurig 5 V aan te geven.
Ik durf dit natuurlijk nog niet aan een Arduino aan te sluiten omdat ik bang ben dat ik hem opblaas (ivm die 14V)
Weet iemand hier een oplossing voor ??
Bij voorbaat dank voor het meedenken.
Tom
Zoals jullie misschien gezien hebben, ik ben bezig om mijn “Reverse Loop” te realiseren, maar ik wil graag nog wat dingen toevoegen.
Mijn plan is om mbv een Arduino te gaan kijken in welke stand een wissel staat.
Nu heb ik al gemeten dat als ik met een multimeter ga kijken( AC uiteraard) keurig rond de 5 volt staat als de wissel recht staat, en dat ie naar 0 springt als ie omgezet wordt, dus dat zou ik als input op de Arduino kunnen gebruiken.
Als ik echter de wissel omzet springt ie even heel kort naar rond de 14v, om daarna weer keurig 5 V aan te geven.
Ik durf dit natuurlijk nog niet aan een Arduino aan te sluiten omdat ik bang ben dat ik hem opblaas (ivm die 14V)
Weet iemand hier een oplossing voor ??
Bij voorbaat dank voor het meedenken.
Tom
Re: Detecteren stand van Wissel voor Arduino
Opmerking moderator
Draadje verplaatst naar Arduino sub-forum.

Groeten,
Maarten
Onder andere bouwer van Rock's End en NV De Vleeshouwer. Nu weer bezig met Polar Express.
Maarten
Onder andere bouwer van Rock's End en NV De Vleeshouwer. Nu weer bezig met Polar Express.
Re: Detecteren stand van Wissel voor Arduino
In een ander draadje vertel je dat je de dcc-ex centrale hebt. Mocht je met exrail een wissel omzetten dan weet je toch wat de stand is? Wat is je doel ermee? Iets automatiseren? Een ledje aanzetten?
-
- Berichten: 209
- Lid geworden op: 04 nov 2018 23:20
- Locatie: Haarlem
Re: Detecteren stand van Wissel voor Arduino
Vermeld ook even waar die 12 V vandaan komt. Gebruik je een wissel die door magneetspoelen wordt aangestuurd?
Wat is de schakeling?
Ja 12 V kan de Arduino niet hebben. Is het soms een inductiepuls vanuit de magneetspoelen?
Wat is de schakeling?
Ja 12 V kan de Arduino niet hebben. Is het soms een inductiepuls vanuit de magneetspoelen?
Laatst gewijzigd door BramvanLeeuwen op 06 mei 2025 17:05, 1 keer totaal gewijzigd.
met vriendelijke groet,
Bram van Leeuwen
Bram van Leeuwen
Re: Detecteren stand van Wissel voor Arduino
Hallo Tom,
Sowieso zou ik terughoudend zijn om welke wisselstroom dan ook koud op een arduino pinnetje los te laten! De sketch zal er weinig zinnigs van kunnen maken als de input verwerkt moet gaan worden. (een eventuele uitzondering is als je wilt pulsen tellen van een nette blokgolf)
Je zult hoe dan ook een soort van koppeling moeten maken en bij voorkeur ook met een galvanische scheiding. Hou ook de voeding kabeltjes en data kabeltjes zo ver mogelijk uit elkaar vandaan, anders kun je ook verrassende uitkomsten krijgen van je sketch.
Die koppeling kan op verschillende manieren.
Met een goed betrouwbare eind afschakeling (uitgaande van de traditionele electromagneetspoel wisselaandrijving) kun je wel iets doen zoals bv roco/fleischmann had met een rood of groen ledje om de stand van de wissel aan te geven. In plaats van dat ledje doe je dan een optocoupler.
Schema's en tekeningen heb ik niet zo 1 2 3 erbij voor je.
Een optocoupler is een ledje en een fototransistor bij elkaar in een lichtdichte behuizing. Als het ledje 'oplicht', gaat de fototransistor geleiden. De ledkant sluit je dan zoals roco/fleischman aan op je wisselspoel en de fototransistor kant sluit je aan op je arduino. Persoonlijk vindt ik dat best een elegante oplossing, omdat je dan gelijk ook je galvansiche scheiding hebt.
Met een servo type wisselaandrijving kun je bv een microswitch laten schakelen in een of beide wisselstanden. Veel kant en klare wisselaandrijvingen van dit type hebben al een of meerdere van dergelijke schakelaars aan boord (dit is een methode die ik zelf gebruik).
succes, Fenna
Sowieso zou ik terughoudend zijn om welke wisselstroom dan ook koud op een arduino pinnetje los te laten! De sketch zal er weinig zinnigs van kunnen maken als de input verwerkt moet gaan worden. (een eventuele uitzondering is als je wilt pulsen tellen van een nette blokgolf)
Je zult hoe dan ook een soort van koppeling moeten maken en bij voorkeur ook met een galvanische scheiding. Hou ook de voeding kabeltjes en data kabeltjes zo ver mogelijk uit elkaar vandaan, anders kun je ook verrassende uitkomsten krijgen van je sketch.
Die koppeling kan op verschillende manieren.
Met een goed betrouwbare eind afschakeling (uitgaande van de traditionele electromagneetspoel wisselaandrijving) kun je wel iets doen zoals bv roco/fleischmann had met een rood of groen ledje om de stand van de wissel aan te geven. In plaats van dat ledje doe je dan een optocoupler.
Schema's en tekeningen heb ik niet zo 1 2 3 erbij voor je.
Een optocoupler is een ledje en een fototransistor bij elkaar in een lichtdichte behuizing. Als het ledje 'oplicht', gaat de fototransistor geleiden. De ledkant sluit je dan zoals roco/fleischman aan op je wisselspoel en de fototransistor kant sluit je aan op je arduino. Persoonlijk vindt ik dat best een elegante oplossing, omdat je dan gelijk ook je galvansiche scheiding hebt.
Met een servo type wisselaandrijving kun je bv een microswitch laten schakelen in een of beide wisselstanden. Veel kant en klare wisselaandrijvingen van dit type hebben al een of meerdere van dergelijke schakelaars aan boord (dit is een methode die ik zelf gebruik).
succes, Fenna
Re: Detecteren stand van Wissel voor Arduino
Hoi hoi !
Dank voor de antwoorden alvast….. ik gebruik de csb-ex ( de kant en klare versie is dat) … daar zal ik wellicht ook iets mee kunnen, echter daar moet ik me ook nog helemaal in verdiepen……
Ik zal het iets verduidelijken allemaal…..
Ik wil graag een Reverse Loop, die automatisch de polariteit omgooid zodra de trein de Loop binnenkomt. Dat heb ik grotendeelsal voor elkaar….
Ik wil echter ook kunnen zien hoe de wissel staat zodat het niet uitmaakt hoe hij staat, want ik wil hem nl ook handmatig kunnen omgooien mbv een switch.
Als ik nl de “baan” aanzet, weet ik niet hoe de switch staat, dus dat zou ik graag willen uitlezen.
Wanneer ik een multimeter aansluit op de baan lees ik dus 5 v wisselspanning, echter als ik de wissel omgooi zien ik even 14v verschijnen en dan gaat ie naar 0 of naar 5 (afhankelijk van hoe de wissel op dat moment staat…..)
Dank voor de antwoorden alvast….. ik gebruik de csb-ex ( de kant en klare versie is dat) … daar zal ik wellicht ook iets mee kunnen, echter daar moet ik me ook nog helemaal in verdiepen……
Ik zal het iets verduidelijken allemaal…..
Ik wil graag een Reverse Loop, die automatisch de polariteit omgooid zodra de trein de Loop binnenkomt. Dat heb ik grotendeelsal voor elkaar….
Ik wil echter ook kunnen zien hoe de wissel staat zodat het niet uitmaakt hoe hij staat, want ik wil hem nl ook handmatig kunnen omgooien mbv een switch.
Als ik nl de “baan” aanzet, weet ik niet hoe de switch staat, dus dat zou ik graag willen uitlezen.
Wanneer ik een multimeter aansluit op de baan lees ik dus 5 v wisselspanning, echter als ik de wissel omgooi zien ik even 14v verschijnen en dan gaat ie naar 0 of naar 5 (afhankelijk van hoe de wissel op dat moment staat…..)
Re: Detecteren stand van Wissel voor Arduino
Je wilt dus een keerlus hebben die van 2 kanten kan worden ingereden.
Re: Detecteren stand van Wissel voor Arduino
Als je de dcc-ex aan zet kun je met ex-rail automatisch de stand van dat wissel bepalen. Dan staat ie zeg maar altijd hetzelfde als je spanning op de baan zet.
Re: Detecteren stand van Wissel voor Arduino
Laten we even beginnen met duidelijke benamingen voor de onderdelen. Je noemt nu handmatig omzetten met een switch. Maar verderop benoem je de wissel ook als een switch. Das verwarrend.
Noem de schakelaar voor handbediening gewoon schakelaar en de wissel gewoon wissel.
Wat mij niet helemaal duidelijk is, is hoe je keerlus nu werkt.
Je kunt dit op meerdere manieren laten werken namelijk.
1: de lus is geïsoleerd en er is een stukje hardware wat kortsluiting detecteert en dit stukje hardware werkt autonoom en zorgt dat de polariteit omgegooid wordt.
Hierdoor is de werking gegarandeerd van de keerlus onafhankelijk van de wissel.
2: je hebt via het dcc-ex of een arduino een wisselaansturing gemaakt, en afhankelijk van de wissel stand wordt de polariteit van keerlus omgezet.
Als dit laatste het geval is, kun je simpelweg de wissel niet buiten de dcc-ex/arduino je wissel handmatig omzetten. Er is dan namelijk geen aansturing van je keerlus.
Als je de schakelaar dan gewoon aansluit op je arduino dan kan het wel gewoon werken want dan weet je arduino welke stand de schakelaar staat.
Dus graag iets beter beschrijven hoe je het wilt laten werken en waar je dingen op wilt laten aansluiten.
Noem de schakelaar voor handbediening gewoon schakelaar en de wissel gewoon wissel.
Wat mij niet helemaal duidelijk is, is hoe je keerlus nu werkt.
Je kunt dit op meerdere manieren laten werken namelijk.
1: de lus is geïsoleerd en er is een stukje hardware wat kortsluiting detecteert en dit stukje hardware werkt autonoom en zorgt dat de polariteit omgegooid wordt.
Hierdoor is de werking gegarandeerd van de keerlus onafhankelijk van de wissel.
2: je hebt via het dcc-ex of een arduino een wisselaansturing gemaakt, en afhankelijk van de wissel stand wordt de polariteit van keerlus omgezet.
Als dit laatste het geval is, kun je simpelweg de wissel niet buiten de dcc-ex/arduino je wissel handmatig omzetten. Er is dan namelijk geen aansturing van je keerlus.
Als je de schakelaar dan gewoon aansluit op je arduino dan kan het wel gewoon werken want dan weet je arduino welke stand de schakelaar staat.
Dus graag iets beter beschrijven hoe je het wilt laten werken en waar je dingen op wilt laten aansluiten.
Re: Detecteren stand van Wissel voor Arduino
Hoi hoi
Mijn excuses voor de onduidelijkheden, ik zal inderdaad de beestjes bij hun naam noemen…..
Ik gebruik de kant en klare EX-CSB1, dat vond ik om te beginnen de meest makkelijke oplossing.
Voor de keerlus gebruik ik inderdaad een Arduino met 2 Infra-rood sensoren.
Ik begrijp inderdaad dat ik het beste de schakelaar ook op de arduino kan aansluiten want dan weet ik in welke beginstand deze staat…
Voor alle duidelijkheid, ik ben nog maar net begonnen met Arduino’s en sommige dingen zijn voor mij nog abracadabra, dus ik weet in een heleboel gevallen niet wat wel en niet kan.
Mijn uiteindelijke doel is inderdaad de keerlus zo te maken dat ik zelf kan kiezen van welke kant de keerlus wordt ingereden, en dat de Arduino het overneemt om de polariteit (of phase ) om te draaien en de wissel omzet zodat de trein de loop weer kan verlaten….
Mijn excuses voor de onduidelijkheden, ik zal inderdaad de beestjes bij hun naam noemen…..
Ik gebruik de kant en klare EX-CSB1, dat vond ik om te beginnen de meest makkelijke oplossing.
Voor de keerlus gebruik ik inderdaad een Arduino met 2 Infra-rood sensoren.
Ik begrijp inderdaad dat ik het beste de schakelaar ook op de arduino kan aansluiten want dan weet ik in welke beginstand deze staat…
Voor alle duidelijkheid, ik ben nog maar net begonnen met Arduino’s en sommige dingen zijn voor mij nog abracadabra, dus ik weet in een heleboel gevallen niet wat wel en niet kan.
Mijn uiteindelijke doel is inderdaad de keerlus zo te maken dat ik zelf kan kiezen van welke kant de keerlus wordt ingereden, en dat de Arduino het overneemt om de polariteit (of phase ) om te draaien en de wissel omzet zodat de trein de loop weer kan verlaten….
Re: Detecteren stand van Wissel voor Arduino
Hallo Tom,
Met je infrarood detectie, heb je in principe al bijna alles wat je nodig hebt (behalve een slimme sketch die een en ander correct interpreteert.
aanvullend zou ik er een bezet detectie bij doen om te meten of er inderdaad een trein in de keerlus zit.
tip 1: de arduino heeft 2 pinnetjes die als interrupt kunnen werken voor je sketch, gebruik die voor je infrarood sensoren.
tip 2: plaats je infrarood sensoren onder een hoek tov je spoor, zodat de ruimte tussen wagons niet wordt opgemerkt en de hele trein passage de sensor maar 1 keer activeert en alleen afvalt als de trein helemaal voorbij is.
tip 3: lees je in op het werken met interrupts in arduino. Hoe je bepaalt welke interrupt als eerste getriggerd wordt en hoe je op "rising" en "falling" interrupt verschillende functies kunt laten doen door de arduino. Belangrijk om in de gaten te houden is of je sensor actief hoog of actief laag is!
Inrijden vanaf de wissel tot aan (om het even welke) infrarood sensor kan onafhankelijk van de stand van de wissel als je die stukken spoor vanaf de wissel (en het baanvak buiten de keerlus) laat voeden.
Ergens tussen de 2 infrarood sensoren heb je het tussenstuk spoor dat moet gaan kloppen met het stuk waarop de keerlus is binnengereden. Een ompool relais op de arduino kan dat voor je regelen. Door de arduino te laten bepalen welke infrarood sensor als eerste triggert, laat je het ompool relais in een bepaalde stand zetten. In dit verhaal schakel je ook de wissel om naar de andere positie om ontsporen van de trein bij het uitrijden te voorkomen.
Hoe je omgaat met de baanspanning buiten de keerlus hangt weer erg af van de rest van de baan. Wel moet die al de andere kant op staan voordat de trein het tussenstuk spoor uitrijdt en weer naar op de gewone baanspanning komt naar en voorbij het wissel.
Een schakelaar op de arduin om het wissel om te zetten? zou kunnen, persoonlijk vind ik dat niet zo nodig als je proces besturing met de arduino klopt
Mijn ervaring met arduino (hoewel ik tegenwoordig vooral met raspberrypi Pico's werk) is dat je het beste eerst heel methodisch moet inventariseren wat je precies wilt sturen en meten, wat de volgorde is van meetwaardes en acties en op welke meetwaarde welke actie moet volgen. Of eigenlijk, welke meetwaarde heb je nodig om een bepaalde actie te laten uitvoeren door de arduino en kan ik die meetwaarde realiseren op een betrouwbare manier?
Als je dat weet, volgt de bijpassende code in de sketch bijna vanzelf ... leer wel je basis in c/c++, anders wordt het echt een enorme uitdaging
RTFM is super belangrijk
Fenna
ps door met interrupts te werken heb ik met een arduino nano een apperaatje gemaakt dat van analoge camera's sluitertijden kan meten (tot 1/3000s als kortste sluitertijd)
Met je infrarood detectie, heb je in principe al bijna alles wat je nodig hebt (behalve een slimme sketch die een en ander correct interpreteert.
aanvullend zou ik er een bezet detectie bij doen om te meten of er inderdaad een trein in de keerlus zit.
tip 1: de arduino heeft 2 pinnetjes die als interrupt kunnen werken voor je sketch, gebruik die voor je infrarood sensoren.
tip 2: plaats je infrarood sensoren onder een hoek tov je spoor, zodat de ruimte tussen wagons niet wordt opgemerkt en de hele trein passage de sensor maar 1 keer activeert en alleen afvalt als de trein helemaal voorbij is.
tip 3: lees je in op het werken met interrupts in arduino. Hoe je bepaalt welke interrupt als eerste getriggerd wordt en hoe je op "rising" en "falling" interrupt verschillende functies kunt laten doen door de arduino. Belangrijk om in de gaten te houden is of je sensor actief hoog of actief laag is!
Inrijden vanaf de wissel tot aan (om het even welke) infrarood sensor kan onafhankelijk van de stand van de wissel als je die stukken spoor vanaf de wissel (en het baanvak buiten de keerlus) laat voeden.
Ergens tussen de 2 infrarood sensoren heb je het tussenstuk spoor dat moet gaan kloppen met het stuk waarop de keerlus is binnengereden. Een ompool relais op de arduino kan dat voor je regelen. Door de arduino te laten bepalen welke infrarood sensor als eerste triggert, laat je het ompool relais in een bepaalde stand zetten. In dit verhaal schakel je ook de wissel om naar de andere positie om ontsporen van de trein bij het uitrijden te voorkomen.
Hoe je omgaat met de baanspanning buiten de keerlus hangt weer erg af van de rest van de baan. Wel moet die al de andere kant op staan voordat de trein het tussenstuk spoor uitrijdt en weer naar op de gewone baanspanning komt naar en voorbij het wissel.
Een schakelaar op de arduin om het wissel om te zetten? zou kunnen, persoonlijk vind ik dat niet zo nodig als je proces besturing met de arduino klopt

Mijn ervaring met arduino (hoewel ik tegenwoordig vooral met raspberrypi Pico's werk) is dat je het beste eerst heel methodisch moet inventariseren wat je precies wilt sturen en meten, wat de volgorde is van meetwaardes en acties en op welke meetwaarde welke actie moet volgen. Of eigenlijk, welke meetwaarde heb je nodig om een bepaalde actie te laten uitvoeren door de arduino en kan ik die meetwaarde realiseren op een betrouwbare manier?
Als je dat weet, volgt de bijpassende code in de sketch bijna vanzelf ... leer wel je basis in c/c++, anders wordt het echt een enorme uitdaging

RTFM is super belangrijk

Fenna
ps door met interrupts te werken heb ik met een arduino nano een apperaatje gemaakt dat van analoge camera's sluitertijden kan meten (tot 1/3000s als kortste sluitertijd)