Doel:€250.00
Donaties:€50.00

Per saldo:€-200.00

Steun ons nu!

Laatst bijgewerkt
op 03-01-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

NS 8400 van Werps door Ivo tB
Vandaag om 00:08:14
De (3d) knutsels van Ronald. door Jan-Peter
Vandaag om 00:04:32
U-vorm beperkte ruimte (H0 C-rails) door hmmglaser
28 maart 2024, 23:42:04
Onlangs gespot - gefotografeerd, de foto's door GerardvV
28 maart 2024, 23:37:18
US diorama in H0 door Wim Vink
28 maart 2024, 23:31:57
Al mijn goede ideeën... door bask185
28 maart 2024, 23:12:12
Gebruik je Arduino zonder te "programmeren" ;) door bask185
28 maart 2024, 22:51:58
21 april Het stoomgenootschap door bloemenvelden door Seinhuis
28 maart 2024, 22:46:29
7 april De Karel on tour door Seinhuis
28 maart 2024, 22:44:31
Raadplaatje door Magic
28 maart 2024, 22:23:21
LokSound 4 decoders, files verbeteren (voor Roco b.v. TEE RAm, NS2400, etc) door Biesje
28 maart 2024, 22:06:44
Geluid NS Mat'46 vs NS Mat'54 door Rob Bennis
28 maart 2024, 21:54:12
Engelse wagon uit 1930 opgegraven in Antwerpen door willem2
28 maart 2024, 21:52:45
NS GLY omspuiten en opschriften door Rob Ellerman
28 maart 2024, 21:45:55
De Hondsrugbaan door cor_b
28 maart 2024, 21:40:07
welk jaar ging Marklin OVP voor wagons van blauw naar wit door Railman
28 maart 2024, 21:36:50
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
28 maart 2024, 21:22:18
Mijn eerste H0-modeltreinbaan in aanbouw door puntenglijder
28 maart 2024, 21:15:13
Bouw van materieel 40 treinstellen door Rob Bennis
28 maart 2024, 21:09:04
30 maart Modelspoorbeurs Houten & HCC Kennisdag door basjuh1981
28 maart 2024, 20:54:43
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door 1200blauw
28 maart 2024, 20:32:41
Welke Vallejo kleur voor drijfstangen van een DB stoomlocomotief? door Ronald69
28 maart 2024, 20:00:39
Toon hier je nieuwe (model-) spooraanwinst(en)... door arnout
28 maart 2024, 19:53:27
Punt- en hartstukken door Klaas Zondervan
28 maart 2024, 19:41:21
MARDEC, de Multifunctionele ARduino dcc DECoder. door bord4kop
28 maart 2024, 19:34:37
Piko NS 2015 stroomafname probleem door Ben
28 maart 2024, 19:08:30
Bauarbeiten im gange door ruudns
28 maart 2024, 18:50:26
HSM D1715 door vpeters1984
28 maart 2024, 17:34:25
Beekdaelen in H0 door Stieven76
28 maart 2024, 17:17:41
Ombouw/Pimpen Bolle neuzen door bollen neus
28 maart 2024, 15:58:15
  

Auteur Topic: El carrilet  (gelezen 26214 keer)

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: El carrilet
« Reactie #30 Gepost op: 20 november 2020, 11:00:37 »
Dit is mijn meest recente bouwsel; een traverse, gemaakt met met het loopwerk van een oude matrixprinter met stappenmotor. Op de plaats van de printkop zit de bak van de traverse. Besturing met een Arduino. Met een draaiknop wordt het spoor gekozen en na indrukken van een knopje schuift de bak naar het gekozen spoor.
De sporen zijn nog niet aangesloten op een regelaar, dat wordt de volgende stap.


<a href="https://www.youtube.com/v/BaNMoxOLXKg" target="_blank" class="new_win">https://www.youtube.com/v/BaNMoxOLXKg</a>

Als het filmpje niet start, dit is de link.
El Carrilet
"te dom om te poepen"
MH

Jack Black (NS1220)

  • Offline Offline
  • Berichten: 5642
Re: El carrilet
« Reactie #31 Gepost op: 20 november 2020, 12:33:23 »
Prachtig  (y)
Ik hou van bewegende dingen op de baan.
Welk land en welke periode heb je als thema?
de groeten van Jacob
Modelbouwer in H0 en H0e. Tijdperk ongeveer '65~'75.
Vervoer van goederen met gewone wagons en 20' containers op platte wagens.
En iets in LGBschaal:
https://forum.beneluxspoor.net/index.php?topic=88776.0

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: El carrilet
« Reactie #32 Gepost op: 20 november 2020, 13:05:06 »
Hoofdzakelijk NL materieel, maar ik heb ook een Duitse stoomlok, en een USA Burlington Northern loc en een Canadese CN, gewoon omdat ik die mooi vond en er tijdens een vakantie toevallig tegenaan liep.

Wat tijdperken betreft doe ik niet moeilijk, ik rij met wat ik mooi vind. Het gaat mij meer om de besturing en de elektronica. Ik lig er ook niet wakker van dat er gelijke wagennummers in dezelfde trein zitten...  ;)
« Laatst bewerkt op: 20 november 2020, 14:18:27 door 72sonett »
El Carrilet
"te dom om te poepen"
MH

Jack Black (NS1220)

  • Offline Offline
  • Berichten: 5642
Re: El carrilet
« Reactie #33 Gepost op: 20 november 2020, 13:46:03 »
Wagennummers; je hebt van die fundamentalisten die eisen dat die allemaal verschillen  :D
Ik heb ook D en NL en net als jij een paar USA locs die ik mooi vind: Die EMD DDA40X moest ik natuurlijk wel hebben  :)
de groeten van Jacob
Modelbouwer in H0 en H0e. Tijdperk ongeveer '65~'75.
Vervoer van goederen met gewone wagons en 20' containers op platte wagens.
En iets in LGBschaal:
https://forum.beneluxspoor.net/index.php?topic=88776.0

Frycio82

  • Offline Offline
  • Berichten: 1142
  • Ooit zullen de treinen rijden....maar eerst bouwen
Re: El carrilet
« Reactie #34 Gepost op: 22 november 2020, 21:39:00 »
Hallo,

Geweldig die traverse :):):)  (y) (y) (y) (y) (y)
Goed idee met die stappenmotor van een matrix printer.

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: El carrilet
« Reactie #35 Gepost op: 23 november 2020, 12:55:36 »
Goed idee met die stappenmotor van een matrix printer.

Mocht het je interesseren, dit is het principeschema:



« Laatst bewerkt op: 24 november 2020, 08:38:39 door 72sonett »
El Carrilet
"te dom om te poepen"
MH

Frycio82

  • Offline Offline
  • Berichten: 1142
  • Ooit zullen de treinen rijden....maar eerst bouwen
Re: El carrilet
« Reactie #36 Gepost op: 24 november 2020, 07:07:41 »
Hallo,

Bedankt voor het schema. Kan dit ook worden uitgevoerd met een Arduino Uno ? Daar heb ik er nog een paar van liggen :)

bask185

  • Offline Offline
  • Berichten: 4009
Re: El carrilet
« Reactie #37 Gepost op: 24 november 2020, 08:07:48 »
Misschien, in dit schema zijn A6 en A7 gebruikt en een UNO heeft die niet. Echter A2 is nog vrij om te gebruiken en je kan ook nog pin 0 en 1 gebruiken, maar let op dat je die weer makkelijk los kan maken omdat iets aansluiten op die pinnen het upload process zou kunnen verstoren. Ik weet verder niets af van die BCD<->7 segment omzetter.

@Sonnet, ik weet niet wat je precies doet met A6 en A7, ik had ooit gelezen dat je die alleen als analoge input kon gebruiken ???

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

gvandersel

  • HCC!m maar toch Selectrix (RMX)
  • Offline Offline
  • Berichten: 3602
  • Als het maar elektrisch is.
    • Homepage Gerard van der Sel
Re: El carrilet
« Reactie #38 Gepost op: 24 november 2020, 09:10:56 »
A6 en A7 zijn eigenlijk poort C pin 6 en pin 7 en zijn mits uitgevoerd gewoon als dogitale input/output te gebruiken, net als A0 tot A5.

Groet,

Gerard van der Sel.
Holzburg (IIIb/IVa) schaal N.
Kijk ook eens bij de bouw en lees de avonturen.

bask185

  • Offline Offline
  • Berichten: 4009
Re: El carrilet
« Reactie #39 Gepost op: 24 november 2020, 09:17:37 »
Hm ik heb het gegoogled en A6 en A7 kun je niet als digitale pinnen inzetten. Ze zijn alleen aangesloten op een interne multiplexer op de ADC.
https://forum.arduino.cc/index.php?topic=568116.0

Bas

Train-Science.com
Train-Science github
It ain't rocket science ;-)

ikbenerevenniet

  • Offline Offline
  • Berichten: 379
Re: El carrilet
« Reactie #40 Gepost op: 24 november 2020, 09:51:55 »
Kan dit ook worden uitgevoerd met een Arduino Uno ?

Ja. Als het om pins A3 t/m A7 gaat: de Uno heeft genoeg vrije digitale I/O-pins, nl. 2 t/m 13 (*) en A0 t/m A5. Alleen is van die laatste reeks A1 in 72sonett's schema al in gebruik als analoge input, en die heb je op de Uno natuurlijk ook weer nodig.

*: Ook nog 0 en 1, maar die kun je beter vrij houden, zijn nl. voor de seriepoort, en die heb je nodig om een sketch te kunnen uploaden.
« Laatst bewerkt op: 24 november 2020, 10:05:51 door Erik Baas »

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: El carrilet
« Reactie #41 Gepost op: 24 november 2020, 11:33:08 »
Dat van A6 en A7 wist ik van de Arduino reference, maar ik gebruik ze als digitale uitvoer en blijkbaar gaat dat goed.  Eventueel kun je de LT op A5 weglaten en dan A2 en A5 gebruiken ipv A6 en A7.

De draaischakelaar geeft met een weerstandsladder een analoge waarde aan de Nano, die waarde wordt verschaald naar een getal 0..5 voor het spoornummer. Dit nummer wilde ik zichtbaar maken op een grote 7-segmentdisplay opgebouwd uit rechthoekige leds, maar omdat er op de Nano geen 7 I/O lijnen meer vrij waren heb ik dat met een BCD naar 7segment decoder gedaan door het spoornummer per bit naar de (4) A, B, C en D ingangen van de decoder te schrijven. Toen was er nog weer een I/O voor de lamptest (LT) beschikbaar dus die heb ik ook maar gebruikt, hoewel je voor die LT ook een 8 naar de display kan sturen. Je kunt dat hele 7segmentdeel ook weglaten, ik heb het ook nog niet aangesloten.


Het aantal stappen tussen de sporen heb ik experimenteel vastgesteld en de waarde als constante in het programma gezet, zo ook het stukje tussen de parkeerstand helemaal links en spoor 0.

Bij inschakelen is de stand van de stappenmotor en de traverse niet bekend, er moet dus eerst een nulstand worden bepaald. Dat gebeurt door de traverse langzaam naar links te schuiven totdat een schakelaartje wordt ingedrukt (het klikken van het schakelaartje is te horen in het filmpje). Vanuit die 'parkeerstand' schuift de traverse dan naar spoor 0.

In het filmpje is te zien dat de traverse soms blijft haken achter een aansluitend spoor en de motor een paar stappen overslaat, dan is de nulstand ook weg en dan lijnen de sporen niet meer op met de traverse. Daarom wordt iedere keer als spoor 0 gekozen wordt de parkeerstand weer even opgezocht en dan klopt het weer.

In het filmpje is ook te zien dat na inschakelen de LCD niet altijd goed de tekst weergeeft, maar als ik dan de resetknop op de Nano indruk is het weer ok.

De traverse is overigens een Märklin brugdeel.

Voor de liefhebbers, dit is het programma;
// ULN2803/4 controller board, Matsushita 42SIM-24D8YB/24D8A stepper motor
// I/O pin1 = 4 rood  ---> pin 4 stepper motor
// I/O pin2 = 5 bruin ---> pin 2     ,,
// I/O pin3 = 6 geel  ---> pin 1     ,,
// I/O pin4 = 7 blauw ---> pin 3     ,,
//              wit   ---> pin 5   (VCC)
// volgorde; 6 -> 6+5 -> 5 -> 5+7 -> 7 -> 7+4 -> 4 -> 4+6
//
//--------------------- [global variables ]------------------------------------------------------
const byte maxspoor    = 6;  // aantal sporen
const byte parkpause   = 2;  // minimum pause in msec = max. snelheid
const byte schuifpause = 1;  // max. pause in msec = min. snelheid
const word stappenperspoor = 130; // aantal stappen tussen 6 sporen 0..5
const word stappennaarnul  =  30; // aantal stappen van parkeerpositie naar spoor 0
char messVersie[]="Traverse 1.0      "; // 18 posities

byte doelspoor;              // 6 sporen, om doelspoor 0..5 aan te geven
byte actspoor;               // om actuele spoor aan te geven

byte rotorpos[9];            // fases 00000000 .. 00001010
byte index;                  // begin fasepositie na parkeren
int stappen;                 // totaal te nemen stappen vooruit (+) of achteruit (-)
bool parkstand;              // om aan te geven of in parkeerstand of niet
//
//                  bit  D76543210
const byte LCDcls      = B00000001; // clear LCD
const byte autoinc     = B00000110; // Set Auto-Increment on
//                       B00001100; // Display on/off control: Display on, cursor off, blink off
const byte cursoron    = B00001110; // Turn On Cursor
const byte twoline4b5x8= B00101000; // Function Set: 4 bits, 2-Line Mode, 5x8 font
// Function set          B001LNF--  Sets interface data length (L), number of display lines (N), and character font (F). 37 ms
//                           1      : 8 bits,
//                           0      : 4 bits
//                            1     : 2 lines,
//                            0     : 1 line
//                             1    : 5 x 10 dots,
//                             0    : 5 x 8 dots
//                       B00110100; // Function Set: 8-bit, 1 line, font 5x10
const byte cursorleft  = B00010000; // move cursor 1 pos to left
const byte cursorright = B00010100; // move cursor 1 pos to right
//                       B0001 S/C R/L — — // Cursor or display shift without changing DDRAM contents. 37 ms
//                              1     = Display shift
//                              0     = Cursor move
//                                  1   = to the right
//                                  0   = to the left



// -----[ I/O pin definitions ]-------------------------------------------------
const byte draaiswpin  = A1;  // invoer voor doelspoor 0..6
const byte parkswpin   = 5;   // invoer parkeerschakelaar
       
const byte stepB4pin   = 10;  // naar stappenmotor via ULN2003 pin B1..B4
const byte stepB3pin   = 11;
const byte stepB2pin   = 12;
const byte stepB1pin   = 13;
//
const byte BCDpinA     = A3;  // BCD naar 7 seg display
const byte BCDpinB     = A7;
const byte BCDpinC     = A6;
const byte BCDpinD     = A4;
const byte lamptestpin = A5;

const byte ledroodpin  = 6;   // naar rode led op lcdboard
const byte ledgroenpin = 4;   // naar groene led op lcdboard
const byte LCDd4pin    = A0;  // naar LCD datapin D4
const byte LCDd5pin    = 9;   // naar LCD datapin D5
const byte LCDd6pin    = 2;   // naar LCD datapin D6
const byte LCDd7pin    = 8;   // naar LCD datapin D7
const byte ENpin       = 7;   // naar LCD pin 10 ENable read/write
const byte RSpin       = 3;   // naar LCD pin 9 Register SELECT; 0 = Instructie, 1 = data/text
 
//======================[ LCD subroutines ] ======================================================
void ClearLCD() {
  SendInst (LCDcls); // Clear display
}
// ----------------------------------
void SendInst(byte inst){
  digitalWrite(RSpin,LOW);   // Set instruction mode
  SendChar (inst);
  digitalWrite(RSpin,HIGH);  // Back to text mode;
}      // SendInst           
// ----------------------------------
void SendChar (byte kar){

  digitalWrite(LCDd4pin,bitRead(kar,4));  // kar.HIGHNIB   // Send High Nibble
  digitalWrite(LCDd5pin,bitRead(kar,5));
  digitalWrite(LCDd6pin,bitRead(kar,6));
  digitalWrite(LCDd7pin,bitRead(kar,7));
  digitalWrite(ENpin,1);                  // puls op ENable, LCD neemt data over
  delayMicroseconds(5);
  digitalWrite(ENpin,0);
  //
  digitalWrite(LCDd4pin,bitRead(kar,0));   // kar.LOWNIB    // Send Low Nibble
  digitalWrite(LCDd5pin,bitRead(kar,1));
  digitalWrite(LCDd6pin,bitRead(kar,2));
  digitalWrite(LCDd7pin,bitRead(kar,3));
  digitalWrite(ENpin,1);                   // puls op ENable, LCD neemt data over
  delayMicroseconds(5);
  digitalWrite(ENpin,0);
  //delay(10);
} // SendChar
//----------------------------------------------------------------------------------
void stepperstap(byte index) {  // draai steppermotor 1 stap
  digitalWrite(stepB1pin,bitRead(rotorpos[index],0));
  digitalWrite(stepB2pin,bitRead(rotorpos[index],1));
  digitalWrite(stepB3pin,bitRead(rotorpos[index],2));
  digitalWrite(stepB4pin,bitRead(rotorpos[index],3));
} // stepperstap
//----------------------------------------------------------------------------------
void motorstop () {                // maak steppermotor stroomloos, leds aan/uit
  stepperstap(0);
  digitalWrite (ledroodpin,LOW);   // rode led uit
  digitalWrite (ledgroenpin,HIGH); // groene aan
} // motorstop
//----------------------------------------------------------------------------------
void parkeer() {                   // draai langzaam terug naar positie 0 totdat schakelaar wordt ingedrukt
  char messPark1[15] = "Parkeren...   ";
  char messPark2[15] = "Geparkeerd.   ";

  digitalWrite (ledroodpin,HIGH);     // rode led aan, groene uit
  digitalWrite (ledgroenpin,LOW);
  ClearLCD;
  delay(50);
  for (int t = 0; t<= 11; t++) { SendChar (messPark1[t]); } // laat "Parkeren... " boodschap zien

  index = 9;                          // begin ergens
  parkstand = digitalRead(parkswpin); // kijk naar eindschakelaar op traverse (= ook op LCD module)
  while (parkstand == false) {        // zolang schakelaar niet ingedrukt
      index = index - 1;              // draai linksom
      if (index < 1) {index = 8; };   //
      stepperstap(index);
      delay (parkpause);
      parkstand = digitalRead(parkswpin);  // kijk naar eindschakelaar op traverse
  }   // schakelaar ingedrukt in eindstand

  // schuif naar spoor 0
  for (int t = 0; t == stappennaarnul; t++) {      // 512 = 1 REV rotor shaft = 1/64 REV output shaft, half step
    index = index + 1;           // positief, rechtsom
    if (index > 8) {index = 1; } // opnieuw beginnen als te groot
    stepperstap(index);          // uitvoer naar stappenmotor via ULN2003
    delay (schuifpause*2);       // langere pauze = langzamer schuiven
  }
 
  motorstop;                     // motor stroomloos, leds aan/uit
  ClearLCD;             
  for (int t = 0; t<= 13; t++) { SendChar (messPark2[t]); } // laat "Geparkeerd." boodschap zien

  actspoor  = 0;                 // actuele stand van schuifbrug
  doelspoor = 0;
  delay (1000);                  // wacht om tekst te laten zien
}
//===================================================================================================
int haalstappen (int steps){         //draaischakelaar geeft spoor aan, spoor 0 = parkeerstand
  char messWacht[8]= "Wacht: ";
  char messNaar[8] = " ---> ?";
  char messSpoor[8]= "Spoor  ";
  byte tmpspoor;
 
  tmpspoor = actspoor;
  do {                             // wachten tot schakelaar is ingedrukt, dan parkswpin == high
    doelspoor = map(analogRead(draaiswpin),0,1023,0,5); // kijk naar draaischakelaar
    if (tmpspoor != doelspoor) {   // laat stand draaischakelaar zien op LCD en 7 seg als veranderd is
      tmpspoor = doelspoor;
      SendInst(cursorleft);         // zet cursor 1 pos naar links
      SendChar(48 + doelspoor);     // laat nieuwe 'naar' spoornr zien op LCD
      //
      digitalWrite(BCDpinA,!bitRead(doelspoor,0));   // laat doelspoor zien op 7 seg display, 'laag' ís aan
      digitalWrite(BCDpinB,!bitRead(doelspoor,1));
      digitalWrite(BCDpinC,!bitRead(doelspoor,2));
      digitalWrite(BCDpinD,!bitRead(doelspoor,3));
    }
  }
  while (digitalRead(parkswpin) == LOW); // niets doen zolang schakelaar op LCD module niet is ingedrukt
  //
  if (doelspoor > maxspoor) { doelspoor = maxspoor; }
  //DEBUG CRSRXY, 1,2, BIN dipsw, " doelspoor = ", DEC doelspoor, "     "
  steps = (doelspoor-actspoor) * stappenperspoor;     // kan negatief zijn
  //DEBUG CRSRXY, 1,3, "haalstappen; spoor ", DEC actspoor, " --> ", DEC doelspoor, " stappen = ", SDEC steps,"      ", CR

  ClearLCD;
  for (int t = 0; t<=5; t++) { SendChar(messSpoor[t]); }   //lookup t, ["Spoor "], char
  SendChar (48 + actspoor);  // laat 'van' spoornr zien op LCD
  for (int t = 0; t<=5; t++) { SendChar(messNaar[t]);  }   //lookup t, [" ---> "], char
  SendChar (48 + doelspoor);  // laat 'naar' spoornr zien op LCD

  return steps; // haalstappen
}
// =======================================================================================0
void setup() {
  pinMode(draaiswpin,INPUT); // invoer draaischakelaar
  pinMode(parkswpin,INPUT);  // invoer parkeerschakelaar = ook schakelaar op LCD module
   
  pinMode(stepB1pin,OUTPUT); // uitvoer naar stappenmotor via ULN2003
  pinMode(stepB2pin,OUTPUT);
  pinMode(stepB3pin,OUTPUT);
  pinMode(stepB4pin,OUTPUT);

  pinMode(BCDpinA,OUTPUT);   // BCD naar 7 seg display
  pinMode(BCDpinB,OUTPUT);
  pinMode(BCDpinC,OUTPUT);
  pinMode(BCDpinD,OUTPUT);
  pinMode(lamptestpin,OUTPUT);

  pinMode(RSpin,OUTPUT);     // = LCD PIN 9 Register Select; 0 = Instructie, 1 = data/text
  pinMode(ENpin,OUTPUT);     // = ENable read/write
  pinMode(LCDd4pin,OUTPUT);  // LCD datapin d4
  pinMode(LCDd5pin,OUTPUT);  // LCD datapin d5
  pinMode(LCDd6pin,OUTPUT);  // LCD datapin d6
  pinMode(LCDd7pin,OUTPUT);  // LCD datapin d7
 
  pinMode(ledroodpin,OUTPUT); // leds op lcdboard
  pinMode(ledgroenpin,OUTPUT);

  rotorpos[0] = B0000000;   // 0
  rotorpos[1] = B0000010;   // 6
  rotorpos[2] = B0000110;   // 6+5
  rotorpos[3] = B0000100;   // 5
  rotorpos[4] = B0000101;   // 5+7
  rotorpos[5] = B0000001;   // 7
  rotorpos[6] = B0001001;   // 7+4
  rotorpos[7] = B0001000;   // 4
  rotorpos[8] = B0001010;   // 4+6

  // ------------------ Initialize LCD -------------------------------
  //LOW  RW               ' write mode
  //LOW  RS               ' instruction mode
  //LOW  LCDDB4           ' Set To 4-bit Operation
  //HIGH LCDDB5
  //LOW  LCDDB6
  //LOW  LCDDB7
  //PULSOUT EN,3   
  SendInst (twoline4b5x8); // %00101000 = 2-Line Mode, 4 bits, 5x8 font
  SendInst (cursoron);     // %00001110 = Turn On Cursor
  SendInst (autoinc);      // %00000110 = Set Auto-Increment on
  ClearLCD;
  //
  for (int t=0; t<=18; t++) {SendChar (messVersie[t]); }
  delay (3000);            // laat versie zien
  lamptest;                // 7 segment lamptest
  parkeer;                 // draai naar positie 0 totdat schakelaar wordt ingedrukt, dan naar spoor 0
}
// --------------------------------------------------------------------
void lamptest(){           // lamptest; 7 segment alle leds aan
   char messLamptest[15] = "lamptest...    ";
   for (int t=0; t<=15; t++) {SendChar (messLamptest[t]); }
   //
   /*
   t = 8;
   digitalWrite(BCDpinA,bitRead(t,0));   // laat '8' zien op 7 seg display
   digitalWrite(BCDpinB,bitRead(t,1));
   digitalWrite(BCDpinC,bitRead(t,2));
   digitalWrite(BCDpinD,bitRead(t,3));
   */
   digitalWrite(lamptestpin,0);   // maak lamptestpin laag, '8' gaat aan
   delay (1000);                  // 1 seconde 7 segment lamptest
   digitalWrite(lamptestpin,1);   // maak lamptestpin hoog
}
// --------------------------[ main ]-----------------------------------
//
void loop() {         
  haalstappen (stappen);       // aantal stappen aan de hand van spoornummer via draaischakelaar
  // motor gaat draaien
  digitalWrite (ledroodpin, HIGH);     // rode leds aan
  digitalWrite (ledgroenpin,LOW);      // groene led uit
  //
  for (int stap = 0; stap == abs(stappen); stap++) {  // STEP (HFstep+1) // 512 = 1 REV rotor shaft = 1/64 REV output shaft, half step
    if (stappen > 0) { 
      index = index + 1; }       // positief, rechtsom
    else {
      index = index - 1; }       // negatief, linksom
    if (index > 8) {index = 1; } // opnieuw beginnen van onder als te groot
    if (index < 1) {index = 8; } // opnieuw beginnen van boven als te klein
    stepperstap(index);          // uitvoer naar stappenmotor via ULN2003
    if ((stap < (stappenperspoor/4) ) || (stap > (abs(stappen)-stappenperspoor/4) ))
    {
      delay (schuifpause*2);     // langzaam schuiven als dichtbij doelspoor
    }
    else {
      delay (schuifpause);       // snel schuiven
    }
  }
 
  actspoor = doelspoor;          // schuifbrug is verplaatst naar doelspoor
 
  if (doelspoor == 0) { parkeer(); } // opnieuw nulstand vaststellen
 
  motorstop;                     // steppermotor stroomloos, rode led uit, groen aan
 
}
// ======================================= [ einde prog ]==============================================================

« Laatst bewerkt op: 27 november 2020, 10:21:23 door 72sonett »
El Carrilet
"te dom om te poepen"
MH

ModelbouwHO

  • Nieuwe gebruiker
  • Offline Offline
  • Berichten: 1
Re: El carrilet
« Reactie #42 Gepost op: 21 maart 2021, 20:03:57 »
De AMSregelaar werkt naar behoren bij mij. Ik heb de serial monitor de snelheid verhoogd. Het uitlezen van de schuifpotentiometer heeft alleen invloed als meer dan 10 % gewiizigd word. Hiermee heb ik vier autootjes rustig rijden. Vr gr Hans

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: El carrilet
« Reactie #43 Gepost op: 29 oktober 2021, 21:50:16 »
Vandaag de boel na lange tijd en wat aanpassingen in het programma weer eens laten rijden:

<a href="https://YouTube.com/v/AFlBLjeHkWE" target="_blank" class="new_win">https://YouTube.com/v/AFlBLjeHkWE</a>

Ging vrij probleemloos met een NS2200 maar een Sik gaf veel storingen.
El Carrilet
"te dom om te poepen"
MH

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: El carrilet
« Reactie #44 Gepost op: 02 februari 2022, 17:38:26 »
De afgelopen weken met Tinkercad ons huis in 3d nagebouwd in 1:100. Vorige week de bestanden naar een Fablab gebracht hier in de buurt en het huis laten afdrukken. Het huis is in 4 delen getekend; garage, bg, 1e verdieping en dak. Het moet nog wat bijgesneden worden hier en daar, er moet nog doorzichtig plastic in de ramen en deuren, de garage moet nog grijs geverfd worden en de 4 delen moeten dan op elkaar gelijmd worden. Dan nog een plekje zoeken ergens op de modelbaan...
Misschien ook nog licht er in maken, als dat niet teveel doorschijnt.

De schaal is 1:100 ipv 1:87 dus het huis is iets te klein, maar dat valt niet op (de auto is een Wiking model in 1:87). Misschien laat ik het nog een keer drukken met een schaalfactor van 1,15 (=100/87).






El Carrilet
"te dom om te poepen"
MH