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 Gert Arkema
Vandaag om 17:23:36
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
BMB 00-Modulebaan, BMB-Rijdagen en BMB-Deelname aan Beurzen & Evenementen door Martijn193
Vandaag om 15:03:42
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
reserve onderdeel gezocht voor Minitrix 12593 BR132 door joespoor
26 July 2025, 22:54:27
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Hans van de Burgt
26 July 2025, 21:56:59
  

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

Sven

  • Offline Offline
  • Berichten: 8330
  • 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

  • Online Online
  • Berichten: 10475
  • 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: 8330
  • 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

  • Online Online
  • Berichten: 10475
  • 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: 8330
  • 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: 4053
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

  • Online Online
  • Berichten: 10475
  • 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: 8330
  • 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: 4656
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: 8330
  • 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: 8330
  • 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: 8330
  • 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

  • Online Online
  • Berichten: 10475
  • 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: 7820
  • 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: 8330
  • 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.