BeneluxSpoor.net forum
Vraag en antwoord => Elektronica en analoog => Topic gestart door: wee op 13 January 2025, 11:24:40
-
Hallo,
Ik wil een aantal MTB wisselaandrijvingen schakelen met een Arduino.
Heeft hier iemand ervaring mee? Ik weet dat je met een Digikeijs
DR4018 preset: 6 deze MTB kunt schakelen maar hoe doe je dat met
een Arduino dmv relais (12 volt MTB geeft aan voeding 8 tot 16 volt)
of met een mosfet misschien? Ik zou het op prijs stellen als iemand
mij op weg kan helpen.
Alvast bedankt,
Willem
-
Ik zou dat met een mosfet doen, stil en goedkoper dan relais.
Zelf pas ik liever servo’ s toe voor oa wissels, scheelt een stuk in de prijs, en je kunt ze rechtstreeks met arduino aansturen.
Wel de vraag, hoe stuur je de arduino aan? Dan kan prima met DCC maar ook met simpele schakelaars
-
Met mosfets is inderdaad de goedkoopste oplossing. Mosfests die geschikt zijn voor de stroom (150 mA minimaal) kosten letterlijk een paar centen.
Met een gewone bipolaire transistor gaat het ook, die zijn iets duurder.
Een relais kun je volgens mij niet rechtstreeks met een Arduino aansturen, daar moet een transistor voor. Dus dat is de duurste oplossing.
Relais hebben één voordeel, je kunt volstaan met 1 relais met een wisselcontact. Relais onbekrachtigd voor het wissel in de default stand. Relais bekrachtigen voor de afwijkende stand.
Je kunt op een MP1 continu spanning zetten, hij schakelt zichzelf af aan het eind van de slag.
-
Een relais kun je volgens mij niet rechtstreeks met een Arduino aansturen, daar moet een transistor voor. Dus dat is de duurste oplossing.
Is it?
Deze dingen kan je direct aan de arduino pinnen hangen. Ze hebben zelfs nog galvanische scheiding, niet dat je dat nodig heb ofzo :P
(https://images.beneluxspoor.net/bnls_2025/image-6784fa6737f9a.png) (https://images.beneluxspoor.net/bnls_2025/image-6784fa6737f9a.png)
Zijn ook goed voor 8 MTB's
Ik heb ook een PB gestuurd over een setje oude Mosfet printjes die ik jaren geleden maakte en maar niet kwijt raak.
Mvg,
Bas
-
Met de hierboven afgebeelde relais schakel ik mijn MTB motoren ook. Precies zoals beschreven. Relais bekrachtigd wissel op afslaan, niet bekrachtigd wissel rechtdoor.
Werkt perfect en ja kan 16 MTB.s aan een Arduino (DCCNext) hangen. Mits je niks hoeft te polariseren.
-
Als je moet polariseren kan je 2 relais op 1 uitgang aansluiten (voor unifrog wissels). Tenzij je niet aangepaste elektrofrog wissels gebruik. Dan zit je wel op 3 uitgangen per wissel. Ik denk dat 16 motoren op een arduino ook een beetje overkill is. Tenzij je een big-ass wisselstraat heb waar je uitkomt.,., ::)
-
Voor het polariseren zit er een extra contact op de aandrijving zelf.
-
cORRECT.
-
Zou mooi zijn dat je TS reageert, de Arduino moet ook aangestuurd worden
-
Ik gebruik zelf een ULN2803 chip, deze heeft 8 NPN transistors om arduino uitgangen geschikt te maken voor onder andere de MTB aandrijvingen en seinen.
Onderstaand bordje is een arduino mega pro met 24 uitgangen en 24 ingangen waar ik van alles aan knoop :P
Communicatie is met loconet
(https://images.beneluxspoor.net/bnls_2025/IMG-20241230-123953-6785508875a1c.jpg) (https://images.beneluxspoor.net/bnls_2025/IMG-20241230-123953-6785508875a1c.jpg)
-
Iedereen bedankt voor de reacties. Ik ben nu nog op zoek
Naar goede sketches voor de Arduino voor zowel Mosef als
Relais te schakelen. Kan mij iemand links bezorgen waar ik
Die kan downloaden
Alvast bedankt
Willem
-
Alle ArCoMoRa software en files zijn vrij te downloaden. Dan hoef je er alleen nog maar een Powershield bij te maken. Dat werkt prima. https://www.arcomora.com/download/ (https://www.arcomora.com/download/)
-
Het programma voor mijn OSSD (spoel decoder) kan je zo gebruiken. Ik heb hem laatst getest met een MP1, hij onthoudt ook de stand wanneer die uit is geweest. Waarschijnlijk hoef je alleen maar de pinnummering aan te passen naar je eigen voorkeuren. Dat is dit lijsjte aan IO nummers en nog 2 pin nummers voor een Led en configuratie drukknopje.
const int GPIO[] =
{
4, 3, 5, 6, // GPIO01-GPIO04
7, 10, 11, 12, // GPIO05-GPIO08
1, 0, A5, A4, // GPIO09-GPIO12
A3, A2, A1, A0, // GPIO13-GPIO16
} ;
const int nGpio = 16 ;
const int configPin = 8 ;
const int ledPin = 13 ;
Ik kan je een aangepaste versie mailen die op voorhand geconfigureerd is dat hij standaard mosfets (dus dubbele continu uitgang gebruikt) gebruikt. Normaliter zijn dubbele puls uitgangen standaard.
Je kan hem configureren door op een config knopje te drukken (= een schakelaar die je aan de configPin heb hange). En dan kan je door bepaalde wisselnummers aan te sturen, de instellingen veranderen naar single mode. Ik heb daartoe een handleiding.
https://train-science.com/ossd-handleiding/ (https://train-science.com/ossd-handleiding/)
Een relais dat is een single output dat is 'sein' type 2. Voor een PM1 moet je 'sein' type 4 (groen rood sein) gebruiken. Maar nogmaals deze doe ik dan voor configureren.
Je kan ook het dccNext programma gebruiken, maar dat is veel meer instelwerk. En daar moet/wil je waarschijnlijk ook de pinnummering aanpassen. Ook als je wat wilt wijzigen, moet je de arduino perse aan de PC hangen.
Ik heb ook een kale DCC DIY printplaat, om je arduino makkelijk aan DCC te knopen met 3 hele draadjes, 5V, GND en DCC (zit op pin D2). Je arduino dient nog wel extern gevoed te worden.
Dan hoef je er alleen nog maar een Powershield bij te maken
Dit is IMO niet zo'n goed advies omdat je dan nog steeds geen versterkte uitgangen heb. En je moet best veel solderen inclusief al die headers. Dat levert meer werk op dan dat het uit handen neemt.
Mvg,
Bas
-
Willem, ik heb nog geen reactie gezien op mijn vraag: hoe wil je de Arduino aansturen?
Vast niet met schakelaars anders had je de arduino helemaal niet nodig.
Verder zie ik een paar goede suggesties boven.
Zelf heb ik een uitgeklede versie van DCCnext gemaakt. Een arduino chip, connectoren en DCCinput. Makkelijk solderen en goedkoop. Vrij beschikbaar.
-
Great minds think alike, Bert :P
(https://images.beneluxspoor.net/bnls_2025/image-678665b23701e.png) (https://images.beneluxspoor.net/bnls_2025/image-678665b23701e.png)
Ik had deze gemaakt voor een arduino Nano en zo'n IO base shield om servo's (of relais) aan te sturen. Er zit ook zo'n 50 ct buck converter op die je met een whopping 4 solderingen vast zet. Om zo de servo's te kunnen voeden en aansturen vanuit de DCC bus. Het idee was om een combinatie te maken van zo min als mogelijk hand soldeer werk en zo laag mogelijke kosten. Nano's zijn bijna even duur als een DIP atmega. Je hebt meteen USB aan boord, dus dat leek me logisch. Wellicht dat een uln basis voor een nano ook een leuke toevoeging is. Ik kon zo 123 niet even mooie uln2803 op goede breakout boards vinden die ook handig zijn.
Mvg,
Bas
-
Bedankt voor het compliment aan mij en jezelf Bas ::) ;D
-
Iedereen weer bedankt voor de reacties. Ik heb nu Mardec geïnstalleerd op
een UNO en poort 3 geconfigureerd als Accessoire mode: 6, Double One Shot
buddy poort: 4 DCC adres 3. Ik heb alles aangesloten zoals in de handleiding van
Mardec staat voeding 18 volt op de 2 mosfet printjes behalve de 2 diodes/ledjes
die getekend staan in dit schema tussen de blauwe en gele draad en tussen bruin
en blauw. Ik krijg het echter niet werkend wat doe ik fout?
(https://images.beneluxspoor.net/bnls_2025/Schermafbeelding-2025-01-14-203725-6786be81c3369.png) (https://images.beneluxspoor.net/bnls_2025/Schermafbeelding-2025-01-14-203725-6786be81c3369.png)
Om de vraag van Bert te beantwoorden ik gebruik een schema (optocoupler) van Ruud Boer
is een optocoupler met wat weerstandjes en een diode, voor de communicatie tussen mij
Digikeijs DR5000 centrale en de arduino.
Alvast bedankt,
Willem
-
Hebben de mosfet printen een gemeenschappelijk 0V met de Uno?
Anders zweeft de output ervan.
-
MP1s werken niet met een double one shot, die moeten continu geschakeld zijn of tenminste de tijd dat de MP1 nodig heeft om om te gaan. Dat is iets van 3 of 4 seconde ofzo?
Ik weet eigenlijk niet hoe die buddy port precies hoort te werken.
-
.... tenminste de tijd dat de MP1 nodig heeft om om te gaan. Dat is iets van 3 of 4 seconde ofzo?
Zo iets is het. En je moet hem de tijd geven om helemaal om te lopen, anders wil hij niet terug.
-
Je kan ook een heel simpele sketch proberen om allereerst de motoren elektrisch goed aan de praat te krijgen. Want je weet nu niet of het een elektrisch of software probleem is.
Een probleem wat me nu ook te boven schiet. Die arcomora code heeft andere benamingen voor de daadwerkelijke pinnen. P3 hoeft niet noodzakelijk ook arduino pin D3 te zijn. Dat is die volgens mij ook niet.
Maar doe jezelf een plezier en test eerst deze sketch uit: hier heb ik wel pinnen D3 en D4 gebruikt.
const int pin1 = 3 ;
const int pin2 = 4 ;
void setup()
{
pinMode( pin1, OUTPUT ) ;
pinMode( pin2, OUTPUT ) ;
}
void loop()
{
digitalWrite( pin1, HIGH ) ;
digitalWrite( pin2, LOW ) ;
delay( 5000 ) ;
digitalWrite( pin1, LOW ) ;
digitalWrite( pin2, HIGH ) ;
delay( 5000 ) ;
}
-
Bedankt voor de reacties. Als ik de sketch upload hoe schakel ik dan pin3 en 4 zonder DCC
centrale.
Alvast bedankt
-
Deze sketch die ik postte, schakelt pin 3 en 4 automatisch elke 5s om en om, zo kan je testen of je elektronica goed is.
Als je elektronica goed is bewezen, kunnen we opnieuw de mardec software proberen.
Als je helemaal geen DCC wil gebruiken, kan je de arduino altijd nog terug in zijn kastje leggen en schakelaars direct op de MP1s aansluiten :P
Mvg,
Bas
-
MP1s werken niet met een double one shot, die moeten continu geschakeld zijn of tenminste de tijd dat de MP1 nodig heeft om om te gaan. Dat is iets van 3 of 4 seconde ofzo?
Ik weet eigenlijk niet hoe die buddy port precies hoort te werken.
Een MP1 loopt bij 18 Volt om in 750msec. Bij 12 Volt is de omlooptijd circa 1 seconde. dat is dus heel wat sneller als 3 a 4 seconden.
-
Volgens de handleiding moet de voedingsspanning tussen 8 en 16V liggen. 18V is dus iets te hoog. Je kunt inderdaad door de keuze van de spanning de omlooptijd beïnvloeden.
Om zeker te weten dat de slag helemaal wordt voltooid is het aan te raden om de duur van de spanningspuls ruim te kiezen.
-
Bedankt voor de reacties. Ik heb de sketch van Bas geprobeerd en het werkt naar 1 kant als ik de draden
omwissel die links en rechts in de MTB gaan (poz1 en poz2) gaat hij naar de andere kant.
Wat ik ook zie is dat om de Mosfet het smd ledje (midden VCC)
bij het ene bordje feller brand dan bij het ander (zwak). Dus het werkt wel maar hoe krijg ik het nu zo dat ze
beide richtingen schakelen met een DCC adres.
Alvast bedankt,
Willem
-
Nou nog niet, want je hebt naar het schijnt een elektrisch probleem. Met pinnen 3 en 4 moet de motor elke 5s toggelen. Zonder draden te verwisselen, moet hij dus beide kanten op bewegen. Dit moet eerst werken voordat we DCC gaan proberen.
Dus double check the wiring, than triple check it. En plaats gerust een foto.
Mvg,
Bas
-
Of ga meten. Om te beginnen de voedingsspanning op die twee bordjes. Komt die op allebei binnen, en plus/min goed? (ik weet niet of dat laatste belangrijk is).
Meet dan op de MP1 tussen de + en poz1. Daar moet volgens het systeem van Bas steeds 5 seconden spanning staan, en dan 5 seconden niks. Hetzelfde tussen + en poz2.
Dan op de uitgangsklemmen van de bordjes. Hetzelfde: 5 seconden aan, 5 seconden uit.
Vervolgens op de ingangspinnen van de bordjes.
Volg het spoor verder terug, naar de pinnen 3 en 4, ten opzichte van GND.
Uit de resultaten van de metingen zal blijken waar het probleem zit.
Ik heb een donkerbruin vermoeden dat één van die bordjes defect is. Even aangenomen dat je geen bedradingsfout hebt gemaakt.
-
Bedankt alweer voor de reacties. Het ene bordje is idd defect denk ik heb het nu vervangen en het werkt.
Het mechanisme beweegt nu op en neer van links naar rechts en terug. Maar dat is misschien de bedoeling.
Nu nog 1 enkele beweging naar links of naar rechts en aangestuurd met DCC.
Alvast bedankt
Willem