Auteur Topic: Kolenmijn in een kastje  (gelezen 27998 keer)

0 leden en 1 gast bekijken dit topic.

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #50 Gepost op: 8 oktober 2018, 16:43:13 »
Rob, bedankt dat ga ik in ieder geval proberen.

Pierre, Arduino is inderdaad een hobby op zich, maar modelbouw is multidisciplinair.

Dirk, ik zou graag die stroom weghalen, maar hoe? Welke commando heb ik dan nodig of iets?

Wim, die schacht ziet er heel solide uit en de oplossing met geleidestrippen voor stroom zijn zeer mooi uitgevoerd. Ik heb nu zeer flexibele stroomdraad gebruikt als hijskabel. Aangezien deze alleen met een hefboom wordt bewogen durf ik het wel aan.

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #51 Gepost op: 14 oktober 2018, 21:51:15 »
Nou ik heb geprobeerd om een arduino sketch te maken.
Volgens mij moet deze wel werken, maar dat stroomloos malen van de servo's is mij niet gelukt.

Zie hier de sketch;

#include <Servo.h>

Servo myservo1;  // deur links
Servo myservo2;  // lift links
Servo myservo3;  // deur rechts
Servo myservo4;  // lift rechts

int pos1 = 90;    // variable to store the servo position
int pos2 = 180;
int pos3 = 165;
int pos4 = 70;

void setup() {
  myservo1.attach(8);   // deur links
  myservo2.attach(9);   // lift links
  myservo3.attach(10);  // deur rechts
  myservo4.attach(11);  // lift rechts

  myservo1.write(90);   // deur links
  myservo2.write(180);  // lift links
  myservo3.write(165);  // deur rechts
  myservo4.write(70);   // lift rechts

  pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {
  for (pos1 = 90; pos1 <= 140; pos1 += 1) {
    myservo1.write(pos1);             
    delay(50);                       
  }
  {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(2000);                     
  }
    for (pos1 = 140; pos1 >= 90; pos1 -= 1) {
    myservo1.write(pos1);             
    delay(50);                       
  }
  {
      digitalWrite(LED_BUILTIN, LOW);
      delay(2000);                     
  }
    for (pos2 = 180; pos2 >= 140; pos2 -= 1) {
    myservo2.write(pos2);             
    delay(50);                       
  }
  {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(2000);                     
  }
  for (pos4 = 70; pos4 >= 40; pos4 -= 1) {
    myservo4.write(pos4);             
    delay(50);                       
  } 
  {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(2000);                     
  }
  for (pos3 = 165; pos3 >= 115; pos3 -= 1) {
    myservo3.write(pos3);             
    delay(50);                       
  }
  {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(2000);                     
  }
  for (pos3 = 115; pos3 <= 165; pos3 += 1) {
    myservo3.write(pos3);             
    delay(50);                       
  }
  {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(2000);                     
  }
  for (pos4 = 40; pos4 <= 70; pos4 += 1) {
    myservo4.write(pos4);             
    delay(50);                       
  }
  {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(2000);                     
  }
  for (pos2 = 140; pos2 <= 180; pos2 += 1) {
    myservo2.write(pos2);             
    delay(50);                       
  }
  {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(2000);                     
  }
}


Nu krijg ik ook nog een paar servo's voor mijnwerkers die ik wil aansturen.
Ik betwijfel of dit verstandig is om deze ook via deze arduino te laten lopen.
Voor de wisselaandrijving moet ik ook nog een sketch maken en die zal zeker op een eigen arduino komen.
Ik zit alleen met enkele problemen, zoals het signaleren dat er een trein op het opstelspoor staat.
De trein en de wagonnetjes hebben elk een magneetje en dit magneetje zorgt ook nog eens ervoor dat het reedcontact elke keer twee keer wordt "bediend".
Nog geen idee hoe dit op te lossen. Wellicht is een lichtsluis een betere optie dan een reedcontact.

Tijdens mijn zoektocht voor de mijnlift kwam ik ook nog een printplaatje tegen.
Volgens mij is deze bedoeld om servo's of motortjes aan te sturen.



Als iemand me hier iets meer over kan vertellen, graag...

Kan mij iemand mij vertellen of een arduino ook met 5 volt gevoed kan worden via de normale stroomingang?
Ze functioneren op een USB aansluiting en als ik 5 volt aansluit op de normale stroomingang, dan lijkt het te functioneren.
Maar of het ook blijvend goed gaat, dat is voor mij een grote gok.

De liften zelf zijn voorzien van werkvolk, een lift met verse mijnwerkers (nog lekker schoon) en de andere lift met vuile mijnwerkers die naar huis mogen.
Wel eerst wassen!









De lift is nog iets aangepast zodat de kooien niet (of minder snel) vastlopen.

Tijdens het winkelen met vrouwlief kwam ik het volgende tegen bij "sostrene grene", blijkbaar een nieuwe winkelketen in Nederland.
Ze hadden daar kleine pippetflesjes met doppen gemaakt van de metalen punt van een potloodpen. (helaas geen foto gemaakt)
Hier kun je echt heel mooi tussen de balkjes van z-spoor de ondergrond kleuren en verlijmen.
Ook hadden ze daar hele kleine letterstempels, en dat alles betaalbaar.



Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #52 Gepost op: 14 oktober 2018, 22:49:18 »
Hoi Mark,
Mooie liftkooien. Leuk ook dat van de schone en vieze ploeg.
Een paar antwoorden op je vragen....

Nu krijg ik ook nog een paar servo's voor mijnwerkers die ik wil aansturen.
Ik betwijfel of dit verstandig is om deze ook via deze arduino te laten lopen.
Voor de wisselaandrijving moet ik ook nog een sketch maken en die zal zeker op een eigen arduino komen.
Je kunt de mijnwerkers ook op een eigen Arduino zetten. Eventueel kun je de 2e Arduino laten reageren op de eerste als de mijnwerkers iets moeten doen dat synchroon lopt met de liftschachten.

Ik zit alleen met enkele problemen, zoals het signaleren dat er een trein op het opstelspoor staat.
De trein en de wagonnetjes hebben elk een magneetje en dit magneetje zorgt ook nog eens ervoor dat het reedcontact elke keer twee keer wordt "bediend".
Nog geen idee hoe dit op te lossen. Wellicht is een lichtsluis een betere optie dan een reedcontact.
Hoeft geen probleem te zijn, hoor. Je kunt de sketch zo maken dat alleen de eerste keer iets doet. Bijvoorbeeld door gewoon even te wachten

Tijdens mijn zoektocht voor de mijnlift kwam ik ook nog een printplaatje tegen.
Volgens mij is deze bedoeld om servo's of motortjes aan te sturen.



Als iemand me hier iets meer over kan vertellen, graag...
Dat is het inderdaad. Als je 16 servo's wil aansturen en maar 2 pinnen van de Arduino wil gebruiken. Ik heb even gezocht op "duinofun" (dat staat op de print) en toen kwam ik via "PCA9685 16-Channel 12-bit PWM Servomotor" bij deze site:
http://learn.adafruit.com/16-channel-pwm-servo-driver?view=all
Zelf heb ik zoiets echter niet gebruikt.

Kan mij iemand mij vertellen of een arduino ook met 5 volt gevoed kan worden via de normale stroomingang?
Ze functioneren op een USB aansluiting en als ik 5 volt aansluit op de normale stroomingang, dan lijkt het te functioneren.
Maar of het ook blijvend goed gaat, dat is voor mij een grote gok.
Het advies is om tussen 7 en 12 volt op de V IN te zetten. Dan heeft de spanningsregelaar wat ruimte. Als je 5 volt wil gebruiken, kun je die ook op de USB ingang zetten.

Je bent verder lekker bezig.

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Pierre

  • Super Modelspoorder
  • ******
  • Berichten: 7.918
  • Thanked: 334 times
  • Geslacht: Man
  • Woonplaats: Den Haag (Loosduinen)
    • Haagse Modelbouw Club
Re: Kolenmijn in een kastje
« Reactie #53 Gepost op: 15 oktober 2018, 07:58:32 »
Man .. man .. ik vind die liftkooien helemaal geweldig Mark. Prachtig gemaakt. Het idee van vuile en schone mijnwerkers is ook leuk gedaan. Maar ... als de vuile boven zijn gaan ze ook weer vuil naar beneden ??? ;)
Groet Pierre.

Ik rommel wat met treintjes en bouwwerkjes in H0 (H0e) en ook een klein beetje in N  .... Scratchbuilding, kitbashing en weathering.  ;D Lid van de http://haagsemodelbouwclub.nl/

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #54 Gepost op: 15 oktober 2018, 21:18:12 »
Jahoe! Het is gelukt de lift doet zoals bedacht.
Hier een filmpje (als het lukt)

https://myalbum.com/album/wnPQ01cTIHtJ

Ik krijg het filmpje niet rechtstreeks op het forum.
Zal wel weer aan mijn grandioos gebrek aan computerkennis liggen.  ::)


Offline Michel Bikkel

  • Super Modelspoorder
  • ******
  • Berichten: 551
  • Thanked: 24 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #55 Gepost op: 15 oktober 2018, 21:27:55 »
Cool!
Groet Mies

Offline iTom

  • Super Modelspoorder
  • ******
  • Berichten: 5.306
  • Thanked: 146 times
  • Geslacht: Man
  • Blijf braaf, gezond en modelbouwen.
Re: Kolenmijn in een kastje
« Reactie #56 Gepost op: 15 oktober 2018, 21:36:09 »
Ik vind het geweldig.
ROCO Proline zonder bedding: DR5000 DIGIKEIJS/LocoNet, DCC: iTrain 5 pro:Rosoft s88: h0

Offline TD87

  • Kruier
  • *
  • Berichten: 5
Re: Kolenmijn in een kastje
« Reactie #57 Gepost op: 15 oktober 2018, 22:11:14 »
Netjes, ziet er leuk uit.

Offline Pierre

  • Super Modelspoorder
  • ******
  • Berichten: 7.918
  • Thanked: 334 times
  • Geslacht: Man
  • Woonplaats: Den Haag (Loosduinen)
    • Haagse Modelbouw Club
Re: Kolenmijn in een kastje
« Reactie #58 Gepost op: 15 oktober 2018, 22:15:57 »
Geweldig mark ... grote klasse. 8)
Groet Pierre.

Ik rommel wat met treintjes en bouwwerkjes in H0 (H0e) en ook een klein beetje in N  .... Scratchbuilding, kitbashing en weathering.  ;D Lid van de http://haagsemodelbouwclub.nl/

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #59 Gepost op: 15 oktober 2018, 22:48:37 »
Kijk, hier krijg ik een hele grote glimlach van.
ge-wel-dig, Mark!
En de snelheid van de liftkooien is helemaal goed, dunkt me.
Bijna zonde om dit in een la te (ver)stoppen  ;)

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #60 Gepost op: 16 oktober 2018, 08:49:23 »
Dankjewel heren, het is fijn om te lezen dat jullie ook leuk vinden.
Uiteraard bedankt voor de adviezen om tot zover te komen.

Mijn volgende uitdaging is echter eentje waar ik wederom wat advies bij nodig heb.
Om de wissels te bedienen wil gebruik maken van reedcontacten, servo's en Arduino.
Probleem 1 is dat zowel de loc als de wagonnetjes magneten eronder hebben.
Het reedcontact wordt hiermee zelfs tweemaal bediend.
In de praktijk (1 loc en 3 wagonnetjes) dus acht keer.
Hoe kan ik dit oplossen?

Vraag 2 is een Arduino nano voldoende om twee of vier servo's aan te sturen?
Dit ivm de beperkte ruimte en ik zit te twijfelen of het verstandig is om de volgende dingen een eigen Arduino te geven.
de lift,
spoor ovaal 1,
spoor ovaal 2,
mijnwerkers & verlichting & geluid
Tevens heb ik gezien bij tante Ali dat er twee soorten Arduino nano zijn MCU en AU?
Ook zag ik dat er met en onder USB aansluiting zijn, ik neem die met USB het eenvoudigst te programmeren zijn.
Voeding zou ook mogelijk zijn met 5volt, is dit aan te raden?

Vraag 3 is het mogelijk om de treintjes van voeding te voorzien vanuit een Arduino?
Ze rijden op 3v en trekken minder aan 1A.

Als ik alles apart zou doen dan kom ik op zo'n vijf of zes arduino's voor dit project.

Ik heb namelijk een zeer stabiele voeding van 5v 20A liggen die ik hiervoor zou kunnen gebruiken.

Offline Wim Corduwener

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 10.844
  • Thanked: 300 times
  • Geslacht: Man
  • Enschede (import)
    • Portfolio
Re: Kolenmijn in een kastje
« Reactie #61 Gepost op: 16 oktober 2018, 09:13:01 »
Fantastisch mooi gemaakt. Een dikke pluim!
Trefwoorden:  Mac • Modulebouw • H0, H0e en 0e • Tijdperk III (1950-1960) • Nederlands (H0 en H0e) • Frans (1:45) • Gelijkstroom • Twee rails • Voorlopig nog even analoog • Scratchbuilding en Kitbutchering... en ik maak eigenlijk nooit wat af.

Meest recente projecten: Frans diorama 2.0 (Spoor 0e) en Verbouwing Magic Train (schaal 0e)

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #62 Gepost op: 16 oktober 2018, 21:04:55 »
Vandaag bijna de gehele dag met arduino geprobeerd.
Wat een hel 🤬
Ik kom er niet door heen, heb gezocht voor cursussen in Limburg maar nog niets concreets gevonden.
Uiteindelijk kom ik uit op een antieke schakelmodule van trix.
Deze kan mooi omgezet worden door de reedcontacten.
Met twee aansluitingen kan dan of spoor 1 of 2 van stroom worden voorzien.
Op een derde aansluiting kan dan de arduino zien welk spoor stroom krijgt.
Dan kan de arduino de servo’s van de wissels bedienen.
Hiervoor heb ik de sketch van servo knob gebruikt, alleen de potmeter vervangen door een 10k weerstand.

https://myalbum.com/album/sdJx4AAlCqVN

Nu nog bedenken dat de loc nog iets doorrijdt zodat deze voorbij rijdt bij de magneetjes.
Ik dacht iets van een condensator of zo.

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #63 Gepost op: 16 oktober 2018, 22:20:16 »
Hoi Mark,

Vandaag bijna de gehele dag met arduino geprobeerd.
Wat een hel
Ja, dat programmeren kan heel frustrerend zijn. Maar niet opgeven, hoor!

Uiteindelijk kom ik uit op een antieke schakelmodule van trix.
Deze kan mooi omgezet worden door de reedcontacten.
Met twee aansluitingen kan dan of spoor 1 of 2 van stroom worden voorzien.
Op een derde aansluiting kan dan de arduino zien welk spoor stroom krijgt.

Nu nog bedenken dat de loc nog iets doorrijdt zodat deze voorbij rijdt bij de magneetjes.
Ik dacht iets van een condensator of zo.
Dit is een zogenaamd bistabiel relais, de schakelt om en onthoud dat als de stroom er weer af is. Lekker simpel, maar de loc nog even door laten rijden is een uitdaging. Mischien dat een flinke elco het werk kan doen, maar als dat niet lukt zou ik toch voor de Arduino gaan.

Zo'n Arduino scenario ziet er dan zo uit (misschien niet nodig, maar voor het geval dat...). Ik ga er dan van uit dat het reedcontact aan het einde van het opstelspoor zit.
  • Arduino zet rijspanning op opstelspoor 1: trein gaat rijden
  • Arduino doet even niets, zeg 10 seconden, zodat de trein voorbij rijdt en het reed contact bedient, maar de Arduino 'kijkt' hier niet naar. Dit kan bijvoorbeeld met de delay() functie
  • Na deze 10 seconden gaat de Arduino kijken of het reedcontact wordt geschakeld door het treintje.
  • De trein rijdt z'n ronje. Zodra de loc over het reedcontact van opstelspoor 1 rijdt, schakelt de Aruino de stroom uit
  • Vervolgens worden de wissels gesteld naar opstelspoor 2
  • Dan komt de rijstroom op opstelspoor 2. Dezelfde cyclus als voor spoor 1 wordt doorlopen
  • En daarna weer omschakelen naar spoor 1, en zo verder.

Dit is wel even wat programmeerwerk, maar ik kan je daar bij helpen als je dat wilt...
Dat is dan vraag 1 van je vorige bericht...

Ik heb namelijk een zeer stabiele voeding van 5v 20A liggen die ik hiervoor zou kunnen gebruiken.
Ah, dan heb je voldoende vermogen.
Je kunt de Arduino's op dan de 5V voeding aansluiten middels de 5V pin, i.p.v. de V-IN pin. Op de V-IN zit een spanningsregelaar, die ingangspanningen van 7 to 12 V omzet naar 5V. Maar als je 5V hebt, kan (moet) die meteen op de 5V van de Arduino.

Met deze 5V kun je ook de treintjes bedienen. Met wat halfgeleiders gaat de spanning wat naar beneden. Met een diode kun je de spanning 0,7V laten zakken, dus met 3 stuks in serie kom je van 5V op 2.9V. als je de rijstroom schakelt met een transistor, heb je nog slechts 2 aanvullende diodes nodig.

Het aantal Arduino's dat je gaat gebruiken is vooral afhankelijk van hoe ingewikkeld de sketch wordt: op zich zit er ruim voldoende input en output op een Arduino, maar alles bedienen met één programma'tje is het lastigste.
Je kunt ook van 2 Arduino's van elk een pin (met een weerstand) met elkaar verbinden: Eén Arduino is dan de meester en geeft aan wat de andere moet doen dor de pin hoog of laag te maken (laten we maar even geen ingewikkelde seriële communicatie doen).

Nogmaals: hou vol. Dat programmeren vreet gewoon tijd.

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #64 Gepost op: 17 oktober 2018, 08:39:20 »
Rob, als je zou kunnen helpen, heel, heel erg graag!
Ik snap het doel en het idee erachter, maar de commando's voor geen meter.
Wat ik tot nu toe gedaan heb is een bestaande sketch ombouwen naar iets bruikbaars voor mij.

Moet ik de rijspanning door een schakelrelais laten lopen? Die kan toch niet via de Arduino lopen?
Zo ja dan moet ik die nog kopen.
Inheb ook zitten denken, als ik me de twee servo's van de wissels de rijstroom schakel?
Twee contactstripjes of contactschakelaas en de rijstroom op de arm van de servo...
Dan hoef ik enkel twee servo's om te zetten met een vertraging.
Ik kan de reedcontacten nog verplaatsen waar ik wil.
Dus reedcontact geeft commando en de Arduino wacht vijf seconden voordat de servo's bediend worden. Ik zou dan bijvoorbeeld een ledje kunnen laten branden in die vijf seconden.
Twee keer delay achter elkaar zorgt ervoor dat de servo heel langzaam om gaat...
Tja, je zult mij wel begrijpen, hoop ik.

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #65 Gepost op: 17 oktober 2018, 10:01:40 »
Hoi Mark,

Ok, laten we zien of we het stap voor stap kunnen opbouwen.

Dit idee maakt het een stuk eenvoudiger.
...heb ook zitten denken, als ik me de twee servo's van de wissels de rijstroom schakel?
Twee contactstripjes of contactschakelaas en de rijstroom op de arm van de servo...
Dan hoef ik enkel twee servo's om te zetten met een vertraging.
Ik kan de reedcontacten nog verplaatsen waar ik wil.
Dus reedcontact geeft commando en de Arduino wacht vijf seconden voordat de servo's bediend worden. Ik zou dan bijvoorbeeld een ledje kunnen laten branden in die vijf seconden.
Twee keer delay achter elkaar zorgt ervoor dat de servo heel langzaam om gaat...
Tja, je zult mij wel begrijpen, hoop ik.

Dan worden de servo's (wissels) ook los van elkaar omgezet: De uitgaande wissel bedient dan een stuk stroomloos te zetten spoor van het opstelspoor.

Dan wordt de opzet inderdaad zoiets.
- Arduino zet uitgaande wissel op spoor 1 om en trein 1 rijdt weg (stroom via contact op servo)
- Arduino doet even niets en de hele trein passeert het reed contact en de uitgaande wissel
- trein 1 rijdt rondje en komt weer binnen op spoor 1
- loc rijdt over het reedcontact, en dan
- zet de Arduino het uitgaande wissel op spoor 1 weer terug. Spoor1 wordt nu door servo/contact ook stroomloos: trein 1 stopt
- even wachten...  (led aan)
- Dan (led uit en) dezelfde cyclus voor spoor 2 en trein 2

Zo'n sketch is wel te overzien.
Eens kijken of ik in de loop van vandaag een stukje van deze sketch kan maken...


Oh, rijden de treintjes dezelfde kant op of in tegengestelde richting? Ik ging tot nu toe uit van dat laatste... Dan moet ook nog ergens de rijstroom worden omgeschakeld. Zo niet, dan moeten de wissels weer iets anders worden bediend.
Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #66 Gepost op: 17 oktober 2018, 12:06:01 »
Hoi Mark,

Hier alvast een eerste idee van een sketch.
De sketch is al enigszins voorbereid op 2 sporen, maar werkt nu nog even op 1 spoor en wissel(servo). Om alvast een idee te krijgen.

Servo op pin D9 (en straks ook D10)
Reed contact op pin D4 (en straks ook op pin D5)
Ingebouwde LED (op pin 13)

Programma start en zet alles op de beginwaarden, dan start de cyclus:
- De servo (wissel) gaat op 'vertrek'.
- Dan wordt er 10 seconden gewacht met LED aan
- LED gaat uit en Arduino kijkt naar 'laag' op pin D4 (dus daar zit de reed verbonden met de ground)
- Als reed contact schakelt, gaat de servo terug, en
- er wordt 5 seconden gewacht op de volgende cyclus. LED knippert.

/* Trein in de Kolenmijn
    versie 0.1
*/

//=== Definities ===
//--- pinnen ---
#define ledpin            13                 // pin voor indicator LED (13 is ingebouwde LED)
#define spoor1_reed        4                 // input reed contact op spoor 1
#define spoor2_reed        5                 // input reed contact spoor 2
#define wisselA_servo      9                 // servo pin voor wissel A
#define wisselB_servo     10                 // servo pin voor wissel B

//--- waarden ---
// servo standen wissels (graden van de servo)
#define wisselA_spoor1    60
#define wisselA_spoor2   120
#define wisselB_spoor1   120
#define wisselB_spoor2    60

#define treininterval      5                 // aantal seconden tussen aankomst en trein en vertrek andere
#define vertrektijdsduur  10                 // aantal seconden na vertrek dat trein vrij is van reed contact en wissel

//--- bibliotheken ---
#include <Servo.h>


//=== Variabelen ===
int spoornummer = 0;                          // te bedienen spoor                                                       

Servo Wisselservo[2];                         // 2 wissel servo's

//=== Functies ===

//--- Functie: bedien een spoor ---
// Deze functie zet vertrek wissel, wacht even met LED aan, dan gaat de LED uit
// en wordt de wissel teruggezet bij signaal van het reedcontact.
// input: spoor nummer.

// ==> werkt aleen nog voor spoor 0!!!!
void BedienSpoor(int spoor) {
  Wisselservo[spoor].write(wisselA_spoor1);
  digitalWrite (ledpin,HIGH);                 // vertrek = LED aan
  delay(vertrektijdsduur * 1000);             // laat trein wegrijden
  digitalWrite (ledpin,LOW);                  // LED uit

  while ( digitalRead(spoor1_reed) == HIGH ) {   // wacht op 'laag' van reedcontact
  }
  Wisselservo[spoor].write(wisselA_spoor2);
}

//--- Functie: laat LED voor enige tijd knipperen
// input: knippertijdsduur in seconden
void LEDknipperen(int tijd) {
  int t;
  for (t=0; t<tijd ; t++) {
    digitalWrite(ledpin,HIGH);               // LED halve soconde aan
    delay(500);
    digitalWrite(ledpin,LOW);                // LED halve seconde uit
    delay(500);   
  }
}

//=== Initialisatie programma ===
void setup() {
 
  //--- wissel servo's ---
  Wisselservo[0].attach(wisselA_servo);       // pin voor wissel A aan 1e servo object koppelen
  Wisselservo[1].attach(wisselB_servo);       // pin voor wissel B aan 2e servo object koppelen
  Wisselservo[0].write(wisselA_spoor2);       // zet beide wissels op beginstand
  Wisselservo[1].write(wisselB_spoor1);
 
  //--- reed contacten ---
  pinMode(spoor1_reed, OUTPUT);
  digitalWrite(spoor1_reed,HIGH);             // standaard hoog (interne pull up)
  pinMode(spoor2_reed, OUTPUT);
  digitalWrite(spoor2_reed,HIGH);             // standaard hoog (interne pull up)

  //--- indicator LED ---
  pinMode(ledpin,OUTPUT);                     
  digitalWrite(ledpin,LOW);                   // LED uit
}
//=== hoofd programma ===
void loop() {
  BedienSpoor(spoornummer);
  LEDknipperen(treininterval);
  //spoornummer = !spoornummer;                 // wissel van spoor
}


De wisseling van trein hangt even af van rijrichting en zo...
Maar alvast deze sketch ter geruststelling :D

Rob

Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #67 Gepost op: 17 oktober 2018, 21:38:20 »
Hallo Rob,

Bedankt voor de snelle hulp.
Als ik door de sketch heen blader degint het me te duizelen.
Geen wonder dat ik er niet uitkom.

Ik ga hem dit weekend uitproberen, ik hou je op de hoogte.

Bij voorbaat dank.

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #68 Gepost op: 17 oktober 2018, 22:18:12 »
Graag gedaan, Mark.
Weet je al of de treintjes dezelfde kant op gaan rijden of in tegengestelde richting?
Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #69 Gepost op: 17 oktober 2018, 23:15:30 »
Liefst in tegengestelde richting.
Wellicht is de stroomrichting in een lok omdraaien eenvoudiger?

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #70 Gepost op: 18 oktober 2018, 19:31:35 »
Hoi Mark,

Liefst in tegengestelde richting.
Wellicht is de stroomrichting in een lok omdraaien eenvoudiger?
Dat is voor de stroomvoorziening inderdaad de eenvoudigste oplossing. Ik hoop dat dat in het locje ook kan, maar laten we daar voorlopig even van uit gaan.
Ik zag op de foto van je elektronica knutseldoos een paar "TIP 2955" vermogenstransistors liggen. Die kun je gebruiken voor de stroomvoorziening op de te schakelen rails. Met een max van 15A kun je zelfs zonder brokken kortsluiting maken....
Je hebt dan alleen nog per transistor een weerstand nodig om de basis te verbinden met een pin van de Arduino.
Ik denk dat die weerstand tussen de 220 ohm en 2k2 ohm kan zijn, maar misschien weet @Dirk T wat een goede waarde is voor een weerstand tussen een Arduino en de basis van een TIP2955?

Zo'n schakeling is mischien eenvoudiger dan contactjes op de servo's, en 2 pinnen schakelen voor de rijstroom op de opstelsporen is sowieso erg simpel er bij te programmeren (voor mij, dan). Waarschijnlijk zelfs eenvoudiger dan wat ingewikkelde bediening van wisselservo's met contacten...

Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline mark mms

  • Super Modelspoorder
  • ******
  • Berichten: 1.224
  • Thanked: 26 times
  • Geslacht: Man
Re: Kolenmijn in een kastje
« Reactie #71 Gepost op: 18 oktober 2018, 22:00:04 »
Hallo Rob,

Mijn zoon heeft zich er eens mee bemoeit en op youtube het programma XOD gevonden.
Daarmee heeft hij vandaag het een en ander geprobeerd.
En tot mijn verbazing, het werkt ook nog.

Als je wilt zet ik de sketch hier wel neer, niet dat ik er iets van snap, maar het zijn heel, heel veel regels.

Ik zet wel even een foto van het programma, de werking is redelijk te begrijpen. Het werkt met blokjes met verschillende betekenissen.



Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #72 Gepost op: 18 oktober 2018, 23:02:23 »
Hoi Mark,
Ah, ik heb even gekeken naar XOD: dat is inderdaad een visuele manier van programmeren.
Dat het heel veel regels programmacode oplevert is niet zo erg, zolang wat je wilt doen maar op de Arduino past, toch?
Zolang je de blokjes en hoe je die in elkaar klikt maar begrijpt, dat is het belangrijkste.

Ik zal wel even 'old school' blijven werken. Met die 6kB op de DigiSpark loop je gauw uit de programma ruimte. De 32kB op de Arduino is wat ruimer....

Rob



Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...

Offline Dirk T

  • Super Modelspoorder
  • ******
  • Berichten: 1.345
  • Thanked: 98 times
  • Geslacht: Man
  • Tweerail DCC, NL 1950-1975 met ruime blik
Re: Kolenmijn in een kastje
« Reactie #73 Gepost op: 19 oktober 2018, 10:59:04 »
Ik denk dat die weerstand tussen de 220 ohm en 2k2 ohm kan zijn, maar misschien weet @Dirk T wat een goede waarde is voor een weerstand tussen een Arduino en de basis van een TIP2955?

TIP2955 zijn PNP torren, oftewel: emitter aan +, collector aan verbruiker, andere zijde van verbruiker aan -
Verder zijn het inderdaad vermogenstorren, dat is mooi voor het aantal ampères maar: de versterkingsfactor is erg laag. Je hebt dus een grote stroom door de basis nodig en dat is algauw teveel voor de Arduino. Stel je wilt 3A kunnen schakelen, dan heb je 3000/20 = 150mA nodig door de basis. Maar een Arduino digitale uitgang mag maximaal 40mA. :(

Ben je met 0,5A tevreden dan is het nog steeds 25mA door de basis. Dat betekent dat je een weerstand nodig hebt van 150 ohm.

Een betere oplossing is een transistor met een hoge versterkingsfactor te gebruiken, de zogenaamde Darlington transistor. Bijvoorbeeld TIP145 (PNP) of TIP140 (NPN). Die hebben een versterking van minstens 1000x (tot 5A), zodat je aan een basisstroom van 5mA voldoende hebt om tot 5A te schakelen.
Het einde van een weg wordt altijd bereikt door hem stap voor stap af te lopen.

Offline Rob

  • Forumbeheerder
  • Super Modelspoorder
  • *****
  • Berichten: 2.743
  • Thanked: 161 times
  • Geslacht: Man
  • Rob zegt: denk aan morgen, doe vandaag.
Re: Kolenmijn in een kastje
« Reactie #74 Gepost op: 22 oktober 2018, 19:50:21 »
Ah, dank voor de uitleg, Dirk
Ik kan alleen niets anders in Mark's knutseldoos vinden (op de foto dan).
Rob
Ergens in (West) Duitsland tussen 1960 en 1970 | gelijkstroom analoog, met geluid | kleine vaste baan en uitbreiding met modulebaan.
Nu vooral bezig met van alles en nog wat...