diff --git a/PhotoStepper/Scenerunner.cpp b/PhotoStepper/Scenerunner.cpp index 6854610..183a436 100644 --- a/PhotoStepper/Scenerunner.cpp +++ b/PhotoStepper/Scenerunner.cpp @@ -69,11 +69,18 @@ void Scenerunner::_runHandler_shutter() { digitalWrite(_pin_shutter, LOW); digitalWrite(_pin_backlight, HIGH); if (step >= nSteps) { - _lcd->clear(); - _lcd->print("Return to start"); - runStep = RUN_RETURN; - runStepStart = millis(); - _stepper->startMove(- 200/8 * distance * (nSteps - 1)); + if (bReturn) { + _lcd->clear(); + _lcd->print("Return to start"); + runStep = RUN_RETURN; + runStepStart = millis(); + _stepper->startMove(- 200/8 * distance * (nSteps - 1)); + } else { + _lcd->clear(); + _lcd->print("Done"); + runStep = RUN_OFF; + runStepStart = millis(); + } } else { step++; _lcd->clear(); @@ -105,6 +112,10 @@ void Scenerunner::_runHandler_return() { _lcd->print("moving "); _lcd->print(distance * (nSteps - 1)); _lcd->print("mm"); + if (_stepper->getStepsRemaining() == 0) { + runStep = RUN_OFF; + runStepStart = millis(); + } } void Scenerunner::nextAction() {