Doel:€250.00
Donaties:€0.00

Per saldo:€-250.00

Steun ons nu!

Laatst bijgewerkt
op 03-12-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Botsing bij SGB 29-12-2025 door Eric B
Vandaag om 13:08:42
Bahnstrecke 5867 door Frank 123
Vandaag om 13:03:55
Modelbanen bezoeken (ervaringen delen) door Frank 123
Vandaag om 13:02:45
Waarom de internationale nachttrein niet van de grond komt. door Montanbahn
Vandaag om 12:53:20
Mijn eerste H0-modeltreinbaan in aanbouw door william_2
Vandaag om 12:45:43
De IJmuider spoorlijn - korte geschiedenis en plaatjes door Thom
Vandaag om 12:42:41
Fotowedstrijd 2025 door Bob R.
Vandaag om 12:26:18
Bezetmelders standaard actief? door AlbertG
Vandaag om 12:12:16
Een kromme muur uit een rechte mal. Hoe? door Forever Rocofan
Vandaag om 12:02:06
Roco 2025 door 1200blauw
Vandaag om 12:02:05
Rondom Charlois door Alewijn
Vandaag om 11:44:46
De overeenkomst tussen een Ovaalramer en een Motorpost. door FritsT
Vandaag om 11:44:42
Piko 2026 door Chris
Vandaag om 11:07:36
Seinpaal aansluitschema door Ronald Halma
Vandaag om 11:07:08
Slaaprijtuig WL type MU Trans Euro Nacht rond 1980 in NL door Locwissel
Vandaag om 10:28:19
Eindstation Daarhuizen door Spoor010
Vandaag om 10:04:59
US diorama in H0 door Frank 123
Vandaag om 10:02:20
Baan in Los Angeles door Wim Vink
Vandaag om 09:38:21
Modelspoordagen 10 & 11 januari 2026 door Hoontje
Vandaag om 09:29:36
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 08:36:21
20 jaar BNLS jubileum door Miniature Holland
Vandaag om 08:11:28
Frans loodsje et cetera door GD
Vandaag om 07:27:23
Documentaire over de geschiedenis (en toekomst?) van de Nedersaksenlijn door Dennis1984
Vandaag om 01:11:00
Ontraxs 2026 door Dennis1984
Vandaag om 01:07:54
Probleem met Trix Lok 22137-01 en ESU DCC MTC32 Nem660 decoder door Joz
Vandaag om 00:47:11
Korneschans. Een fictief Duits Nederlands grensstation. door DJV
Vandaag om 00:08:04
Toon hier je nieuwe (model-) spooraanwinst(en)... door Kees-Jan
30 December 2025, 23:29:58
BNLS modulebaan: Werkspoor-Kathedraal 3.5 door nighttrain1
30 December 2025, 22:15:04
Iemand al eens een claim bij Ebay neergelegd? door TonM
30 December 2025, 21:59:00
modulebaan in spoor 1 door Syb030
30 December 2025, 21:29:03
  

Auteur Topic: Arduino: hoe twee treinen afwisselend te laten rijden met pause  (gelezen 3970 keer)

Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Gepost op: 22 September 2016, 13:06:43 »
Het is onnodig om het wiel opnieuw uit te vinden, dus ik leg deze vraag even hier voor. Het lijkt me sterk als dit stukje programma al niet eerder geschreven is.

Wat ik heb is een ovaal met twee wissels en opstel"terrein" met twee sporen. Eigenlijk een standaard startset+ opstelling. Nu heb ik er twee treinen op rijden, in tegenovergestelde richting, en die moeten elkaar aflossen op het opstelterrein. Ik zal gaan werken met een magneet onder elke lok en reed contactjes, dus in feite zou ik dit met een relais zo al kunnen doen, rijrichting veranderen en wissels omzetten (kunnen evt ook gewoon open gereden worden). Maar wat ik wil is dat de tweede trein circa 10 seconden wacht met vertrekken als de eerste binnen is gekomen. Nu heb ik een Arduino Uno liggen waar ik tot nu toe alleen maar een Ledje mee heb laten knipperen en het lijkt me leuk om dat hiermee aan te sturen. Wellicht kan ik er nog andere functies aan koppelen. Het lijkt me een programmeerstukje uit de beginnersklas, dus hopelijk is het er al.

Kan iemand hier mee helpen?
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.

Karst Drenth

  • Offline Offline
  • Berichten: 10489
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #1 Gepost op: 22 September 2016, 14:16:47 »
startset: digitaal of analoog ??

Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #2 Gepost op: 22 September 2016, 14:19:36 »
Het is niet een startset, ik bedoelde meer het baanplan van een startset. Maar het antwoord op je vraag is analoog gelijkstroom. Het is voor mijn stoomtrammetjes.
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.

Karst Drenth

  • Offline Offline
  • Berichten: 10489
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #3 Gepost op: 22 September 2016, 14:47:12 »
Ok :)

Dus als ik het goed begrijp:

1) Loc + trein #1 rijdt een rondje clockwise,
2) #1 komt 'station' binnen, triggert 'stop'
3) na x tijd vertrekt  Loc + trein #2 in tegengestelde richting
4) Loc + trein #2 rijdt een rondje couter clockwise,
5) #2 komt 'station' binnen, triggert 'stop'
6) na x tijd vertrekt  Loc + trein #1 in tegengestelde richting
7) ga naar 1)



Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #4 Gepost op: 22 September 2016, 14:48:55 »
Exact, je hebt het al bijna geschreven als je er 'if' en 'go' voor in de plaats zet.  :)
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.

Falkenberg

  • Offline Offline
  • Berichten: 4085
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #5 Gepost op: 22 September 2016, 14:54:43 »
dit dus?
of dit
« Laatst bewerkt op: 22 September 2016, 14:59:21 door Falkenberg »

Karst Drenth

  • Offline Offline
  • Berichten: 10489
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #6 Gepost op: 22 September 2016, 14:57:37 »
Precies :)

Dus wat heb je nodig ?

1 x ompool relais
2 x on-off relais ( om de locs stroomloos te maken )
2 x reedcontact in de railsectie die je wilt uitschakelen.

Dus iig iets van een 'Relay-shield' met van die relais er op,

zoiets:

Zitten er 4 op, met 2 ervan maak je je ompoler ;)

En dan een simpel progje in je arduino dat de reedcontacten scant en de acties doet (relais sturen).

Het voorbeeld van DJ is al iets meer geavanceerd, daarmee kun je ipv je ompoler ook de snelheid en rijrichting regelen ;)

Dit dus:



die kan 2 x 2 Amp aan. Je hebt maar 1 kanaal nodig ;)
« Laatst bewerkt op: 22 September 2016, 15:00:10 door Karst Drenth »

Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #7 Gepost op: 22 September 2016, 15:02:53 »
Die bestellijst heb ik helemaal. Ik heb nog wat oude Trix relais, eentje daarvan lijkt me hier wel geschikt voor.

Bedankt voor de info. Daar moet ik wel even goed voor gaan zitten om dat te laten bezinken, da's een boel informatie. Dat langzaam stoppen en starten wat ik daar lees bracht me wel op het idee om de locs een stop te laten maken aan de voorzijde van de layout. Moet de magneet wel in het midden onder een wagon, anders stopt elke trein weer op een andere plek. Zou dat allemaal met dezelfde Uno kunnen?
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4655
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #8 Gepost op: 22 September 2016, 15:14:10 »
Dat analoog is in dit geval wel van belang. Om de treinen in tegengestelde richting te laten rijden zal je de spanning telkens moeten ompolen.

Goed, dan door naar het echte probleem  ;D Natuurlijk kan dit maar je kan dit weer zo gek en ingewikkeld maken als je zelf wilt. Wil je alleen maar schakelen tussen de twee sporen (steeds met 10 seconde er tussen) of wil je het al gekker maken met optrekken, afremmen, seinen etc?

Wisssels
En wil je wel of niet de wissels aansturen? Aangezien ze in tegengestelde richting gaan zou je af kunnen met  het open rijden van de wissels, Wil je de wissels aansturen kan dit met een transistor en een diode (en een weerstand als het een BJT is). Zoals hier waar de motor dan de wissel is. Ook mag de wissel naar een andere voeding dan de 5V (zolang de GND van die andere voeding maar aan de Arduino GND hangt).

Relais
Ompolen kan makkelijk met een dubbelpolig relays (of twee enkele parallel). Makkelijkste is om gewoon een relais module te kopen. Als je zelf nog relais hebt dan heb je eigenlijk dezelfde schakeling nodig als voor wissels.

Snel een sketch in elkaar gegooid (maar makkelijk uit te breiden, ook naar meer sporen). Gaat uit van active HIGH relays en geen wissel aansturing.
byte track = 0;
bool waiting = false;  //set to true if you want to start with waiting in the station

const byte TrackPins[] = {2, 3}; //connect between pin and GND
const byte ReedPins[sizeof(TrackPins)] = {4, 5};
const byte DirectionPin = 6;

const unsigned long WaitInterval = 10 * 1000UL;

unsigned long previousMillis = 0;

void setup() {
  //setup ReedPins
  for(byte i = 0; i < sizeof(ReedPins); i++){
    pinMode(ReedPins[i], INPUT_PULLUP);
  }
 
  //setup TrackPins
  for(byte i = 0; i < sizeof(TrackPins); i++){
    pinMode(TrackPins[i], OUTPUT);
  }
 
  //setup direction pin
  pinMode(DirectionPin, OUTPUT);
 
  //if we don start with a wait, depart the first train!
  if(!waiting){
    departTrain();
  }

}

void loop() {
  //don't overshoot the number of tracks we have
  if(track >= sizeof(TrackPins)){
    track = 0;
  }
 
  //are we waiting in the station?
  if(waiting){
    //done waiting?
    if(millis() - previousMillis >= WaitInterval){
      //set we are done waiting
      waiting = false;
     
      //depart the next train
      departTrain();
    }
   
  }
  //not waiting to depart
  else{
    //has train arived?
    if(!digitalRead(ReedPins[track])){
      //stop all trains
      stopTrains();
     
      //set waiting and set time
      waiting ==  true;
      previousMillis = millis();
     
      //goto next track
      track++;
    }
  }
}

void departTrain(byte nr){
  //do nothing if we call a non-existing track
  if(nr < sizeof(TrackPins)){
    //set the direction. Alternate direction per track
    digitalWrite(DirectionPin, nr % 2);
   
    //enable corresponding track
    digitalWrite(TrackPins[nr], HIGH);
   
    //wait till the reed is cleared
    while(!digitalRead(ReedPins[track]));
  }
}

void inline departTrain(){
  departTrain(track);
}

void stopTrains(){
  for(byte i = 0; i < sizeof(TrackPins); i++){
    digitalWrite(TrackPins[i], LOW);
  }
}


Timo
« Laatst bewerkt op: 22 September 2016, 15:15:47 door Timo »
Verzonden vanaf mijn desktop met Firefox

Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #9 Gepost op: 22 September 2016, 16:05:25 »
Bedankt voor je moeite, Timo. Dat lijkt me een leuk schema om mee aan de slag te gaan. Anders wel het tweede linkje, gegeven door Falkenberg. Dat filmpje is precies wat ik voor ogen heb. Maar wat ik niet begrijp: is zo'n "motorshield" noodzakelijk, of kan ik het hele boeltje met een gewone, ouderwetse Trix modelspoorrelais aansturen? Als ik PWM wil, dan heb ik dat vast wel nodig, nietwaar? En uit het verhaal van Karst begrijp ik dat één motorshield voldoende is, omdat het meerdere kanalen heeft, ook al staat er op het plaatje twee maal een motorshield? Ik controleer het even voor de zekerheid. Ik ben wel een beetje bekend met electronica, maar meer met basis schakelingen.

Zou ik met dezelfde hardware de trein halverwege een korte stop kunnen laten maken? Uiteraard langzaam afremmen en optrekken.
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.

Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #10 Gepost op: 22 September 2016, 16:06:45 »
Oh, de wissels zouden in principe gewoon opengereden kunnen worden, maar desnoods kunnen ze nog met een eigen kring aangestuurd kunnen worden.
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.

Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #11 Gepost op: 22 September 2016, 16:13:21 »
Maar vast een motorshield besteld. Ziet er wel uit als interessant speelgoed.  ;D
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.

Karst Drenth

  • Offline Offline
  • Berichten: 10489
  • NS blauw, groen, rood, bruin, grijs en standgroen
    • Plan U op Sleutelspoor
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #12 Gepost op: 22 September 2016, 16:20:54 »
Is wel een 'zwakke' :P (1.2Amp max, 0.6 Amp continue...)

Wim Ros

  • BHV
  • Offline Offline
  • Berichten: 7819
  • Alleen de waarheid ligt in het midden.
    • Perrongeluk
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #13 Gepost op: 22 September 2016, 16:26:24 »
Als het altijd dezelfde lokjes zijn die op de baan rijden en op hetzelfde rondje, hoef je niet om te polen, je kunt ook van één van de lokjes het motortje 180graden draaien om zijn lengte as, dan gaat hij vanzelf de andere kant op dan de andere  ;)
Groetjes
Intellibox via LocoNet-Interface met s88 via een s88 naar LocoNet adapter.Of L.NET-S88SD16-N Marklin 6021 via een 63820, LocoNet-Interface en een s88 naar LocoNet adapter. Lenz Digital Plus via  LI101F of s88XPressNetLi s88SD16-n. http://rosoft.boards.net

Sven

  • Offline Offline
  • Berichten: 8402
  • Eton Wick, UK
    • Ga naar de Tramfabriek
Re: Arduino: hoe twee treinen afwisselend te laten rijden met pause
« Reactie #14 Gepost op: 22 September 2016, 16:30:51 »
Goed dat je dat zegt, in mijn trams zitten kleine 10V motortjes. Komt maar een of twee wagonnetjes achter, dus dan zou het toch wel goed moeten komen, neem ik aan?
Backer & Rueb stoomtrams in 1:87 op www.tramfabriek.nl.
Volg mijn bouwactiviteiten op Facebook.