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

Rangeerbaan Molenhoek door Ronald Halma
11 September 2025, 23:47:27
Kibri station CALW ingekort als NS station door meino
11 September 2025, 23:47:13
Portland ID, OR; een 2-turnout Inglenook door Ronald door hervé
11 September 2025, 23:45:58
Exact-Train 2025 door Falkenberg
11 September 2025, 22:51:05
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
11 September 2025, 22:49:22
13 september 25 jaar Huider, Huider Express stoomtrein door Seinhuis
11 September 2025, 22:11:53
PWM regelaar Kato 22018 sx standaard controller door Pollux
11 September 2025, 21:21:08
Overstap naar HTM door Jan Bennink
11 September 2025, 21:19:33
Bahnstrecke 5867 door Frank 123
11 September 2025, 21:12:07
Am Ende der Strecke, modulebaan op 1 M2 door Frank 123
11 September 2025, 21:06:37
Vandaag bij pon door Jean-Pierre
11 September 2025, 21:04:48
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
11 September 2025, 20:56:29
Layne, Somewhere South. door Ronald Halma
11 September 2025, 20:54:52
Halling aandrijvingen door Jan Bennink
11 September 2025, 20:53:20
Vijfhuis (v.h. Frotterdam) door Ronald Halma
11 September 2025, 20:52:20
Bauarbeiten im gange door 741230
11 September 2025, 20:33:17
Z21 en het programeren met de Z21App. door bask185
11 September 2025, 19:56:37
Handleiding van de Roco kraan 46901 NS kraan 482 door NL-modelspoor
11 September 2025, 19:35:49
Raadplaatje door V200-G2000
11 September 2025, 19:27:53
ByPass Junction, een Amerikaanse modelbaan in N door RobVille
11 September 2025, 19:24:12
Rookgenerator wil niet werken, van piko 50652 = BR 93 in Rocrail door jack is back
11 September 2025, 19:23:44
13 en 14 september Open Monumentendag door Seinhuis
11 September 2025, 19:05:45
Voordelige treinkaartjes door Seinhuis
11 September 2025, 18:35:29
Rheinburg, TP V/VI door william_2
11 September 2025, 18:12:22
Veevervoer ss/ ns door klusser
11 September 2025, 18:03:37
BNLS-Werkspoor - Railhopper SM90 door Joz
11 September 2025, 18:01:35
Stalen D 4 deurs spoor 0 door AB 7216
11 September 2025, 17:24:33
Onlangs gespot - gefotografeerd, de foto's door GerardvV
11 September 2025, 17:02:06
Wijzigen functies-functietoetsen PBModels ICRmh rijtuigen door Lex-trein
11 September 2025, 17:02:06
De IJmuider spoorlijn - korte geschiedenis en plaatjes door IJmc
11 September 2025, 16:44:52
  

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

Sven

  • Offline Offline
  • Berichten: 8359
  • 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: 10485
  • 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: 8359
  • 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: 10485
  • 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: 8359
  • 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: 4059
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: 10485
  • 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: 8359
  • 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: 8359
  • 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: 8359
  • 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: 8359
  • 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: 10485
  • 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: 8359
  • 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.