Mist er nog iets?
void loop() { debounceButtons() ; // debounces all inputs cruise() ; // handle stepper motor uint8_t state = modeBtn.readInput() ; // state can be FALLING, RISING, LOW or HIGH. I mainly act on RISING or FALLING states. if( state == RISING ) { Serial.println("AUTOMATIC MODE") ; mode = AUTOMATIC ; // new mode can only be adopted when motor is not moving //dumpEEPROM() ; } if( state == FALLING ) { mode = MANUAL ; firstStore = true ; Serial.println("MANUAL MODE") ; } uint8_t cwState = CW.readInput() ; uint8_t ccwState = CCW.readInput() ; uint8_t recordState = record.readInput() ; if( ccwState == LOW && cwState == LOW ) { setCircumreference( 0xFFFF ) ; Serial.println(F("setCircumreference wiped, reboot")) ; while( 1 ) ; } if( mode == MANUAL ) { if( cwState == FALLING ) cruiseCW() ; if( ccwState == FALLING ) cruiseCCW() ; if( cwState == RISING || ccwState == RISING ) stopCruising() ; else if( recordState == RISING ) { if( firstStore ) clearSlots() ; firstStore = false ; storeSlot( position ) ; } } if( mode == AUTOMATIC ) { update() ; // update stepper positions if( cwState == FALLING ) { shiftCW() ; } if( ccwState == FALLING ) { shiftCCW() ; } } REPEAT_MS( 500 ) // print new positions to monitor every 500ms { static uint32_t prevPos ; if( prevPos != position ) { Serial.print( position ) ; Serial.print(" "); Serial.println( currentSpeed ) ; prevPos = position ; } } END_REPEAT}
Nog een suggestie voor jouw lijst:Spersignaal. Op draaischijven zitten (vaak?) sperseinen. Rood bij bezet en wit bij vrij. Die zijn in mijn sketch en de stuurprint ingebouwd.
Ik weet niet of je het al hebt, maar langzaam optrekken en remmen. Ik zou dan kijken naar de accelstepper library (als je dat nog niet gedaan heb).
onnodig ingewikkeld met worteltrekformules enzo
Ik ben er ook wel erg tevreden over hoe het nu uitpakt.Bediening via seriële poort (voor analoge toepassing)
Bediening via DCC (Fleischmann protocol?)
De ervaring leert dat ik niet goed overweg kan met Arduino sketches die door anderen gemaakt zijn.
Adr.| | Functie--------------------------------------------200 | rood | 180° met de klok mee draaien | groen | 180° tegen de wijzers van de klok in draaien201 | rood | spoorwegverbinding 1 met brughuisje bij de aansluiting | groen | spoorwegverbinding 1 zonder brughuisje bij de aansluiting202 | rood | spoorwegverbinding 2 met brughuisje bij de aansluiting | groen | spoorwegverbinding 2 zonder brughuisje bij de aansluiting203 | rood | spoorwegverbinding 3 met brughuisje bij de aansluiting | groen | spoorwegverbinding 3 zonder brughuisje bij de aansluiting ...247 | rood | spoorwegverbinding 47 met brughuisje bij de aansluiting | groen | spoorwegverbinding 47 zonder brughuisje bij de aansluiting248 | rood | spoorwegverbinding 48 met brughuisje bij de aansluiting | groen | spoorwegverbinding 48 zonder brughuisje bij de aansluiting
Ik had wel naar de Accelstepper library gekeken, en ook naar de Flexystepper library, maar daar had ik toch ruzie mee. Ik kon in ieder geval geen optie vinden dat er rekening gehouden wordt met een rondgaande beweging. Ze zijn volgens mij meer voor lineaire bewegingen bedoeld.
Zo'n spersignaal had ik niet over nagedacht. Voor de Fiddle Yard hoeft het niet en bij de VSM hebben ze dat ook niet, dacht ik.Hoe werkt dat dan Bert? Bij eindpositie bereikt èn brugspoor vrij => wit licht? En dan aan beide zijden? Of alleen aan de zijde waar één loc toestemming krijgt om op te rijden?