Treinbesturing adh Aruino

Vrienden,
ik ben bezig met de bouw van een automatisch besturing voor mijn treinbaan.
Daarvoor heb ik een Arduino Mega 2560 als hoofdboard gebruikt en 2 extra Arduin Uno's als input borden.

De Arduino Uno's dienen enkel om signalen van de treinen op te vangen (via optocouplers) en door te sturen naar de arduino Mega (1 poort van de uno is telkens met 1 van de Mega verbonden).

De Mega op zijn beurt bestuurt 20 relais zodat sporen en wissels onder stroom komen te staan (18V wisselspanning).
Verder zijn er enkel nog wat drukknoppen en leds aangesloten op de Mega.

De opstelling is reeds volledig opgezet, code is geschreven en alles is in proefopstelling gestest en OK.

ondertussen heb ik de nodige prints gemaakt en zijn deze aangesloten op de arduino's voor de definitieve opstelling.

De volgende stap in de opstelling was het aansluiten van de wissels op de relais (voor de relais maak ik gebruik van module kaarten 5V met 8 relais per kaart).

De wissels worden aangedreven met een 18V wisselspanning transformator van Marklin.
De relais kaarten en optocouplers hebben een eigen 5V voeding,
De arduino's worden gevoed met een 7.5V voeding

Nu blijkt dat als ik de opstelling onder stroom zet de Arduino Mega na enkele sec steeds gereset wordt en terug opstart. Als ik de Marklin transfo ontkoppel en heropstart, dan lukt alles perfect.

Ik heb reeds geprobeerd met 2 condensatoren (100nF en 10µF) te plaatsen op de voeding van de Arduino's, maar het probleem blijft bestaan.

Iemand een idee hoe ik dit kan oplossen ?

IS die marklin transformator volledig ontkoppelt? Of heb je de GND van de Arduino aan een van beide polen hangen?

heb je een schema?
en dan vooral van de bezetspoormeldingen (is een beetje trickie), en uiteraard van de voedingslijnen, in het bijzonder die op de relaisprinten, met die jumpers.
verder is aarding (ofwel wat ligt er allemaal aan de nul belangrijk,)
en anders kom ik graag een keer met treintje spelen hoor.
een mega kan niet elke uitgang met ledstroom voorzien hoor, dus even opletten wat je er allemaal aanhangt.
een betere oplossing is de uln2803 ertussen.

heb je die optocouplers op de uno zitten en dan de uno zet elke pin direct door naar een andere of gebruik je bijv. I2C, dat spaart enorm aan pinnen.

@Nico,
de Mä Transfo is in theorie niet verbonden met de arduino's (momenteel nog niet daar de detectie nog niet opgezet is).
De wissels worden via de relais bestuurd en deze heb ik gisteren nog uitgemeten, er is geen connectie op de massa tussen de in en uitgang van de relais.
De Mä transfo is een wisselspannings transfo. Ik heb deze al vervangen door een gelijkstroom versie en dan is het beter. Het is enkel bij het opstarten dat de mega dan continu reset, als ik de transfo enkele sec later aansluit, dan werkt het wel en blijft het ok. Met de wisselspanning reset de Mega na een tijdje opnieuw.
Ik heb op de wisselstroom versie reeds een diodebrug geplaatst, maar steeds het zelfde probleem. Na het plaatsen van de diodebrug heb ik echter de massa's niet verbonden, mss moet ik dit ook nog eens proberen.

@Shooter,
komen treintje rijden lukt nog niet zolang mijn besturing niet klaar is :slight_smile: Maar steeds welkom.
Er is slechts 1 van de 3 uno's met de mega verbonden via I2C, dit is voor de output naar een LCD scherm. De input heb ik via digitale poorten gedaan (of analogen, maar dan digitaal gedefinieerd). Mss dat ik in de toekomst alles aanpas zodat er enkel nog via I2C communicatie is (maar dat zal niet voor direct zijn)

De proefopstelling werkte (zonder wissels aan te sluiten op de relais), ik moet ook toegeven dat ik nog geen weerstanden had geplaatst tussen de Leds en de Mega. Zou het kunnen dat ik dan teveel stroom verbruik? Er worden continu 28 uitgangen (zowel digitaal als analoge (als digitale output) gebruikt voor de LED's. en deze zijn allemaal voorzien van weerstanden van 470 of 220 Ohm (220 waar 2 leds in serie staan). Momenteel zijn er nog geen leds aangesloten (besturingspaneel moet nog gemaakt worden), maar in de proefopstelling was dit wel het geval.

Verder, de massa van de 3 UNO's, de Mega, de 3 relais kaarten (2x8 en 1x 4 relais) en de 10 optocoupler kaarten zijn allemaal verbonden.

Voor de detectie ga ik de 18V wisselstroom via diodebrug koppelen aan de optocoupler (dit gedeelte moet ik ook nog maken). Hier gaat dus ook de massa aangesloten worden aan alle andere.

In bijlage het schema (niet 100% in orde, de optocoupler en relais kaarten heb ik nog niet gevonden in Eagle).

Indien gewenst kan ik de code ook nog opladen.

Hier aangepast schema:

hoewel het schema slecht te lezen is, hoop ik wel dat je de relais via een driver aanstuurt. anders gaat het zeker fout. De relais spoelen hebben een eigen driver nodig anders trek je veel te veel stroom van de regulator. En met die leds geldt een beetje hetzelfde verhaal.

allereerst de wisselspanning wisselspanning laten , want de wisselspoelen kunnen niet tegen gelijkspanning dan branden ze snel door.
zeker weten dat er eindschakelaars in de wissels zitten, anders ook weer doorbranden.

en zoals nico aangeeft, ja je trekt een beetje veel uit je mega.
overweeg uln2803 (op de relaisbordjes zitten die, maar door de optocoupler ervoor, trekt het toch weer veel stroom.
en een optocoupler heeft eigenlijk helemaal geen zin daar, want de relais zijn toch al gescheiden.
hier zou voor alle relais trouwens of I2C (fpc8574) of 595 prima idee zijn. dan lopen er nog maar 5 draadjes naar alle wisselbordjes.
[http://www.element14.com/community/servlet/JiveServlet/download/122298-150455/Element14%20ALL%20CAD%20files.zip](http://"http://www.element14.com/community/servlet/JiveServlet/download/122298-150455/Element14 ALL CAD files.zip")
daar staan zeker optocouplers in.

@Nico,
ik heb geen drivers gebruikt voor de relaiskaarten, ik zal dit even moeten opzoeken en bekijken.

@shooter
De optocouplers zijn niet verbonden met de relais kaarten.
De relais dienen enkel als output, deze voorzien de wissels gedurend 150 mSec van stroom zodat deze omschakelen.
De optocouplers, dat verbonden zijn met een Uno, worden enkel gebruikt als input, deze detecteren een locomotief op het spoor. Deze uno geeft het signaal gedurende 2 sec door aan de Mega.

philippe_007:
@Nico,
ik heb geen drivers gebruikt voor de relaiskaarten, ik zal dit even moeten opzoeken en bekijken.

Dan valt het me uberhaupt nog mee dat het goed gaat. Ze trekken nu eenmaal teveel stroom

philip,maak een schema met 1 relais, gewoon van alles 1 dat werkt verhelderend.
en stur de eagle file maar dan kan nico meekijken zonder bril.

Wat ik mis over de relais(spoelen) zijn de diodes.
In het optocouplercircuit op wisselspanning, zou ik deze minimaal enkelfasig gelijkrichten en zorgen voor een condensator.

Voor de rest ziet het schema er wel goed uit en zie geen vreemde dingen.

Zoals je al zegt, in testfase (niet aan de baan) werkt het en aangesloten niet.

Ontkoppel het optocouplercircuit eens en kijk dan nog eens. Imo zit het in die hoek.

Je mag de Sketches wel delen of via pm sturen, dan maak ik hier een opzetje met een enkele relaiskaart om eens te zien of ik het kan reproduceren.

In bijlage de sketches, het stukje naar de display is nog niet 100% correct, dit is voor later, eerst zorgen dat mijn problemen zijn opgelost :slight_smile:

ivm de drivers voor de relaiskaarten, daar heb ik op het net niet veel voor gevonden. Als er iemand even een link of vb sketch kan delen dan kan ik dit even uitzoeken.

@Erwin
Voor de optocouplers komen er diodebruggen. Een condensator had ik niet voorzien, maar dat zal ik dan ook best doen.
De optocouplers zijn van het type: "Optocoupler Module LM393 Comparator Slot" speciaal voor Arduino. http://www.aliexpress.com/item/J34-Free-Shipping-3-3V-5V-Slot-Type-Optocoupler-Module-LM393-Comparator-Slot-Type-For-Arduino/32402018702.html
Deze zijn momenteel nog niet verbonden met de baan.

De relaiskaarten dat ik gebruik zijn: http://www.aliexpress.com/item/Free-shipping-With-optocoupler-8-channel-8-channel-relay-control-panel-PLC-relay-5V-module-for/32251735175.html
Deze zijn wel reeds verbonden met de wissels. Sinds dien heb ik ook problemen, dus ik vermoed dat het probleem zich daar situeert. En dit vind ik raar, daar de wissels via de relais worden aangestuurd en dus niet rechtstreeks in contact komen met de arduino's.

Een schema met 1 relais en optocoupler in bijlage

Alvast allen bedankt om mee te denken.

Arduino1_InputSporen.ino (3.2 KB)

Arduino2_InputSporen.ino (1.09 KB)

Arduino3_LCD.ino (1.29 KB)

Schaduwstation.ino (26.3 KB)

De optocouplers zijn lichtsluisen en een gesloten circuit. Zit al een condensator van 104 over de voeding heen.

Moet hem in de relaiskaart zitten verwacht ik. Ga er eens mee spelen. Heb van de relaiskaart de versie liggen hier http://www.miniinthebox.com/nl/keyestudio-8-way-relais-5-v_p4519218.html die nagenoeg hetzelfde is op de TTL jumper na die jij wel hebt.

Ik heb nog andere types relaiskaarten liggen, ik zal eens met deze kaarten testen.

ik bedoelde eigenlijk het stukje schema van de relaiskaart en hoe je die verbonden hebt.
de wisselspanning komt uiteraard alleen op de contacten van de relais dus dat is geen probleem.
maar de relais hebben ook een flinke 5 Volt voeding nodig. daar is die jumper voor op het relaisbordje, dat kun je nooit halen uit een mega, dat moet een aparte voeding zijn van 1 Ampere of zo afhankelijk van hoeveel relais er aan staan.
(bij jou niet veel, want jij stuurt ze in puls aan. nadeel is dan wel dat je geen terugmelding of ledsignalering kunt gebruiken.

Als hij met die relais kaarten werkt klopt er helemaal geen bal van het schema.....

shooter:
ik bedoelde eigenlijk het stukje schema van de relaiskaart en hoe je die verbonden hebt.
de wisselspanning komt uiteraard alleen op de contacten van de relais dus dat is geen probleem.
maar de relais hebben ook een flinke 5 Volt voeding nodig. daar is die jumper voor op het relaisbordje, dat kun je nooit halen uit een mega, dat moet een aparte voeding zijn van 1 Ampere of zo afhankelijk van hoeveel relais er aan staan.
(bij jou niet veel, want jij stuurt ze in puls aan. nadeel is dan wel dat je geen terugmelding of ledsignalering kunt gebruiken.

De relaiskaarten hebben een afzonderlijke 4,5V 1A voeding.
De massa van deze voeding, de relaiskaarten, de arduino's en de arduino voedingen zijn allen met elkaar verbonden.
De arduino's hebben een 7,5V 1,5A voeding.

verder is zijn de poorten zo verbonden:
Relais Mega
Kaart Relais Poort
1 1 2
1 2 3
1 3 4
1 4 5
1 5 6
1 6 7
1 7 8
1 8 9
2 1 10
2 2 11
2 3 12
2 4 A13
2 5 14
2 6 15
2 7 16
2 8 17
3 1 18
3 2 19
3 3 A14
3 4 A15

in de setup() zijn de analoge poorten als volgd gedefinieerd.

pinMode(A13, OUTPUT);
pinMode(A14, OUTPUT);
pinMode(A15, OUTPUT);

digitalWrite(A13, HIGH);
digitalWrite(A13, HIGH);
digitalWrite(A13, HIGH);

Enkel de 8 relais van relaiskaart 1 en 2 relais van relaiskaart 2 verbonden met de wissels. Analoge poort 13 zit daar dus tussen.

zoek uit hoe de jumpers in elkaar zitten. en dus hoe loopt de stroom.

Vandaag heb ik de arduinos voorzien van een nieuwe gestabiliseerde voeding van 9V en de relais kaarten van een 5V gestabiliseerde voeding.

Nu starten de Arduino's perfect op, maar na enkele minuten dat ik wat treinverkeer simuleer krijg ik opnieuw een reset. Ik heb zo'n vermoeden dat een van de optocouplers het probleem is.

Ik heb de code tijdens mijn vakantie zo aangepast dat ik nu bepaalde sporen kan afkoppelen (vb als een wissel het zou begeven op een beurs). Ik ga deze week wat testen met een spoor en zo opbouwen tot de 8 kunnen gebruikt worden. Hopelijk vind ik zo het probleem.

ik heb het vermoeden dat de relaiskaarten (eigenlijk de optocouplers daarvan, teveel stroom uit de mega trekken) zeker als je veel relais tegelijk aan hebt staan. dan houd je mega gewoon op, want die wordt te heet.
maak een schets van de verbindingen en een paar fotos
uiteraard wil ik best een keer met je treintje spelen, nou ja beetje afhankelijk van waar je het baantje staat.
Hoeveel stroomkringen heb je?