Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Dat overkomt mij niet. door wob
Vandaag om 17:48:21
Chinese prut kabel door BrightonBelle
Vandaag om 17:48:10
Aachenau West door Wim Vink
Vandaag om 17:47:51
BMB 00-Modulebaan, BMB-Rijdagen en BMB-Deelname aan Beurzen & Evenementen door BrightonBelle
Vandaag om 17:30:54
Ronald doet de Fork Challenge! door Klaas Zondervan
Vandaag om 17:11:20
LED / Lampjes (Viessmann) seinpalen aansturen. Vraagje aan electronica experts door bask185
Vandaag om 16:11:41
Mijn eerste H0-modeltreinbaan in aanbouw door Benrail
Vandaag om 16:02:05
Piko 1136 van AC naar DC door saskia
Vandaag om 15:55:57
BMB-Module: “Corfe Castle Station” door Ferdinand Bogman
Vandaag om 15:43:38
BR-18.6 Schaal-0. door Benelux795
Vandaag om 15:43:00
Raadplaatje door hervé
Vandaag om 15:36:58
Welke kleur is Roco oud bruin? door Bahn-AG
Vandaag om 15:17:45
Mooi weer om buiten te spelen door hervé
Vandaag om 14:58:05
Seuthe gaat stoppen door Rob Ellerman
Vandaag om 14:09:28
Station Roodeschool door Torikoos
Vandaag om 13:59:41
RhB 1:87, terug naar 25 jaar geleden door Jan Bennink
Vandaag om 13:42:30
Lokpilot 4 defect door bellejt
Vandaag om 13:27:01
Swalbenburg, N modulebaan door NS264
Vandaag om 13:02:57
Overstap naar HTM door Ronald Halma
Vandaag om 12:43:13
Wie heeft er ervaring met een baan in een inpandige garage in een app. gebouw? door Karben
Vandaag om 12:32:15
Toon hier je nieuwe (model-) spooraanwinst(en)... door Stefan88
Vandaag om 12:23:25
lampjes in huizen willekeurig schakelen door Bert55
Vandaag om 12:17:17
De bouw van mijn modelbaan in Thailand door thevandijks
Vandaag om 12:13:11
"Spoor op Vleugels" in H0 door Pinkelpa
Vandaag om 11:40:32
Microstepper motoren voor armseinpalen door Albert de Heer
Vandaag om 11:33:22
US diorama in H0 door puntenglijder
Vandaag om 10:54:45
DCC-decoder geïntegreerd in sein(voet) door schipcas
Vandaag om 10:21:06
Wèhnich - Eén onbeduidend baantje op 1200 bij 1200mm door Laenderbahn27
Vandaag om 09:55:11
Op zoek naar een club gespecialiseert in Britse modellen door MOVisser
Vandaag om 08:55:27
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
26 July 2025, 23:18:40
  

Auteur Topic: Arduino DCC decoder  (gelezen 24118 keer)

schillet

  • Offline Offline
  • Berichten: 24
Re: Arduino DCC decoder
« Reactie #45 Gepost op: 14 March 2014, 13:35:27 »

Nu lees ik ook veel over het willen schakelen van puntstukken. Hoe willen jullie dit gaan doen? Zelf ook wel eens zitten denken maar het grootste "probleem" is dat de decoder niet weet ik welke stand de wissel staat bij het inschakelen.  Je zou natuurlijk een bi stabiel relais kunnen gebruiken maar deze zijn veeeeeel duurder dan twee mono stabiel relaisjes. Zet je de wissel bij inschakelen in een vaste positie? En uberhaupt, waar ga je vanuit waar de wissel staat bij het inschakelen, die is van belang hoe je het PWM signaal laat zijn bij het inschakelen. Of laten jullie hem in 1 keer naar de start positie knallen? (In 1 keer de duty cycle waar je hem wilt hebben, resultaat, servo gaat daar met maximale snelheid en kracht heen.)


dat is inderdaad een probleem; maar hoe lost de Digirails servo decoder dat dan op? I.e. die heeft ook schakeluitgangen om hiermee met behulp van extra relais schakeling (die dus aangestuurd wordt door de Digirails) de hartstukpolarisatie te wijzigen.

Wellicht zou je bij het inschakelen (opstarten) van het geheel alle wissels in een bepaalde positie laten zetten, welke dan kan worden uitgelezen door de centrale; zodat je altijd zeg maar een initialisatie doet bij het opstarten van de installatie? -> dat is eigenlijk wat jij ook min of meer bedoelt denk ik. Hoe dan te programmeren weet ik nog niet (i.e. 'knallen' naar 1 positie); wellicht kwestie van gewoon uitproberen wat er gebeurt?

« Laatst bewerkt op: 14 March 2014, 13:40:18 door schillet »

Fritsprt

  • Offline Offline
  • Berichten: 2615
Re: Arduino DCC decoder
« Reactie #46 Gepost op: 14 March 2014, 13:39:34 »
Hallo Timo,

Of het zinvol is om 40 wissels aan te sturen moet ieder voor zich weten. Op de meeste banen zullen er niet zo veel zijn. Persoonlijk denk ik dat het ook handiger is om het in groepjes op te delen. Bijvoorbeeld 8 wissels op één decoder zodat de draden naar de servo's niet verlengd hoeven te worden.

De servo controller (maar ook een Arduino of AVR) stel je gewoon in op de gewenste standen. Daarnaast moet je de servo d.m.v. verenstaal met de wissel verbinden. Daarmee is zekergesteld dat de wissel altijd netjes in de gewenste eindstand staat met enige veerdruk en kan ook nog opengereden worden hoewel dat niet aan te bevelen is als je het puntstuk polariseert.

Ik kan een beetje programmeren in C maar als je die DCC programma's ziet dan kom je ineens allemaal opdrachten tegen die je nooit geleerd hebt. Ik kan je zeggen dat het dan niet meevalt om een bestaand programma even aan te passen. Maar het is wel een leuke puzzel/hobby (vind ik) om het uit te zoeken.

Volgens mij komt de stand van het wissel (van de servo dus) altijd overeen met de relaisuitgang van het puntstuk. Het is wel zo dat bij inschakelen de servo naar zijn beginstand loopt. Ik zal het voor de zekerheid eens gaan controleren.

De Arduino is inderdaad als testomgeving bedoeld hoewel m.b.v. een universele shield kan je er een betrouwbare schakeling van maken. En voor de prijs van een kloon kan je bijna niet zelf een print gaan maken.
Maar dat is volgens mij ook het leuke van de hobby, dat iedereen de dingen op zijn eigen manier kan doen!
Groet Frits

Fritsprt

  • Offline Offline
  • Berichten: 2615
Re: Arduino DCC decoder
« Reactie #47 Gepost op: 14 March 2014, 13:42:01 »
Citaat
Wellicht zou je bij het inschakelen (opstarten) van het geheel alle wissels in een bepaalde positie laten zetten, welke dan kan worden uitgelezen door de centrale; zodat je altijd zeg maar een initialisatie doet bij het opstarten van de installatie?

Dat is volgens mij makkelijk te doen. dan begin je dus altijd met een uitgangspositie. Volgens mij is het altijd een probleem met computergestuurde banen. Waar staan de treinen na het inschakelen? Wat is de stand van de wissels?
Volgens mij raken we nu offtopic................ ;)
Groet Frits

schillet

  • Offline Offline
  • Berichten: 24
Re: Arduino DCC decoder
« Reactie #48 Gepost op: 14 March 2014, 13:48:37 »
ik heb ook pas geleden zo'n digirails met 4 servo'tjes gekocht; ik vond dat nog best prijzig, vooral omdat die servo's uit China (volgens mij exact dezelfde) 2 euro kosten. Enfin, ik had het idee om het gedrag van die digirails dmv een Arduino min of meer na te bootsen; het gedrag is universeel derhalve niet een probleem qua copyrights of zo.

Ik denk er al veel over na, maar moet gewoon eens beginnen met echt testen en programmeren, daar ben ik nog niet aan toe gekomen.
« Laatst bewerkt op: 14 March 2014, 13:50:57 door schillet »

Fritsprt

  • Offline Offline
  • Berichten: 2615
Re: Arduino DCC decoder
« Reactie #49 Gepost op: 14 March 2014, 13:52:45 »
Pas maar op!
Als je begint is het verslavend....... ;D
Groet Frits

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino DCC decoder
« Reactie #50 Gepost op: 14 March 2014, 14:54:02 »
Maar terug laten lezen door de centrale klinkt makkelijk, maar hoe wilde je dit doen ;)

Ik snap dat je hem met veerstaal aan de wissel maakt, maar dat verandert niet dat je niet weet hoe hij staat als je de boel aan zet. Stel dat de wissel afbuigend staat en het relais moet dan bekrachtigd zijn om het puntstuk van spanning te voorzien. Stuur je bij aan gaan geen signaal naar de servo en je laat de servo onbekrachtigd dan heb je sluiting op je puntstuk. Stuur je in het begin ook een signaal naar de servo voor rechtdoor dan gaat de servo met een behoorlijke klap naar de andere kant, iets waar ik niet zo blij mee zou zijn. En het probleem van even kortsluiting blijft. De Digirails (Whaa, Digikeijs, raaaare naam  ::) ) kent ook geen uitgang voor een puntstuk. Wel hebben ze een extra schakel uitgang waar ze spreken dat je er een puntstuk relais op aan kunt sluiten. Maar ook hier vraag ik me af wat deze decoders doen met inschakelen...

Een optie zou zijn om bij het inschakelen alle servo's direct het signaal van de middenstand te geven, de servo's "knallen" hier dan heen om vervolgens naar de ingestelde positie te gaan. Maar of dit snel genoeg is... Ook hou je een abrupte servo beweging met inschakelen.

Zelf ben ik daarom wel fan van een micro schakelaar voor het puntstuk. Geen geklooi met elektronica en schakel problemen. En voor de prijs hoef je het ook niet te laten. Alleen even afstellen.

Blijf je met het probleem zitten dat je niet weet vanuit welke stand je begint met de servo te sturen, met een "knal" naar de eerst gestuurde positie tot gevolg. Je zou dit natuurlijk naar EEPROM kunnen schrijven maar of die blij wordt van alle schrijf acties  ;D Wat mij een mooie oplossing lijkt is een extra buffer condensator voor de uC te plaatsen die alleen de uC kan voeden en een interrupt aan de ingang van de voedingsspanning. Kan je een shut down/power out detecteren en toch nog even snel de standen weg schrijven naar EEPROM  8) Een schrijf actie per shut down is nog wel te overleven.


Timo
Verzonden vanaf mijn desktop met Firefox

dimo1_dimo1

  • Offline Offline
  • Berichten: 3380
Re: Arduino DCC decoder
« Reactie #51 Gepost op: 14 March 2014, 19:47:17 »
Nadeel van eeprom is dat het een maximum aantal keer schrijven heeft, dus naar verloop van tijd moet je je microcontroller vervangen dan of een losse eeprom eraan
groeten,
Auke

memen

  • Offline Offline
  • Berichten: 228
  • Märklin H0 - digitaal
    • LocoNet Bedieningspaneel
Re: Arduino DCC decoder
« Reactie #52 Gepost op: 14 March 2014, 20:05:53 »
Als je het alleen bij afsluiten doet...

Een miljoen keer afsluiten krijg je in een leven niet voor elkaar denk ik.

Groeten,

Rauke

Verstuurd van mijn GT-S7500 met Tapatalk

DB 1970 - Esu Ecos I - S88 - Zelfbouw LocoNet Bedieningspaneel - DCC, RailCom, Motorola, mfx

Fritsprt

  • Offline Offline
  • Berichten: 2615
Re: Arduino DCC decoder
« Reactie #53 Gepost op: 14 March 2014, 20:39:36 »
Citaat
Je moet eerst de library importeren via menu item "sketch" -> "Import library" -> "add library",

Op deze wijze installeren werkte dus niet. Alles verwijderd en gewoon met de hand alle bestanden in de library gezet.........en het werkt   (y)
Groet Frits

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino DCC decoder
« Reactie #54 Gepost op: 17 March 2014, 09:59:49 »
Daarom is mijn idee dit alleen bij afsluiten te doen, dan moet het EEPROM het wel een tijd overleven. Nu heeft een Arduino een EEPROM die helaas een factor 10 keer zo weinig schrijf bewerkingen kan hebben als een PIC (pic16f828a => 1.000.000)). Maar je kan bij Arduino dus minimaal 100.000 keer schrijven. Stel dat je 10 keer per dag je baan uit zet en ook echt iedere dag rijdt. Dan kun je 100.000 schrijven / 10 keer schrijven per dag = 10.000 dagen = ruim 27 jaar voor het EEPROM stuk gaat. lijkt me meer dan voldoende :) Je kan zelfs nog in je code kunnen checken of de stand überhaupt anders is bij het uitschakelen dan bij het inschakelen en alleen dan schrijven. Scheelt weer grofweg de helft van het aantal keer schrijven. 50 jaar meer rijden :D De info in het EEPROM is dan te gebruiken bij het inschakelen voor de stand van het relais en je weet ook vanaf welke duty cycle / positie je de servo moet aansturen.

Let op bij Arduino Library, zet gedownloade / zelf geschreven libraries in de library map in je sketchbook en niet van de map waar de arduino.exe staat. Zo heb je geen probleem / hoef je niets te doen als je een nieuwe versie van de Arduino IDE gaat gebruiken.

Om kortsluiting met de wissel te voorkomen zou je natuurlijk de zijkant van de tongen gewoon kunnen schilderen. Zo kan de tong, ookal is hij verkeerd gepoolt, geen kortsluiting maken.


Timo
« Laatst bewerkt op: 17 March 2014, 10:08:11 door Timo. Reden: last van autocorrect »
Verzonden vanaf mijn desktop met Firefox

gvandersel

  • HCC!m maar toch Selectrix (RMX)
  • Offline Offline
  • Berichten: 3603
  • Als het maar elektrisch is.
    • Homepage Gerard van der Sel
Re: Arduino DCC decoder
« Reactie #55 Gepost op: 17 March 2014, 16:12:03 »
Na inmiddels een jaartje hun werk gedaan te hebben:
Na inschakeen servos in de middepositie zetten en zorgen dat puntstuk spanningsloos blijft (kan pas spanning op komen als er voeding is en als de micro er een commando voor geeft). Hierna de servo naar een van de standen (ik heb gekozen voor rechtdoor) en na aankomst daar puntstuk inschakelen. Hierna mag iets of iemand het wissel goed leggen.

Groet,

Gerard van der Sel.
Holzburg (IIIb/IVa) schaal N.
Kijk ook eens bij de bouw en lees de avonturen.

RocoMarcel

  • Nieuwe gebruiker
  • Offline Offline
  • Berichten: 3
Re: Arduino DCC decoder
« Reactie #56 Gepost op: 17 March 2014, 17:51:13 »
Hallo Timo,

Of het zinvol is om 40 wissels aan te sturen moet ieder voor zich weten. Op de meeste banen zullen er niet zo veel zijn. Persoonlijk denk ik dat het ook handiger is om het in groepjes op te delen. Bijvoorbeeld 8 wissels op één decoder zodat de draden naar de servo's niet verlengd hoeven te worden.


(Mogelijk alternatief antwoord... :-)

Ik ben bezig om dit op lossen via KaKu draadloze communicatie. Ik wil uiteindelijk op de baan alleen maar de "voedingsspanning" voor de rails en 5V voor de Arduino's, Servo's, Leds... (ringleiding van 4 draden)
a) Bespaart me een enorme brij aan spaghetti (Kabels); ja, je kan ze mooi bundelen maar bij iedere wijziging zit je daar weer aan te "rommelen".
b) Onderdelen van de scenery kan je "clusteren"; m.a.w., iedere speciale aankleding van de baan (bijv. een hijskraan), bedien je draadloos. Overal maar 4 draadjes naar toe (en dat is dan een ringleiding)
c) Kabels zijn beslist niet goedkoop! Zeker niet in de hoeveelheid die wij nodig hebben :-)
d) bijna alle functies die we nodig hebben kunnen "eenvoudig" geprogrammeerd worden.
e) er bestaan "mini" versies van de Arduino (bijv. ATTiny die je makkelijk kan inbouwen in een grote loc of wagon)
f) als het niet helemaal naar je zin is, dan kan je via het programma (uhh... moet je wel zelf schrijven) eenvoudig wijzigen.
g) het kost bijna helemaal nix....
h) je hebt automatisch een backup van alle instellingen en programma's op de computer :-)

Etc...

Maar boven alles... Het is zo leuk!!! (Eigenlijk voor mij de enige echte rechtvaardiging :-))

Bezetmelding met: Utrasoon... (als ik 5 cm meet dan rijdt de trein rechtsom, als ik 1 m meet, dan dus linksom :-)
Capacitatief detecteren van een loc, of wagon..
Atmel85 chip (Arduino compatible) een IR-Led laten aansturen in loc; de ontvanger in de baan weet dan welke loc het is.. etc..

Etc

Groet,

Marcel
« Laatst bewerkt op: 17 March 2014, 20:32:45 door Ronald Koerts. Reden: even de quote gerepareerd. »

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino DCC decoder
« Reactie #57 Gepost op: 17 March 2014, 20:45:56 »
Draden scheelt het zeker, maar daarom is er dus al DCC, gaat de info via die draden... Maar jij gaat dus voor een eigen standaard. Zelf ben ik geen fan van draadloos. Dit omdat de lucht al erg vol zit en de kans op storing groot is enz. Trek ik liever een extra kabel. Wil je een eigen protocol en stabiel over lange afstanden is protocol ideaal. Kan over een simpele netwerkkabel. En ik weet zeker dat het goedkoper en betrouwbaarder is dan alles draadloos te doen.

Ook zeg je twee ringleidingen te willen gebruiken. Let op drie dingen:
1) Let op de vermogens. Soms kan het handig zijn deze over meerdere kleinere voedingen te verspreiden. Heb je geen "single point of failure" en doordat je per sectie minder vermogen laat lopen kan je af met dunnere kabels en dat kan idd flink schelen! Per deel van de baan hoeft maar 1 van de meerdere kleine voedings ringleidingen er te zijn dus kwa draadlengte ga je er niet op achteruit. (Okay, misschien voor de 230V naar de trafo's, maar een stukje 1mm2 voor de trafo's kost minder dan een ringleiding van 4mm2 of meer om het vermogen aan te kunnen.  ::) Je spreekt over een grote baan dus ga even uit van het ergste :p
2) Let op de ground. Wordt deze in de systemen gedeeld? Met andere woorden, deel je de arduino massa met de stuur massa? Waarschijnlijk wel. Je kan dan af met 1 massa draad. Scheelt een kabel en je hebt geen (vervelende!) aardlus. Veel vermogen zullen de arduino's niet gebruiken maar als je daar wel bang voor bent zou je deze ene massa draad een slagje dikker kunnen nemen.
3) Je hebt het over een ringleiding van 5V voor de Arduino's. Ik kan je vertellen, dat is vragen om problemen. Dit omdat je altijd wat fluctuatie op zo'n lijn hebt en deze komt dan direct bij de voeding van de Arduino terrecht. Beter is dus om de spanningsregelaar van de Arduino zijn werk te laten doen en de Arduino's te voeden met 9V of 12V. Op deze manier vangt de spanningsregelaar op de Arduino mogelijke fluctuatie op en blijft de boel stabieler. Eventueel zou je zelfs alles uit 1 leiding kunnen voeden, scheelt je weer een ringleiding ;) Weet alleen niet welk voltage je voor aansturing wilt gebruiken want je moet natuurlijk wel binnen de grenzen van de Arduino spanningsregelaar blijven.


Timo
« Laatst bewerkt op: 18 March 2014, 14:46:41 door Bert van Gelder. Reden: URL gerepareerd »
Verzonden vanaf mijn desktop met Firefox

Robert E

  • Offline Offline
  • Berichten: 909
    • Robert’s Modelspoor Pagina
Re: Arduino DCC decoder
« Reactie #58 Gepost op: 17 March 2014, 20:58:49 »
Hoi,

Las ergens wat over teruglezen en zo...
Is Loconet is oplossing? Blijkbaar ook voor de Arduino...

http://embeddedloconet.sourceforge.net/

Of de lib werkt geen idee ....

Mvg,

Robert
MDRRC-II (Lite) goedkope DIY centrale voor DCC en MM.
Heb je een vraag, stuur me dan een mail via mijn site ipv persoonlijk bericht...

Fritsprt

  • Offline Offline
  • Berichten: 2615
Re: Arduino DCC decoder
« Reactie #59 Gepost op: 18 March 2014, 21:46:35 »
Inmiddels heb ik op basis van de DCC_Monitor van Mynabay een locdecoder werkend die de snelheid kan inlezen en die reageert op F0, F1-F4. Ik heb vergeefs geprobeerd om ook F5-F12 te detecteren. De DCC_Monitor ziet de data voor F5-F12 echter niet.
Ter verduidelijking: Speeddata begint altijd met 01DCS3S2S1S0. Functiondata begint altijd met 10** ****. Functiondata voor F0-F4 begint met 1 0 0* ****. Functiondata voor F5-F12 begint met 1 0 1* ****.
Bit5 wordt in geval bit 7 en bit 6 met 1 0 begint echter niet 1 zodat het niet mogelijk is om F5-F12 te detecteren.
Iemand enig idee hoe ik de DCC_monitor kan aanpassen zodat bijvoorbeeld ook databyte 1011 0001 (F5) en 1010 0001 (F9) kan worden gedetecteerd?

gr. Frits
Groet Frits