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

20 jaar BNLS door MOVisser
Vandaag om 16:12:33
Vraag: Roco loc rijdt heel traag, tips? door Sandopie
Vandaag om 15:59:31
YD7010 en Roco WLAN Maus koppelen door Montanbahn
Vandaag om 15:43:41
Bentheimer Eisenbahn, gisteren, vandaag en morgen. door Hans Reints
Vandaag om 15:21:55
Toon hier je nieuwe (model-) spooraanwinst(en)... door Huup
Vandaag om 14:55:45
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 14:22:52
"Kolenbakken" voor achter Railion 6400-en? door ES44C4
Vandaag om 14:07:18
Raadplaatje door Modellbahnwagen
Vandaag om 13:07:12
Spoorhumor door Eric B
Vandaag om 12:21:56
? Aanleg Zuidwestboog bij Meteren door Arjan6511
Vandaag om 11:43:27
Ervaringen met veilingsites enzo (Marktplaats, Ebay, Catawiki, etc). door Montanbahn
Vandaag om 11:39:43
EifelBurgenBahn door Jelmer
Vandaag om 11:35:34
Ventilatie (?) pukkels op dak ICM door Sven
Vandaag om 11:28:41
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
Welke 4-polige stroomvoerende koppeling is dit? door henk
Vandaag om 07:23:13
De projecten van Ruben (NL H0) door Frank 123
Vandaag om 07:02:43
19 Toen door Vroeger
Vandaag om 05:58:47
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
Station Roodeschool door Torikoos
19 June 2025, 21:14:12
Eindstation Daarhuizen door Torikoos
19 June 2025, 21:04:03
Onlangs gespot - gefotografeerd, de foto's door Modellbahnwagen
19 June 2025, 20:49:16
Bouw van de ElD3 mat' 36 van MK Modelbouwstudio's door MathynK
19 June 2025, 20:47:40
Gelders Smalspoormuseum / Gelderse Smalspoor Stichting stelt zich voor door Ronald Halma
19 June 2025, 20:27:35
  

Auteur Topic: Arduino analoge(!) modelbaan sturing  (gelezen 146036 keer)

memen

  • Offline Offline
  • Berichten: 228
  • Märklin H0 - digitaal
    • LocoNet Bedieningspaneel
Re: Arduino analoge(!) modelbaan sturing
« Reactie #60 Gepost op: 21 July 2014, 13:08:24 »
Als je de pin in de software hoog zet en je verbindt de pin vervolgens direct aan de ground, dan is je ic net zo goed stuk hoor.

Wat wel zou kunnen: als je tuimelschakelaar drie contacten heeft, kun je schakelen tussen +5V en GND. Zolang de pin als input staat, kan dat.

Je kunt ook nog kijken of je ic interne pull ups heeft die je in kunt schakelen.

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 analoge(!) modelbaan sturing
« Reactie #61 Gepost op: 21 July 2014, 13:16:32 »
Volgens mij kan je zonder problemen een schakelaar aansluiten op een ingangspin.
Deze schakelaar komt tussen pin en ground. De ATMega (de chip op de Arduino) heeft ingebouwde pullup weerstanden die je middels de software kunt selecteren. Indien contact open staat is de pin, middels die ingebouwde pullup hoog. Is de schakelaar gesloten dan is de pin laag.

pinMode(pin, INPUT);           // set pin to input
digitalWrite(pin, HIGH);       // turn on pullup resistors


succes Frits
Groet Frits

Tukker

  • Offline Offline
  • Berichten: 11
    • BliksemSnel
Re: Arduino analoge(!) modelbaan sturing
« Reactie #62 Gepost op: 24 July 2014, 21:19:46 »
Hoi Paul,

Ik sluit meestal de schakelaars aan op de arduino met weerstanden.
Hier staat wel een goede uitleg over schakelaars aan sluiten.

http://sheepdogguides.com/arduino/FA1inp1.htm
Groetjes Tukker

Een dag niet gehobbyd is een dag niet geleefd!

HansQ

  • Offline Offline
  • Berichten: 2039
  • Daar waar de rook is, is de kortsluiting...
Re: Arduino analoge(!) modelbaan sturing
« Reactie #63 Gepost op: 25 July 2014, 09:45:52 »
Citaat
   pinMode(pin, INPUT);           // set pin to input
   digitalWrite(pin, HIGH);       // turn on pullup resistors

Volgens mij kun je in plaats van bovenstaande ook gebruiken:
   pinMode(pin, INPUT_PULLUP); 

De interne pullups van een microcontroller zijn meestal nogal zwak (dus aan de hoge kant).
Bij storingsgevoelige omgevingen gebruik ik meestal een pullup weerstand van tussen de 1K en de 10K, die ik zo dicht mogelijk bij de ingang zet.
De waarde van de weerstand kies ik zo, dat er minimaal een paar mA gaat lopen, dus 10K vind ik bij 5V wat aan de hoge kant...
HansQ, RailClub Utrecht
spoor N modulebouw, electronica, Selectrix

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino analoge(!) modelbaan sturing
« Reactie #64 Gepost op: 27 July 2014, 12:05:32 »
Wat betreft je blokken, je maakt dus dat een deel van een blok uit te zetten is? Maar 1a zit wel achter de motordriver van blok 1? Je gebruikt ze dus alleen om opstelsporen uit te zetten, niet om om te polen neem ik aan. Is het voorzien van station sporen (met eventueel een relais voor spoor 1a en 1b achter elkaar) van eigen motor driver niet handiger dan ze op te nemen in de hoofdnaamruimte? Er kan immers maar 1 loc bestuurd worden per motor controller.

En voor de toekomst, blijft het zo'n simpele baan of moet het dan flink groter worden. Dit ivm dingen die wel of niet makkelijk schalen.

De andere hebben gelijk wat betreft een schakelaar. Deze een input laten schakelen naar GND en voorzien van pullup. Dit kan door intern de pullup aan te zetten, maar deze is zoals genoemd zwak, of door extern de input aan de 5v te verbinden met een weerstand, 1k ofzo. Input hoog houden kan geen kwaad, zolang je er in de code maar een input van maakt. Gelukkig is dit de standaard bij het opstarten.

Wat betreft code, het geven van een naam aan een pin is handig voor de leesbaarheid en zo hoef je de pin maar op een plaats te wijzigen. Doe dan ook iets als
// test programma keuze hand auto
const int KeuzePin = 2;
const int LedPin = 3;
const int Led1Pin = 4;

int keuze = 0;

void setup(){
 
 pinMode(KeuzePin, INPUT);
 pinMode(LedPin, OUTPUT);
 pinMode(Led1Pin, OUTPUT);
En voor je leesbaarheid en om onze sneller fouten te laten vinden, gebruik duidelijkere namen. Een naam als Led1Pin zegt niet zo veel.

Wat betreft het wisselen ben je er al wel grotendeels achter. Ik weet alleen niet waarom je alleen bij het opstarten wilt kunnen wisselen tussen handmatig en automatisch. On the fly is toch veel leuker?

Je kunt hier mooi een switch case constructie gebruiken. Alleen zou ik wel duidelijke namen aan dingen geven (magic word van duidelijk programmeren) en de code wel in een losse functie zetten. Je krijgt dan
// test programma keuze hand auto met behulp van het :  Switch(), case statement

//Leesbare namen voor de bedrijfsmodi
#DEFINE AUTO 1
#DEFINE HANDMATIG 0

const int KeuzePin = 2;
const int LedPin = 3;
const int Led1Pin = 4;
int modus = 0;

void setup(){
 
 pinMode(KeuzePin, INPUT);
 pinMode(LedPin, OUTPUT);
 pinMode(Led1Pin, OUTPUT);
 
 Serial.begin(9600);
 Serial.print("Arduino uno switch test programma");
     
}

void loop(){

    modus = digitalRead(keuzePin);
 
  switch (modus) {
   
    case HANDMATIG:
       handmatigLoop();
       break;
   
    case AUTO:
       autoLoop();
       break;
  }   
}
handmatigLoop() en autoLoop() zijn nu te gebruiken als dat je nu loop() gebruikt alleen afhankelijke van de schakelaar.

Misschien ten overvloede, in het uieindelijke programma geen delay() gebruiken om een led te laten knipperen. Dan kan de Arduino niets tegelijk doen.


Timo
Dit was even een reactie vanaf me telefoon op een vliegveld in oost Duitsland. Nu ga ik weer zweefvliegen, kijken of er nog thermiek is. Over een week weer thuis voor meer vragen.
Verzonden vanaf mijn desktop met Firefox

smits66

  • Offline Offline
  • Berichten: 543
  • Schaal 1:160, Arduino
Re: Arduino analoge(!) modelbaan sturing
« Reactie #65 Gepost op: 28 July 2014, 21:25:06 »
Hoi , volgers

Hans, Tukker, Frits, Rauke, Dimo_Dimo, bedank voor jullie input  (y)

@Timo Bedankt voor je input  (y)

De motor driver die ik gebruik heeft per print twee motor sturingen , motordriver 1 stuurt de hoofdbaan( blok 1 ) en motor driver 1a( blok 1a ) stuurt de opstel/station/wacht sporen binnen blok 1, dit word door 1 motordriver met twee motoraansluitingen gedaan.

Voorbeeld :



De te bouwen modulebaan( de modules zijn klaar, ik ben nog bezig met het baanplan) zal een rij lengte hebben van ongeveer 14 meter
Hoeveel blokken ik wil hebben weet ik nog niet, waarschijnlijk op de hoofdbaan 4 blokken en op de zijlijn 8 blokken.

Helaas werk je code niet, kan ook even niet uitvogelen waarom het niet werkt, ik heb al veel zelf getest maar het werkt niet, krijg
verschillende fout meldingen, dat geld ook als ik de namen anders benoem.

Ik denk dat het niet kan omdat de Arduino maar een programma in de void Loop(){  kan uitvoeren voor zover ik dat weet.

Een andere oplossing kan zijn twee Arduino's te pakken, de eerste voor de handbediening en de tweede voor automatisch bedrijf er moet dan nog een oplossing gezocht worden om te switchen tussen de handbediening en automatisch bedrijf.

Op pin 2 van de ene Arduino  zet ik een LOW  en op de ander een HIGH binnen het programma kijk ik wat voor signaal ik op pin 2 hebt als het een LOW is zal de andere Arduino een HIGH moeten genereren waardoor er een van de twee Arduino's niet word gebruikt.

Ik kan voor die functie een kleine microcontroller gebruiken (atiny) met een programma die de signalen stuurt. (mooier)
Of ik pak een ic met 4 AND poorten en een tuimel schakelaar. (kiss)

@Allen

Mochten jullie nog suggesties hebben hoor ik dat graag.

Mvg Paul
« Laatst bewerkt op: 28 July 2014, 21:28:25 door smits66 »
Üdvözlet Paul Smits.


bouw draadje "Laubenstein"

Dirk J

  • Offline Offline
  • Berichten: 1456
Re: Arduino analoge(!) modelbaan sturing
« Reactie #66 Gepost op: 28 July 2014, 21:48:37 »
Vraagje.
Stel, je rijdt met de wijzers van de klok mee. In blok 2 staat tussen de wissels een trein en daarnaast in blok 2A staat ook een trein. Nu wil je de trein uit 2A laten vertrekken terwijl die in 2 blijft staan. Kan dat? Zo nee, ben je daar tevreden mee?

dimo1_dimo1

  • Offline Offline
  • Berichten: 3380
Re: Arduino analoge(!) modelbaan sturing
« Reactie #67 Gepost op: 28 July 2014, 23:22:27 »
Als ik de code met de switch zo zie zou die moeten werken mits je de handmatigloop en autoloop aan maakt..
groeten,
Auke

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino analoge(!) modelbaan sturing
« Reactie #68 Gepost op: 29 July 2014, 09:35:28 »
Hoi Paul,

Ik kan de code zelf helaas ff niet testen op fouten. Zoals gezegd heb ik het op me telefoon geschreven en kan een foutje bevatten. Over een week ben ik weer in Nederland en kan ik de fout zoeken. Het zou iig moeten werken. In loop kan je doen wat je wilt, dus geen reden waarom het, mits geen fouten in de code, niet zou werken. Een tweede Arduino gebruiken, zeker met een extra attiny, is jagen op een mug met een bazoeka  ;D

Timo
Verzonden vanaf mijn desktop met Firefox

smits66

  • Offline Offline
  • Berichten: 543
  • Schaal 1:160, Arduino
Re: Arduino analoge(!) modelbaan sturing
« Reactie #69 Gepost op: 29 July 2014, 18:54:53 »
Hoi volgers

dimo1_dimo1 bedankt voor je input  (y)

@Dirk J
 
???, ik snap je vraag niet helemaal,  ik zal het proberen te beantwoorden.

Ja dat kan als ik dat gedeelte isoleer van de rest van het blok ik zie daar het nut niet van in.

Ik zie alleen niet waarom dat nodig is, blok 1 is een doorgaande spoor, daar zal geen trein zomaar stoppen, alleen in noodsituatie, en als blok 2 eventueel bezet is maar dan kan de trein van blok 1a ook niet vertrekken,  blok 1a kan bv een stationsspoor dus zijn, als blok 1 of 2 vrij is kan de trein van blok 1a vertrekken.

Misschien is het je niet duidelijk maar het ovaaltje dat ik getekend heb is niet mijn modelbaan, het is bedoeld als uitleg hoe mijn blok systeem zal gaan werken.

Als het niet zou kunnen ben ik er tevreden mee.

@ Timo

De screenshot van de foutmeldingen, die ik krijg, en dan heb ik er al een paar opgelost.



Mvg Paul Smits
Üdvözlet Paul Smits.


bouw draadje "Laubenstein"

dimo1_dimo1

  • Offline Offline
  • Berichten: 3380
Re: Arduino analoge(!) modelbaan sturing
« Reactie #70 Gepost op: 29 July 2014, 19:02:04 »
Heb je de methoden :
void handmatigloop()
{
}

void autoloop()
{
}

Wel aangemaakt?
Eventueel een serial.println() erin die duidelijk maakt wat de arduino doet
groeten,
Auke

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino analoge(!) modelbaan sturing
« Reactie #71 Gepost op: 29 July 2014, 19:04:44 »
Ah, die foutmelding is simpel. Je moet de functies natuurlijk wel declareren  ;D Je roept nu twee functies op die niet bestaan. Net als alle functies moet je deze wel declareren. Zet in je code dus ook
//Loop functie voor handmatig gebruik
void handmatigLoop(){
   //Hier alle code die je in loop wilt hebben in handmatig bedrijfsnaam
}
//Loop functie voor automatisch  gebruik
void autoLoop(){
   //Hier alle code die je in loop wilt hebben in automatisch bedrijfsnaam
}


Timo
Verzonden vanaf mijn desktop met Firefox

smits66

  • Offline Offline
  • Berichten: 543
  • Schaal 1:160, Arduino
Re: Arduino analoge(!) modelbaan sturing
« Reactie #72 Gepost op: 29 July 2014, 19:13:27 »
Hoi,

Die heb ik inderdaad aangemaakt, zal kijken of ik een andere screenshot kan maken.



En deze foutmeldingen krijg als ik ze in de void Loop(){} zet.



Mvg Paul Smits
Üdvözlet Paul Smits.


bouw draadje "Laubenstein"

santerdam

  • Offline Offline
  • Berichten: 3865
Re: Arduino analoge(!) modelbaan sturing
« Reactie #73 Gepost op: 29 July 2014, 19:47:17 »
Het is niet helemaal duidelijk te zien, maar heb je 'void loop(}' staan ipv 'void loop()' ?

Sander

dimo1_dimo1

  • Offline Offline
  • Berichten: 3380
Re: Arduino analoge(!) modelbaan sturing
« Reactie #74 Gepost op: 29 July 2014, 19:52:35 »
Er moet nog void voor je functie declaratie staan
« Laatst bewerkt op: 29 July 2014, 19:54:23 door dimo1_dimo1 »
groeten,
Auke