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

Vraag: Roco loc rijdt heel traag, tips? door Menno
Vandaag om 21:07:21
Rails roestig verven door ruudns
Vandaag om 20:47:51
Mijn eerste H0-modeltreinbaan in aanbouw door puntenglijder
Vandaag om 20:32:28
Ventilatie (?) pukkels op dak ICM door Mitchell
Vandaag om 20:06:05
19 Toen door Rick
Vandaag om 19:40:56
Toon hier je nieuwe (model-) spooraanwinst(en)... door puntenglijder
Vandaag om 19:30:56
Welke 4-polige stroomvoerende koppeling is dit? door Dave.......
Vandaag om 19:30:36
20 jaar BNLS door Marco1044
Vandaag om 19:29:17
Bentheimer Eisenbahn, gisteren, vandaag en morgen. door puntenglijder
Vandaag om 19:27:27
"Kolenbakken" voor achter Railion 6400-en? door ES44C4
Vandaag om 19:00:00
Handregelaar aan IB Basic door laurent
Vandaag om 18:51:08
Klein baantje 1200x1200mm door Prutsert
Vandaag om 18:37:44
Nederland jaren 50 op basis van mijn roots door defender
Vandaag om 17:59:07
Raadplaatje door Nohome
Vandaag om 17:50:55
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 17:19:09
Ervaringen met veilingsites enzo (Marktplaats, Ebay, Catawiki, etc). door KNed
Vandaag om 16:41:47
YD7010 en Roco WLAN Maus koppelen door AlbertG
Vandaag om 16:33:28
Spoorhumor door Eric B
Vandaag om 12:21:56
? Aanleg Zuidwestboog bij Meteren door Arjan6511
Vandaag om 11:43:27
EifelBurgenBahn door Jelmer
Vandaag om 11:35:34
TEE treinstel krijgt nieuwe plaats na vertrek uit NTM door damngrazy
Vandaag om 11:11:14
Stichting 3rail 20 jaar jubileumwagen! door Sascha [St. 3rail]
Vandaag om 11:01:15
De IJmuider spoorlijn - korte geschiedenis en plaatjes door Vislijn
Vandaag om 10:39:45
Spoorwegmuseum krimpt collectie in door Rick
Vandaag om 10:12:45
VERPLAATST: Link trainer (was:: TEE treinstel) door Reinout van Rees
Vandaag om 09:47:12
De projecten van Ruben (NL H0) door Frank 123
Vandaag om 07:02:43
LS Models 2025 door spoorzeven
19 June 2025, 23:18:38
Cherteau, fictieve Waals industriedorp door Paulus
19 June 2025, 21:45:01
The Southern Pacific & California Northern door Ronald Halma
19 June 2025, 21:43:01
Dubbelom, een boekenplankspoorbaan in H0 door Peter Kleton
19 June 2025, 21:32:13
  

Auteur Topic: Beginnen in Eagle, Arduino DCC 8x servo shield  (gelezen 57785 keer)

gvandersel

  • HCC!m maar toch Selectrix (RMX)
  • Offline Offline
  • Berichten: 3603
  • Als het maar elektrisch is.
    • Homepage Gerard van der Sel
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #90 Gepost op: 14 July 2016, 15:13:26 »
Blusdiode is niet voor de uiteindelijke werking van de schakeling, maar specifiek voor de werking van het relais. De spoel zal bij afschakeling proberen de stroom instant te houden. Dit lijdt tot zeer hoge spanningen. Door de stroom met de blusdiode kort te sluiten zal deze zonder problemen afgeleid worden.
Zie het als een condensator. Bij het verwijderen van de spanning zal deze de spanning nog even in stand kunnen houden.

Groet,

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

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #91 Gepost op: 14 July 2016, 17:11:23 »
Hier spelen even twee dingen door elkaar, de ULN2803 gebruiken voor relais en het probleem.

De ULN2803 is nog steeds een makkelijke chip om meerdere relais te schakelen. De blusdiode die je anders plaatst als je een losse transistor gebruikt kan dan komen te vervallen. Maar meerdere relais schakelen is hier eigenlijk niet aan de orde omdat daarvoor gewoon meerdere kant en klare modules gebruikt worden.

Persoonlijk zou ik niet voor een master gaan. Hierdoor is het bij het schakelen van de groep tenminste treinverkeer over de andere wissels mogelijk.
Mijn idee is dan ook niet om de master elke keer te laten schakelen. Deze staat alleen uit tijdens het opstarten van de Arduino en schakelt in als alle servo's en relais weer netjes op elkaar afgestemd zijn. Daarna schakel je gewoon netjes in het midden om.


Ik heb bij de door mij gebruikte servo's er eigenlijk nog nooit 1 gehad, die in de stand 90 graden het armpje precies haaks op de servo heeft.
Dat is toch ook niet nodig? Je weet waar het midden is aan de hand van de eindstanden, het midden is er precies tussen in  ;D En de standaard servo library werkt dan wel in hele graden maar de achterliggende functies hebben veel meer resolutie dan dat. Vandaar dat ik een aangepaste versie gebruikte. Ik had hier het aantal stappen naar 1000 ofzo gebracht. Daarmee moet je het midden wel kunnen vinden lijkt me.

@Jowi, ik zou zelf ook niet voor één master relais gaan maar voor een master relais per decoder. Anders houd je het probleem als een decoder tussentijds reset. Nog steeds niet fool proof en is daarmee eigenlijk hetzelfde als gewoon zelf eerst de spanning naar de wissels aanzetten en dan pas de centrale op GO zetten.

En heb je al getest of de servo snel naar het midden wel snel genoeg is? Zou je redelijk makkelijk kunnen doen (mits je dus een servo met wissel hebt liggen) door de decoder 12V ook even uit DCC te voeden, heb je alleen een gelijkrichter voor nodig. Is het dan snel snel genoeg om geen kortsluitmelding te krijgen? Ik ben een beetje bang van niet  :-\


Timo
Verzonden vanaf mijn desktop met Firefox

jowi

  • Offline Offline
  • Berichten: 2375
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #92 Gepost op: 14 July 2016, 17:31:32 »
Zo had ik het ook begrepen hoor Timo, 1 master relais per decoder, die alleen aangezet wordt bij inschakelen van de arduino, en afvalt zodra de spanning wegvalt, en zo de frogrelais uitschakelt. Het inschakelen gebeurt in de software, nadat alle servo's en relais goed gezet zijn. Dan pas komt de DCC spanning daadwerkelijk op de frogs waar gewenst.

De servo snel naar het midden bij opstarten moet ik even inbouwen, Nico doet dat al wel zo met de MARDEC, ik denk dat hij wel kan vertellen dat het werkt. Anders had ie het niet zo gedaan denk ik :)

Eens kijken wat een mooie oplossing is. Persoonlijk wil ik zo weinig mogelijk zwiepende en bewegende servo's als dat niet nodig is, dus mijn voorkeur gaat uit naar een master relais, nadeel is dat je wat extra draden krijgt. De frogrelais moeten immmers hun dcc signaal nu van de decoder krijgen. Al moet je die draden natuurlijk toch al trekken... dus dat valt ook wel weer mee.

Het master relais kan wederom zo'n ali module zijn, maar er is plek op de print om een relais te plaatsen... de laatste der pins, nummer 13, zou het relais kunnen aansturen... dat zou er dan zo uit kunnen zien.

« Laatst bewerkt op: 14 July 2016, 17:36:01 door jowi »

gvandersel

  • HCC!m maar toch Selectrix (RMX)
  • Offline Offline
  • Berichten: 3603
  • Als het maar elektrisch is.
    • Homepage Gerard van der Sel
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #93 Gepost op: 14 July 2016, 17:54:49 »
Dus de overige relais hebben de transistor elders. Verder nog een vraag: rij jij zonder terugmelders?

Groet,

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

jowi

  • Offline Offline
  • Berichten: 2375
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #94 Gepost op: 14 July 2016, 18:01:15 »
De overige relais zijn kant en klare modules, bijv. deze:
https://nl.aliexpress.com/item/1-Channel-5V-Relay-Module-for-SCM-Household-Appliance-Control/1125290860.html

Ik zou ook het relais op de print weg kunnen laten en zo'n module als decoder-master kunnen gebuiken... is nog goedkoper ook, al krijg je dan nog meer draadjes vanaf de print.

Ja, ik rijd nu inderdaad nog zonder terugmelders. ivm de ongedecteerde stukken neem ik aan? De DCC spanning zal dan uiteraard via het bekende diodeschakelingetje lopen.

jowi

  • Offline Offline
  • Berichten: 2375
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #95 Gepost op: 14 July 2016, 19:32:32 »
Ik heb de 'MARDEC methode' terug ingebouwd (bij startup de servo snel naar de middenstand en dan naar een positie zonder relais) en dat werkt helaas ook niet als het relais verkeerd stond toen de spanning wegviel. Zodra de spanning weer aangezet wordt genereert de wissel een kortsluiting, nog voor dat de servo naar de middenstand is gegaan, immers de tongen maken sluiting doordat het relais niet meer aan staat. Heb ook MARDEC zelf nog even ingeladen, om te zien of ik iets mis, maar helaas, daar gaat het dus ook fout mee.

Dus... dat wordt dan toch de master relais oplossing. Of je moet een soort shutdown procedure uitvoeren of progrmameren in de centrale. Op zich ook niet raar natuurlijk... je kunt je pc ook niet zomaar uit het stopcontact trekken; waarom zou je dat met je inmiddels hypermoderne computergestuurde treinbaan wel moeten kunnen...? Daarom zou ik zelf ook niet zo'n probleem vinden om gefaseerd de baan in te schakelen, eerst alle hulpvoedingen etc en als laatste de DCC spanning. Maar ja als we het met een extra relais handiger kunnen maken...

Timo, wat zijn jou bedenkingen bij de relais oplossing zoals ik die in de print heb hierboven? Kom ik daar zo makkelijk mee weg? ;D

« Laatst bewerkt op: 14 July 2016, 19:35:06 door jowi »

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: Beginnen met Eagle, hulp gevraagd.
« Reactie #96 Gepost op: 14 July 2016, 19:36:41 »
...
Ook is de 7805 beperkt qua vermogen. Ik zou niet te veel (meer dan 2) servo's tegelijk laten bewegen. De inrush met opstarten met 8 servo's kan al te veel zijn.
Kun je met een Arduino meerdere servo's tegelijkertijd aansturen? Iedere servo heeft een eigen I/O pin op de Arduino en in je programma stuur je die toch één voor één achter elkaar aan (sequentieel dus).
Ik heb alleen ervaring met aansturen van servo's met een Basic Stamp, maar met een Arduino zal het niet veel anders zijn.
El Carrilet
"te dom om te poepen"
MH

jowi

  • Offline Offline
  • Berichten: 2375
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #97 Gepost op: 14 July 2016, 19:41:21 »
Ja, de Arduino heeft een vaste 'loop' in de software waarin je, als je het goed doet, alle servo's tegelijk kunt laten bewegen.
Dat is nog steeds sequentieel, maar met heel veel kleine stapjes... het lijkt multitasking maar feitelijk is het timeslicing. De beperking is de frequentie van de Arduino's cpu, en natuurlijk de grootte van de stukjes software die je 'sliced'. Die moet je heel effectief zien te maken.
« Laatst bewerkt op: 14 July 2016, 19:43:29 door jowi »

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #98 Gepost op: 14 July 2016, 20:47:50 »
Zo had ik het ook begrepen hoor Timo, 1 master relais per decoder,
Ah, dan had ik jou verkeerd begrepen  ;D

is nog goedkoper ook, al krijg je dan nog meer draadjes vanaf de print.
Nouwja, ik heb al relais gezien voor 18 cent  ;D

Ik heb de 'MARDEC methode' terug ingebouwd (bij startup de servo snel naar de middenstand en dan naar een positie zonder relais) en dat werkt helaas ook niet als het relais verkeerd stond toen de spanning wegviel.
Dat was exact wat ik verwachtte  ::)

Timo, wat zijn jou bedenkingen bij de relais oplossing zoals ik die in de print heb hierboven? Kom ik daar zo makkelijk mee weg? ;D
Ziet er eigenlijk wel goed uit. Alleen een 2N2222 is in Europa niet zo heel gangbaar. Een BC54 is meer "standaard".  De footprint op de print vind ik wel een beetje raar. Ziet er meer uit als een oude "metal can" transistor ipv een SO-92.

Nadeel is inderdaad dat je nu veel draden moet trekken. Relais in de buurt van de decoder beperkt het wel ipv lange draden tussen decoder en relais.

En verschil met computer is toch wel dat het bij een computer wel niet goed is maar er tegenwoordig genoeg systemen in zitten die zorgen dat er niets ernstigs aan de hand is bij het opstarten. En kortsluiting valt bij mij niet onder "niets ergs"  ;D

Misschien toch micro switches? ;D

@72sonett, ja en nee. Je kan meerdere servo's in beweging hebben maar dit is inderdaad stiekem na elkaar. Maar heeft niet met de loop() te maken. De servo's worden met een interrupt aangestuurd en die genereert de puls van iedere servo direct achter elkaar. Het duurt dus maximaal 8 x 2ms = 16ms voordat iedere servo één keer een puls heeft gekregen. En minimaal dus 8x 1ms = 8ms voordat elke servo een puls heeft gezien. Voor ons ziet het er gewoon uit alsof ze allemaal tegelijk bewegen :D


Timo
Verzonden vanaf mijn desktop met Firefox

jowi

  • Offline Offline
  • Berichten: 2375
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #99 Gepost op: 14 July 2016, 21:18:53 »
Kleine correctie, als je de servo's een snelheid mee wil geven, dan zul je dat toch echt via de loop() moeten doen... het sturen van 1 positie (ga meteen naar 180! ga meteen naar 0!) naar de servo zal via een irq gaan, dat geloof ik wel. Maar als ik in 5 seconden langzaam van links naar rechts wil... millies & loop() ;)

Ja die 2222 heb ik van een sample op de Arduino site... en dat is natuurlijk allemaal 'murica f*** yeah spul. Ik zal eea aanpassen naar normale componenten.

Ik zet te denken om meteen voor de 8 relais, 8 DCC connectoren op de print te zetten. Anders moet je weer ergens een verdeelstrook maken. De print wordt dan wel een paar mm breder dan een standaard Arduino shield.
« Laatst bewerkt op: 14 July 2016, 21:42:38 door jowi »

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #100 Gepost op: 14 July 2016, 22:28:29 »
... nog steeds sequentieel, maar met heel veel kleine stapjes...
...ja en nee. Je kan meerdere servo's in beweging hebben maar dit is inderdaad stiekem na elkaar. .... Het duurt dus maximaal 8 x 2ms = 16ms voordat iedere servo één keer een puls heeft gekregen. En minimaal dus 8x 1ms = 8ms voordat elke servo een puls heeft gezien. Voor ons ziet het er gewoon uit alsof ze allemaal tegelijk bewegen

OK, ik snap het denk ik  ;)
De makkelijke manier is om een puls van 1,0-2,0 msec naar de servo te sturen dan ca 20 msec niets te doen en dat alles doe je dan b.v. een hele seconde lang, in ieder geval lang genoeg om de servo 180° te laten draaien, maar in plaats van 20 msec niets te doen, kun je ook 7 (of meer) andere servo's aansturen.


Zolang de servo nog niet in de stand staat waarin hij volgens de stuurpuls zou moeten staan, draait de motor en trekt hij stroom, dat kunnen dus inderdaad 8 tegelijkertijd zijn, ook al worden de servo´s één voor één aangestuurd. Een stevige servovoeding is dan wel nodig.

Ik heb ooit een 'schuifschijf' gemaakt met het mechanisme van een oude matrixprinter met een stappenmotor, aangestuurd door een BasicStamp via een ULN2803. Daar speelt net zo iets. De Stamp en de stappenmotor hebben hun eigen voeding.
« Laatst bewerkt op: 15 July 2016, 01:49:24 door 72sonett »
El Carrilet
"te dom om te poepen"
MH

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #101 Gepost op: 15 July 2016, 08:56:12 »
@Jowi, klopt helemaal. Het is een samenwerking van beide.  ;D Wilde vooral aangeven dat als je
for(byte i = 0; i < aantalServos; i++){
  servo[i].write(x);
}
Doet dat de ISR voor de puls de beperkende factor is. De for heeft veel minder tijd nodig dan de IRS in dit geval. De library doet de pulsen als:
          ___
Servo 1__|   |______________________________
              _____
Servo 2______|     |________________________
                    ___
Servo 3____________|   |____________________
                        ___
Servo 4________________|   |________________
En herhaalt dit iedere 20ms of (als dat langer is) na de som van alle individuele pulsen.

En wat betreft de relais, hoe zo iets wat op papier zo makkelijk lijkt toch zo moeilijk kan blijken he?  ::)


Timo
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: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #102 Gepost op: 15 July 2016, 09:17:28 »
Kijk een snaar je sporen op de print. Er gaat rijstroom voor de trein(en) door wel erg dunnen sporen.

Groet,

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

Cees Baarda

  • Offline Offline
  • Berichten: 167
  • hcc!m-IG
    • hcc!m
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #103 Gepost op: 15 July 2016, 09:21:27 »
@jowi
In je laatste schema en eerder ook de printlayout, zag ik dat je de 'blusdiode' tussen +5V en de basis van de sturende transistor hebt gezet. Dat is niet de juiste plek. Je moet hem tussen +5V en de collector zetten (de andere kant van de relaisspoel). Op jouw manier zal de sturende transistor sneuvelen als het relais afvalt.
Voor de 2N2222 kun je iedere standaard NPN transistor kiezen, zoals een BC547.

groet Cees
Webmaster hcc!m - Microcontrollers (Atmel) : Arduino
Bezig met het maken van een apart ijkspoor t.b.v. Koploper of iTrain.

jowi

  • Offline Offline
  • Berichten: 2375
Re: Beginnen in Eagle, Arduino DCC 8x servo shield
« Reactie #104 Gepost op: 15 July 2016, 09:28:22 »
En wat betreft de relais, hoe zo iets wat op papier zo makkelijk lijkt toch zo moeilijk kan blijken he?  ::)
Haha ja... maar als het uiteindelijk werkt ben ik blij :) dat is ook wel leuk aan deze hobby, het heeft zoveel kanten. Het is een multidimensionale puzzel op gebied van mechanica, elektrotechniek, computertechniek, software, logistiek, maar ook op estetisch gebied etc... en alles is afhankelijk van elkaar.

Kijk een snaar je sporen op de print. Er gaat rijstroom voor de trein(en) door wel erg dunnen sporen.
Ik zag het... ik maak ze wat dikker.

In je laatste schema en eerder ook de printlayout, zag ik dat je de 'blusdiode' tussen +5V en de basis van de sturende transistor hebt gezet. Dat is niet de juiste plek. Je moet hem tussen +5V en de collector zetten (de andere kant van de relaisspoel).
Op deze manier? Schema komt van de Arduino site zelf overigens...

« Laatst bewerkt op: 15 July 2016, 09:32:42 door jowi »