BeneluxSpoor.net forum

Vraag en antwoord => Algemeen => Topic gestart door: Jos Schnitzler op 25 mei 2020, 09:31:40

Titel: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 25 mei 2020, 09:31:40
Op mijn modelbaantje - er wordt digitaal gereden - zou ik heel graag 5 seinen, met ieder een rode, gele en groene led, heel eenvoudig willen bedienen. Geen detectie, geen stopsectie e.d., de 'machinist' moet zelf opletten en aan de hand van het seinbeeld zijn/haar trein bedienen. Is er een idee voor een aansturing met een standaard printplaatje waarop de seinen zijn aangesloten met daaraan aangekoppeld bijv. een paar microschakelaars?

Heeft iemand een fraai idee - het mag uiteraard bijvoorbeeld ook een meer geavanceerde schakeling met een arduino zijn - ik houd me aanbevolen voor een reactie.

Groet.
Titel: Re: Simpel seinen aansturen
Bericht door: Klaas Zondervan op 25 mei 2020, 09:45:16
Als je geen detectie wil moet je de seinen dus ook met de hand bedienen. Is dat de bedoeling? Dat moet je wel heel erg goed opletten.
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 25 mei 2020, 09:54:52
Kan je een schets van je baan geven en de plaats waar je je seinen precies wilt hebben? En hoe wil je precies die seinen aansturen? Je noemde microschakelaars, hoe had je dat in gedachte? Rij je overigens 2 of 3 rail?

Ik heb per toeval in het bmb draadje  (https://forum.beneluxspoor.net/index.php?topic=64485.msg3222121566#msg3222121566)hier net iets over gelezen en geschreven.

Het basis idee is: je zet iets van een terugmelder (lichtsluis, stroomdetectie, massadetectie, iets anders) achter een sein. Als een trein dan die melder bereikt, kan een arduino voor je dat sein op rood zetten gedurende een x aantal tijd. Ik had zelf bedacht dat je ook de snelheid zou kunnen bepalen en daarmee de tijd kan berekenen, maar dat is opzich niet nodig. Elk sein heeft dan slechts 1 melder en is een losstaand systeem. Je kan hem natuurlijk zo programmeren dat na een x aantal tijd rood dat het sein eerst nog even een x aantal tijd op oranje springt voordat hij weer op groen staat.

Je kan per sein een arduino gebruiken. Dat is opzich niet slecht noch duur. Ik koop vaak nano's in op banggood voor onder de €1,80, of je kan 1 arduino voor alle seinen gebruiken. Het eerste houdt wel je programma makkelijker. En je hoeft niet alle seindraden naar 1 centraal punt te trekken.

Je kan de sein arduino's onderling ook nog laten communiceren door slechts 1 enkele IO verbinging te maken. In plaats van met tijden, werk je dan met de melder van de volgende arduino. Zo kan je dus een 100% functioneel bloksysteem maken met alleen seinen. We hebben het nog steeds niet over geisoleerde stukken rails maar echt alleen over seinen.

Je bent natuurlijk ook vrij om buiten dit systeem om nog een extra schakelaar toe te voegen om zelf het sein op bijvoorbeeld rood te zetten.

Je zal dus toch iets van detectie nodig hebben als je wilt dat je treinen de seinen kunnen beinvloeden.

We horen van je,

Bas



Titel: Re: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 25 mei 2020, 10:01:46
Dank voor de reacties toto nu toe. Door wat externe bezigheden kan ik wellicht vanavond pas wat rustig lezen, overdenken en daarna wellicht toelichten.
Gr. Jos
Titel: Re: Simpel seinen aansturen
Bericht door: 72sonett op 25 mei 2020, 11:41:47
... 5 seinen, met ieder een rode, gele en groene led, heel eenvoudig willen bedienen. Geen detectie, geen stopsectie ...

Dit is het eenvoudigste wat ik kan bedenken:
(https://images.beneluxspoor.net/bnls/5seinen.jpg) (https://images.beneluxspoor.net/bnls/5seinen.jpg)
Titel: Re: Simpel seinen aansturen
Bericht door: Klaas Zondervan op 25 mei 2020, 11:53:42
Daar zit een hikje in. Met deze schakeling kun je in een sein rood en geel tegelijk aan zetten.
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 25 mei 2020, 12:19:26
dat doet ie expres. Als 1 sein op rood sprint, moet het vorige sein op oranje springen

Laat maar, ik snap wat je bedoelt.
Titel: Re: Simpel seinen aansturen
Bericht door: Klaas Zondervan op 25 mei 2020, 12:31:52
Die kleur heet geel, niet oranje. ;)
Titel: Re: Simpel seinen aansturen
Bericht door: 72sonett op 25 mei 2020, 12:35:08
dat doet ie expres. Als 1 sein op rood sprint, moet het vorige sein op oranje springen

Dat was precies de bedoeling. Sein op rood= vorig sein op geel.

Citaat
Laat maar, ik snap wat je bedoelt.
Ik niet.  ???
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 25 mei 2020, 12:44:16
Als je sw4 op rood zet, brand sein 4 rood. Als je dan Sw5 ook op rood zet, brandt geel van sein 4 tegelijkertijd met het rood van sein 4.

Maareh we wachten wel af met wat OP wilt met die schakelaars
Titel: Re: Simpel seinen aansturen
Bericht door: Klaas Zondervan op 25 mei 2020, 12:45:17
Kijk eens goed naar je eigen schema. Als twee opvolgende blokken rood staan zal het eerste ook geel tonen.
Je moet op de schakelaars dus een tweede contact hebben dat de geel-informatie van het volgende blok onderbreekt als het eigen blok rood staat.
Titel: Re: Simpel seinen aansturen
Bericht door: ikbenerevenniet op 25 mei 2020, 12:51:42
Ha fijn, nog meer schakelaars en nog meer bedrading! ;-) Ik roep (nu al):"Arduino"!
Titel: Re: Simpel seinen aansturen
Bericht door: Klaas Zondervan op 25 mei 2020, 12:57:01
Als iemand Arduino roept stop ik mijn oren dicht. ;D
Titel: Re: Simpel seinen aansturen
Bericht door: 72sonett op 25 mei 2020, 14:01:49
... Als twee opvolgende blokken rood staan zal het eerste ook geel tonen.

Ja, dat was mijn opzet, maar blijkbaar komt dat niet overeen met 'echt'?
(It's not a bug, it's a feature!)

(https://images.beneluxspoor.net/bnls/5seinen-2.jpg) (https://images.beneluxspoor.net/bnls/5seinen-2.jpg)

In deze situatie overigens niemand die het ziet want blok 2 is vrij. Pas als er 3 opvolgende blokken bezet zijn, b.v. ook blok 2, staat die naar rood+geel te kijken.

Citaat
Als iemand Arduino roept, stop ik mijn oren dicht.
Ik niet, maar het uitgangspunt was:
Citaat
5 seinen, rode, gele en groene led, ...eenvoudig ...  Geen detectie, geen stopsectie
Als je toch detectie + remmen + optrekken wil, dan pas ga ik ook aan een Arduino denken. Die stuurt dan SW1..5 (als relais).

... nog meer schakelaars en nog meer bedrading! Ik roep (nu al):"Arduino"!
Je zal toch bedrading moeten hebben van één of meerdere Arduino's naar de relais en de seinen.
Titel: Re: Simpel seinen aansturen
Bericht door: gvandersel op 25 mei 2020, 15:00:25
Met een dubbelpolige wisselschakelaar. Volledig NS compatibel.
Hoe de schakelaars bedient worden laat ik aan de topic starter.
(https://images.beneluxspoor.net/bnls/BlokSeinen.jpg) (https://images.beneluxspoor.net/bnls/BlokSeinen.jpg)
Oh ja, Schakelaar, 3 LEds en 3 weerstanden vormen 1 blok.

Groet,

Gerard van der Sel.
Titel: Re: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 25 mei 2020, 18:46:37
Dank voor alle bijdragen aan deze topic. Ik vat nog even samen wat echt de bedoeling is: geen stopsecties, geen detectie, een sein op rood betekent dat de "dienstdoende machinist" kijkt met zijn handregelaar in de aanslag en stopt. Groen/geel betekent langzaam doorrijden, groen doorrijden.

Ik ga eens uitgebreid het laatste schema bestuderen en bekijken of er het een en ander om grote draadbundels te vermijden op een een standaard printplaatje past.

Groet, Jos
Titel: Re: Simpel seinen aansturen
Bericht door: GMA70 op 25 mei 2020, 18:59:38
Nog even een variant met enkelvoudige schakelaars en twee extra diodes per blok:
De schakelaar schakelt Gnd, de leds zijn verbonden met plus via een weerstand.
Off is verbonden met rood, on met groen. Geel is verbonden met rood van het volgende blok.

Een diode over de groene led heen met de minkant aan rood van het volgende blok, voorkomt dat ook het groene licht zal branden. Een zelfde diode over het gele led met de minkant aan de rood van zijn eigen blok zal voorkomen dat het gele led brandt, als het sein op rood staat.

Ik kan nu even geen plaatje toevoegen, zal ik later toevoegen.

Mvg,  Gertjan

Titel: Re: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 25 mei 2020, 19:38:07
Prima, mooi om eerst in het klein uit te proberen. Er zijn overigens geen blokken aanwezig.

Jos
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 25 mei 2020, 20:06:06
Dus er zijn meerdere personen betrokken. 1 iemand bedient de seinen terwijl andere mensen rijden.

Citaat
... grote draadbundels te vermijden
Ik snap precies wat je wilt, je kan zonder problemen de schakelaars gebruiken in combinatie met een schakelpaneel zoals je ziet. Als je dat doet volgens bovenstaande schema's moet je veel koper trekken naar je schakelpaneel. Ik tel al minimaal 16 aders 15x3 knopjes + vcc.

Ik heb thuis onder mijn hele baan straks arduino's hangen en ook voor de schakelpanelen. De achterkant van mijn schakelpaneel ziet er zo uit:
(https://images.beneluxspoor.net/bnls/naamloos4_1.jpg)
Ik heb ook nog extra ledjes voor visuele feedback op mijn schakelpaneel. Maar dat kan je ook met de andere schema's hier doen. Dat is niet zo belangrijk.

Op dat printplaatje zitten 2 van deze chippies (https://hackerstore.nl/Artikel/236). Dit zijn I2C IO extenders die je met de I2C bus (4 aders: data, clock, vcc, gnd) kan aansluiten op een arduino. Je kan er maximaal 8 gebruiken en elke chip heeft 16 general purpose input/output porten. Je kan er dus zowel leds mee aansturen als knopjes mee inlezen.

Mijn schakelpaneel loopt met die flatcable naar een printje met een arduino nano:
(https://i.imgur.com/8AGKr3l.jpg)
De nano gaat met dezelfde bus naar een andere mcp23017 met dezelfde flacable. Je kan met I2C geen grote afstanden afleggen, maar een halve meter gaat probleemloos. Je kan tot misschien zelfs een meter als niet meer.

Als je dus net als ik een pest hekel heb aan draden trekken, is dit misschien iets voor je.
Code om die mcp23017 aan te sturen, heb ik ook al af en het werkt net zo makkelijk als digitalWrite() en digitalRead(). Mijn functies heten alleen anders namelijk mcpRead() en mcpWrite().

Als je nog niks met arduino gedaan heb, moet je dit wel graag willen. Anders wijs ook ik naar de bovenstaande schema's. Ik kan je helpen je programma op te zetten, ik kan je vertellen het wordt geen moeilijk programma en als je ook maar een beetje aanleg heb, dan kan je het zelf wel afmaken.

Dus Jos, ik zou zeggen: slaap er een nachtje over. Je antwoorden liggen hier op tafel.

Mvg,

Bas
Titel: Re: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 25 mei 2020, 20:25:42
Bas, ziet er super uit. Het is nog wel een beetje abracadabra voor me. Vind je het goed als ik in de loop van deze of volgende week via een BP contact met je zoek.

Groet, Jos
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 25 mei 2020, 20:39:39
Dat is prima  ;)
Titel: Re: Simpel seinen aansturen
Bericht door: Klaas Zondervan op 25 mei 2020, 20:45:07
Ik vat nog even samen wat echt de bedoeling is: geen stopsecties, geen detectie, een sein op rood betekent dat de "dienstdoende machinist" kijkt met zijn handregelaar in de aanslag en stopt. Groen/geel betekent langzaam doorrijden, groen doorrijden.
Hoe schakel je dan de seinen, met de hand?
Groen/geel kan niet, een sein toont altijd maar 1 kleur, tenminste als het Nederlands is.

Er zijn overigens geen blokken aanwezig.
Als je seinen plaatst ontstaan er vanzelf blokken.
Titel: Re: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 02 juni 2020, 20:33:28
Bas, daar ben ik weer. Morgen vind ik ruim de tijd om jou een PB te sturen. Tot dan.

Gr. Jos
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 02 juni 2020, 21:03:05
Tot dan  ;)
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 23 juni 2020, 14:13:32
Ik had prive antwoord van Jos, maar dat gaan we natuurlijk hier zo afhandelen.

Om te beginnen het baanplan
(https://images.beneluxspoor.net/bnls/deleteme_18.png)
5 x 3-standen seinen die niet zijn gekoppeld aan elkaar. Alles handgeschakeld.

De arduino nano heeft 20 digitale IO waarvan 6 als analoge ingangen kunnen fungeren. Er zijn ook nog 2 extra analoge ingangen.

Elk sein heeft 3 leds, dat betekent dat we 15 IO nodig hebben om de seinen aan te sturen. @Jos kun je wat meer over de seinen vertellen? zijn het standaard seinen of zelfbouw seinen? Standaardseinen moeten misschien van een lagere voorschakelweerstand worden voorzien omdat we een lagere spanning gaan gebruiken. (330- 470 Ohm)

Als je de arduino in het midden van het overloopstuk plaatst onder de baan dan hoef je het minste koper te trekken. Elk sein krijgt 4 draadjes, 3 IO lijnen en een common 5V lijn.

Het schakelpaneel is wat leuker. Omdat we 5 niet gekoppelde 3-standen seinen hebben, hebben we in principe 15 IO nodig. Gelukkig zijn er oplossingen. Ik kon er voor nu 2 verzinnen.

Je kan deze push-schakelaars kopen. Of een andere schakelaar die je mooi vindt
(https://hackerstore.nl/Afbeeldingen/250klein.jpg)
Van deze zou je er dan 15 nodig hebben. Je kan met zoveel schakelaars een spanningsdeler maken. Alle schakelaars worden dan met 1 poot verbonden aan elkaar. Dit knooppunt gaat dan met een weestand naar de 5V en naar een analoge ingang van de Arduino.

Alle andere pootjes van de knopjes gaan met elk een unieke weerstand naar de ground. Als je dan 1 knop indrukt, maak je met een spanningsdelere een unieke spanning voor die knop. In de software kunnen we dan deze spanning inlezen en bepalen welke knop is ingedrukt. Het voordeel is dat je slechts drie hele draden moet trekken naar de arduino toe. Ik meen dat de OP dit wel wenselijk vindt?

De andere optie is om gebruik te maken van een vijftal potmeters met mooie wijzerknopjes. Alle 5 de potmeters lees je dan analoog in en in SW maken we dan onderscheid voor de 3 standen. Het nadeel is dat je nu 7 draden moet trekken naar je schakelpaneel. En de potmeters hebben geen echte klikken. Je krijgt dan geen feedback van het gevoel van het draaien. Het voordeel is dat je slechts 5 gaten in je paneel hoeft te boren in plaats van 15.

(https://hackerstore.nl/Afbeeldingen/1401klein.jpg)

(https://hackerstore.nl/Afbeeldingen/247klein.jpg)
Er zijn meerdere draaiknopjes te vinden als je deze niet mooi vindt.
  o
/ o
  o
Je kan op je schakelpaneel 3 lampsymbolen onder elkaar maken en de draaiknop kan je dan links van je symbolen zetten. Dan kan je je sein aansturen door je knop naar 1 van de 3 kleuren te laten wijzen.

Ze bestaan ook als schuifversie.
(https://hackerstore.nl/Afbeeldingen/753klein.jpg)

@Jos als jij hier je seinen laat zien (of het idee van wat je wilt maken) en een keuze maakt voor de aansturing. Dan kunnen we een shoppinglijstje voor je opstellen als je nog wilt  ;)

Mvg,

Bas





Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 23 juni 2020, 14:19:18
(https://images.beneluxspoor.net/bnls/deleteme2_1.png)
Dit is een plaatje van de schakeling met de pushbuttons met 9 voorbeeld knopjes
Titel: Re: Simpel seinen aansturen
Bericht door: gvandersel op 24 juni 2020, 11:19:03
@bask185,

Waarom niet bv 15 weerstanden in serie tussen de 5V. Op het kruispunt van twee weerstanden een schakelaar. De andere kant van alle schakelaars verbinden met elkaar. Voordeel is dat maar een weerstands waarde nodig is. Aantal weerstanden maakt niet uit.

Groet,

Gerard van der Sel.
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 24 juni 2020, 11:38:23
In mijn opstelling had ik bedacht om bijna gelijke spanningssprongetjes van 0,3V te maken. Ik had een arduino al laten berekenen welke waardes je nodig zou hebben.  Maar daar heb je idd een E24 reeks aan weerstanden voor nodig.

Wat jij bedoelt is geen slecht idee. Je krijgt alleen geen exact dezelfde spanningssprongetjes. Maar dat is geenzins een dealbreaker zijn. En het is wel zo makkelijk.

Dus ik stem voor!  15x 1kOhm en 1x een 7kOhm zou dan wel volstaan.

Bas
Titel: Re: Simpel seinen aansturen
Bericht door: 72sonett op 24 juni 2020, 14:29:05
De absolute grootte van de spanningssprong is niet relevant, neem 15 gelijke weerstanden (1k of zo) en analogRead geeft steeds een getal tussen 0 en 1023. Een open analoge ingang uitlezen geeft een onbepaalde waarde, dus wel een pull up weerstand gebruiken (de interne van 25k of een externe met een hoge waarde, b.v 100k).

Als er geen knop is ingedrukt geeft analogRead de waarde 1023, als Sw15 is ingedrukt geeft het de waarde 0, tussenliggende waarden voor Sw1..Sw14 proefondervindelijk bepalen, de waarde varieert door de pull up weerstand en toleranties van de weerstanden.

(https://images.beneluxspoor.net/bnls/simpelsein.jpg) (https://images.beneluxspoor.net/bnls/simpelsein.jpg)
Titel: Re: Simpel seinen aansturen
Bericht door: Klaas Zondervan op 24 juni 2020, 16:17:17
Is de gelezen waarde goed reproduceerbaar?
Bijvoorbeeld: SW8 geeft een waarde die tussen 517 en 518 zweeft. De Arduino zal dan de ene keer 517 zien en een andere keer 518. Moet je dan niet wat tolerantie inbouwen zodat hij alles tussen 515 en 520 accepteert als SW8?
Titel: Re: Simpel seinen aansturen
Bericht door: bask185 op 24 juni 2020, 17:22:24
Doen we standaard Klaas  ;)

Als we bijvoorbeeld 3 opvolgende waardes hebben, laten we zeggen 400, 450 en 510 dan zeggen we in SW zoiets als:
if ( analogRead( A0 ) > 425 && analogRead ( A0 ) < 480 ) {
    // 2e waarde code
}

Analoge metingen willen ook Wel eens afwijken door de omgevings temperatuur of door de weerstandstollerantie. Analoog inlezen doe je bijna altijd met marges.

Bas
Titel: Re: Simpel seinen aansturen
Bericht door: 72sonett op 24 juni 2020, 17:27:44
Ja, tolerantie moet, maar dat is niet zo moeilijk;

als (ABS(gelezenwaarde - SW8waarde) < tolerantie) dan knop = SW8

bijv. als de analoog ingelezen waarde 517 is en de 'nominale waarde' voor knop 8 is 515, met een tolerantie van 5, dan

als (ABS(517 -  515) < 5) dan knop = SW8

De 'afstand' tussen 2 knoppen is 1023/15 = 68, dus de tolerantie kan nog veel groter genomen worden, max de helft van de afstand.

Maar het kan ook nog anders, alleen wordt de afstand tussen de punten steeds kleiner. Dat is dan wel weer op te lossen door de weerstandswaarden steeds groter te nemen.
(https://images.beneluxspoor.net/bnls/simpelsein2.jpg) (https://images.beneluxspoor.net/bnls/simpelsein2.jpg)
Titel: Re: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 24 juni 2020, 19:59:04
Bas ik zal proberen om jou in of na het weekend een mail te sturen waarin de vragen beantwoord worden. Zinvol deelnemen aan de voorgezette discussie past (nog) niet in mijn competenties.

Een goede groet, Jos
Titel: Re: Simpel seinen aansturen
Bericht door: 72sonett op 25 juni 2020, 13:41:57
In plaats van naar een tolerantie te kijken kun je ook kijken naar de tussenliggende waarde van twee schakelaars. De code wordt dan een stuk overzichtelijker:

waarde = analogRead (A0)
als waarde > 989 dan knop = 0     // 1023, geen knop ingedrukt
als waarde < 989 dan knop = 1
als waarde < 920 dan knop = 2
als waarde < 852 dan knop = 3
als waarde < 784 dan knop = 4
als waarde < 716 dan knop = 5
als waarde < 648 dan knop = 6
.
.
.
als waarde < 102 dan knop = 14
als waarde <  34 dan knop = 15
'knop' wordt steeds overschreven zolang 'waarde' kleiner is.

(https://images.beneluxspoor.net/bnls/simpelsein3.jpg) (https://images.beneluxspoor.net/bnls/simpelsein3.jpg)
Titel: Re: Simpel seinen aansturen
Bericht door: Jos Schnitzler op 28 juni 2020, 17:02:28
Bas, ik stuurde zojuist een BP.

Jos