DCC met Arduino - Introductie
Veel modelspoorwegliefhebbers dromen ervan om hun treinen automatisch te laten rijden. Hiervoor kun je natuurlijk een kant en klare controller kopen. Dat is het meest gemakkelijke. Er zijn meerdere fabrikanten die deze aanbieden. Beginnende bij 500 Euro en oplopend tot ver boven de 1500 Euro. Behoorlijk duur.
Ik vind het leuker om het zelf uit te denken en te maken. Wat zou het mooi zijn om de gehele aansturing van de baan zelf samen te stellen.
Voor onze oplossing gebruiken we een Arduino om de DCC commando's te maken, deze sturen we in 5V uit. Op de baan hebben we 15V nodig. We gebruiken een shield het voltage om te zetten, hiervoor hebben we een extra voeding nodig. En zijn we er, natuurlijk hebben we nog rails, kabels en een locomotief nodig. Hiernaast nog software natuurlijk. We gaan aan de slag.
Ik ben bezig deze installatie nu te bouwen. Dit alles is nog gebaseerd op theorie, aannames en wijze raad van vele kanten. Ik weet dus nog niet zeker of het wel gaat werken! Wacht dus nog even met het na te bouwen!
Voorbehoud
In deze oplossing werk ik met een L298N H-Bridge. Dat is de shield die we gebruiken. Eerlijk is eerlijk, deze is gemaakt met verouderde bipolaire technologie (wat voor veel spanningsverlies zorgt) wat je terugziet in veel warmte.
DCC is een knap veeleisend protocol. De L298N heeft het op hoge frequenties (wisselingen in signaal) moeilijk. In de praktijk zorgt dit ervoor dat de mooie blokgolven van het DCC signaal wat worden afgerond. Deze vervorming kan storingen veroorzaken, omdat de decoder (in de locs) het niet goed begrijpen.
Waarom dan toch deze shield? Tweeledig: ik had hem al en in een testopstelling zal deze voldoen.
Als ik met meer locs wil gaan rijden, dan kan ik de shield upgraden naar een betere motor driver. Uitbreiden is dus niet echt weggooien van het geheel, maar vervanging van het gratis/goedkoopste onderdeel.
Boodschappenlijstje
We gaan de onderdelen die we nodig hebben bekijken en aangeven wat hun functie is in het geheel. Ik ga hierbij uit van een bestaande treinbaan.
  • Locomotief
  • Rails
  • H-brug
  • Externe voeding
  • Arduino Uno (of een ander model)
  • Kabels
Locomotief
De locomotief trekt de trein voort. Hiervoor zit er een motor in de trein. Dit is in de modelwereld een kleine electische motor. Deze loopt dus op stroom. In de analoge wereld geven we direct stroom door aan de locomotief, die daardoor gaat rijden: vooruit of achteruit, hard of zacht. We konden hier niet veel nuance in aanbrengen.
In de analoge wereld geven we direct stroom door van de rails aan de motor. Hierdoor gaat de motor draaien en de trein rijden. Vooruit of achteruit, hard of zacht. Wellicht nog langzaam optrekken en dan versnellen, maar verder was er niet veel nuance in aan te brengen.
In de digitale wereld van DCC, werkt iets anders. We nemen nog steeds stroom af van de rails via de wielen. Verschillend per rails. Dus de wielen hebben ook geisoleerde assen. (Zie de blauwe isolatie in de figuur). We hebben nog steeds een motor. In iedere locomotief plaatsen we een decoder. Dat is een klein minicomputertje die luistert naar de DCC opdrachten en deze dan uitvoert. Maar die doet dat enkel als er specifiek diens naam genoemd is. Als de commando's aangeven dat de trein moet rijden dan zal de decoder stroom (vanaf de wielen) doorgeven aan de motor.
Hieronder een aantal commando's die aan verschillende locomotieven gestuurd zouden kunnen worden. Iedere locomotief kent zijn eigen nummer en zal alleen dan reageren als zijn nummer is genoemd.
Bij het eerste commando zal enkel locomotief met decoder adres 5 gaan rijden. De anderen locomotieven op de baan doen niets, je hebt hun adres immers niet genoemd.
Tegen de locomotief op adres 3 zeggen we te stoppen. De andere treinen blijven stilstaan of op dezelfde snelheid rijden.
Zo zetten we de voorverlichting aan voor adres 4 en spelen een geluid af voor adres 11.
  • Aan locomotief 5: rijd vooruit met snelheid 30
  • Aan locomotief 3: stop
  • Aan locomotief 4: voorverlichting aan
  • Aan locomotief 11: speel stoomfluit af
  • Aan wagon 12: binnenverlichting uit
We kunnen een decoder ook in een personenrijtuig (wagon) bouwen. Dan kunnen we daar de verlichting daarvan met commando's aan of uit doen. Zoals hier voor de decoder op adres 12.
Iedere DCC locomotief moet dus worden voorzien van een decoder. Decoders heb je in verschillende uitvoeringen en prijzen. Een decoder die enkel verlichting hoeft te regelen is natuurlijk goedkoper dan een decoder welke ook een trein zal moeten laten rijden, al dan niet met geluid. Reken op prijzen beginnende bij 30-40 Euro per decoder.
Moderne locomotieven hebben al een DCC decoder ingebouwd. Iets oudere modellen hebben vaak een klein printplaatje met enkele connectors. Hier kun je de stekker van de decoder eenvoudig inpluggen. Aansluiten is dan kinderspel. Heb je een oudere locomotief, dan moet je in de bedrading gaan knippen om de decoder aan te kunnen sluiten. Het kan zelfs zo zijn dat de body van de locomotief meedoet ind e stroomkring, aansluiten is dan lastig. Let hierop als je een loc gaat kopen!
Rails
Treinen rijden over rails. Ook onze locomotief zal zijn rondjes over rails gaan maken.
In de modelwereld zijn er twee soorten rails, 2-rails en 3-rails. Denk even terug aan hoe rails er in de echte (grote) wereld uitziet. Er liggen dan 2 rails naast elkaar. En erboven hangt een bovenleiding (die stroomkabels). In de echte wereld gebruikt men de bovenleiding om stroom naar de locomotief te brengen. Voor een stroomkring, moet stroom ook terug kunnen lopen, en dat doet men via de beide rails, dat is aaarde. De bovenleiding is PLUS, de rails/grond is de aarde (NUL). Dit heeft als voordeel dat je gewoon over de rails kunt lopen zonder stroom te krijgen. De hoogspanningskabels moet je niet aanraken! Dat gaat niet goed.
In de echte wereld heeft men dus een mooie methode bedacht om stroom van en naar de trein te krijgen. In de modelwereld heeft men hier andere methoden voor verzonnen.
In de 2-rail wereld gebruiken we de rails creatief. Op de ene rails zetten we de PLUS, op de andere rails de MIN. Er staat dus stroom op de rails. Verschillende fases ook. Leg je een spijker op de rails, dan maak je kortsluiting en zal de boel kapotknallen. Zoals aangegeven staat er op de ene rails altijd PLUS en op de ander altijd MIN. Dit is gelijkstroom, het wisselt niet.
In de 3-rail wereld vond men 2 rails niet voldoende en heeft men er nog een rails bijgelegd. Tussen de beide rails ligt een nep-rails. De locomotief heeft aan de onderkant een klein koperplaatje (de glijder) die over de 3e rails loopt en stroom afneemt. Op de beide echte rails (buitenste) staat stroom en ook op de binnenste staat stroom. Maar liefst 50 keer per seconde zal de polariteit op de rails veranderen. PLUS zal MIN worden en MIN plus. Dit noemen we wisselstroom.
Bij het aanschaffen van apparatuur is het belangrijk om te weten of je 2-rails of 3-rails hebt. Ik gebruik enkel 2-rails. DCC is ook ontstaan uit 2-rails. Alle merken gebruiken 2-rails, enkel Marklin niet.
Voor degenen die zeggen dat er op Marklin 3-rails banen geen rails ligt met 3 rails, moet ik gelijk geven. Door de jaren heen is de 3e rail steeds verder teruggebracht tot enkel kleine contactpunten (puko's). Deze vallen amper op.
Dat het voor een locomotief van belang is te weten welk systeem het is duidelijk. Een 3-rails locomotief heeft onderop een sleepcontact. Ook voor wagons is het belangrijk. Marklin wagons hebben wielen waarbij de linker en rechter wielschijven met de as aan elkaar zijn verbonden. Deze zijn niet van elkaar geisoleerd. Als je een wagon met niet geisoleerde wielen (assen) op de baan zet, is het alsof je een spijker op de rails legt. Pats! Dus nogmaals: in de voorbeelden hier gebruiken we 2-rails met het DCC protocol, 2-rails locomotieven (zonder sleper) en 2-rails wagons (met geisoleerde assen)
Rails is dus niet alleen van belang voor de wielen om over te rijden, maar ook noodzakelijk om stroom door te geven.
H-brug
In de treinenwereld gebruiken we stroom om de treinen te laten rijden, lampen te laten branden etc.
Hiervoor gebruiken we gelijkstroom. Er zit hierbij een verschil in railspanning tussen de verschillende miniatuurschalen.
    Naam
    Schaal
    Railspanning
    H0
    1:87
    14-16Volt
    N
    1:160
    12Volt
    Ruwweg tussen de 12V en 16V dus. De Arduino die we straks gaan zien, die gebruikt maximaal 5V. Hier hebben we dus een probleem. En als oplossing voor het probleem is er de H-Brug.
    Je kunt de H-brug zien als een doorgeefluik. Aan de ene kant komt er van de Arduino de spanning binnen met hierin opgenomen de DCC commando's. Allemaal op 5Volt.
    De H-brug zet dit om in apnning met commando's op 15V. (of 12V of 16V net wat je wilt). Ik rijd H0 op 15V dus ik laat mijn 5V uit de Arduino om zetten naar 15V op mijn spoorbaan.
    In elektronicakringen noemen we dit een motor-shield. Onze H-brug is dus gewoon een stroomomzetter. En hierdoor lekker goedkoopt te krijgen
    Externe voeding
    De H-brug hierboven zet 5V (uit de Arduino( om in 15V voor op mijn modelbaan. Hiervoor moet deze wel deze spanning aangeleverd krijgen. Hiervoor hebben we een externe voeding nodig. Dit is dus een gelijkspanning voeding die 15V kan leveren.
    Een afweging die je moet maken als je een voeding koopt is hoeveel Ampere de voeding moet leveren. Hoe krachtig de voeding moet zijn.
    Hiervoor gaan we eenvoudigweg tellen. Een H0 locomotief gebruikt 0,3 tot 0,6 ampere en een H0 locomotief met geluid en/of rook gebruikt 0,7 tot 1,0 ampere.
    Een N locomotief gebruikt veel minder 0,1 tot 0,3 ampere. Volgens mijn zijn er nog geen N locs met geluid of rook.
    Een rijtuig (zowel H0 als N) gebruikt 0,05 tot 0,2 ampere
    Als we nu een H0 baan hebben met 3 electrische loc en 2 stoomlocs en 4 rijtuigen met verlichting, dan verbruiken we:
    Stroomverbruikers
    Aantal
    Verbruik/stuk
    Verbruik totaal
    Electrische locs
    3x
    0,6
    1,8
    Stoomlocs
    2x
    1,0
    2,0
    Rijtuigen met verlichting
    4x
    0,2
    0,8
    Totaal
    -
    -
    4,6
    Hier zijn de maximum bedragen genomen. Zo berekend hebben we hier een volle baan met veel beweging en licht.
    Als we kijken naar de centrales van de grote fabrikanten, dan zien we dat de doorsnee centrales van Roco en Digikeijs centrales van rond de 3A hebben en die van Marklin en ESU 5V.
    Er zijn fabrikanten die zwaardere leveren, waaronder ESU en Roco ieder 6A of zelfs Zimo tot 10A, maar dat zijn hele zware centrales.
    Voor ons zelfbouw project heb ik gekozen voor een voeding van Mean Well LRS-75-15. Dit is een 15V voeding met 5Ampere en meerdere kortsluitingsbeveiligingen. Het blijft toch een DIY project, nietwaar.
    • V+ naar de de voedingsaansluiting op het shield
    • V- naar de GND op de shield en Arduino
    • L naar stopcontact 220V
    • N naar stopcontact 220V
    • ⏚ naar stopcontact aarde (optioneel, maar aanbevolen voor veiligheid)
    En altijd: WERK JE MET STROOM DAN DE SPANNING ERAF!
    Je ziet, ik werl met een 15V voeding. De h-bridge heeft een input poort voor 12V. Het is belangrijk dat je de 5V van de h-bridge niet verbind met de Arduino. Dat zal niet goed gaan.
    Mijn L298N heeft een
    jumper regulator
    . Dit is een soort stekker die 2 pins op het bord verbind. Deze zit net achter de blauwe 12V ingangsstekker.
    Als je de jumper eop laat zitten, dan het shield de het 7805 component de stroom ook weer laten omzetten naar 5V. Dat wekt veel warmte op. Bij 12V nog te doen, bij 15V voeding zal het shield hierdoor uitvallen of beschadigen. Buiten dat leveren we 5V aan, dus dit is niet van belang. We
    moeten
    de jumper verwijderen.
    Nooit tegelijkertijd 5V invoeren én de jumper laten zitten — dat kan kortsluiting veroorzaken.
    Wat gebeurt er als je de jumper verwijderd: De 5V omzetter (7805) zal worden uitgeschakeld. Je moet dan zelf 5V aanleveren op de 5V-pin. En dat is ook precies wat we willen.
    De Arduino heb je waarschijnlijk al. Of lees anders het deel Arduino door hier op punthooft.
    Arduino
    Ik heb de Arduino Uno gebruikt. Ik zie anderen de Mega gebruiken. Maar ik ben nog niet tegen de beperkingen van de Uno aangelopen.
    Kabels
    Kabels gebruiken we om de stroom tussen de onderdelen te laten lopen. Let op dat we drie soorten spanning hebben. 230V, 15V en 5V en ook andere stroomsterktes. De isolatie moet geschikt zijn voor de maximale spanning, de kabel moet dik genoeg zijn om oververhitting te voorkomen. Bedenk dat hoe langer de kabel, hoe dikker die moet zijn om spanningsverlies te beperken.
    Ik ga er hier vanuit dat je alles puur binnen gebruikt, in een droge ruimte.
    Voor 5V en tot 2A kun je een Dupont kabel gebruiken tot 0.35 mm² en met PVC isolatie, Let op dat je deze kabels niet lang maakt, het spanningsverlies is relatief groot.
    Voor 15V kun je 0,75mm kabels gebruiken, nu is het spanningsverlies stukken minder.
    Voor 230V, gebruik een geleider van minimaal 1.5 mm²: verlichting en PVC of rubber isolatie geschikt voor meer dan 300 Volt. De draad die normaal aan een lamp of pc-voeding zit.
    Let op, blijf zelf nadenken. Dit zijn aanwijzingen gebaseerd op chatGPT. Vraag na en leg uit wat je gaat doen bij een expert, en vraag diens advies wat je moet gebruiken.
    Aansluitingen
    Een lijstje met aansluitingen diw we voor dcc gaan gebruiken op de H-brug. In de tekening van de H-brug zie je de blauwe vakjes. Erbovenop zit een schroef om kabel vast te kunnen zetten. Vergelijk maar met een kroonsteentje.
    • +12V
    • Dit is de extra voeding die we nodig hebben om het signaal te versterken
    • GND
    • Gemeenschappelijke aarde van de voeding en Arduino. Let op dat GND verbinding van alle onderdelen met elkaar verbonden
      moet
      zijn. Dus de Arduino, de externe voeding en de H-brug moeten dezelfde massa delen.
    • IN1
    • Ingang #1 vanuit de Arduino digitale pin. Dit bestuurt uitgang OUT1
    • IN2
    • Ingang #2 vanuit de Arduino digitale pin. Dit bestuurt uitgang OUT2
    • ENA
    • Enable A, voor DCC zet je ENA op 5V zetten (dit is altijd aan).
    • OUT1
    • Uitvoer naar rails #1, versterkt signaal vanuit IN1.
    • OUT2
    • Uitvoer naar rails #2, versterkt signaal vanuit IN2.
    We zien op IN1 en IN2 de lage spanning commando's naar de h-bridge worden gezonden. Op de +12V en GND komt de voeding binnen. Op de OUT1 en OUT2 komt de voeding voor de modelbaan.
    We willen een schakeling maken waarin alles, je Arduino, de H-bridge en de voeding aan elkaar hangen. Dan moet er een gemeenschappelijke referentie zijn, dat is de GND. Als die er niet zou zijn, dan zouden de signalen gaan zweven, waardoor de logica niet meer werkt en de H-bridge weet dan niet wat HOOG of LAAG is.
    Dus GND van de Arduino = GND van de H-bridge = GND van de voeding voor de motoren.