diff --git a/PhotoStepper/Scenerunner.cpp b/PhotoStepper/Scenerunner.cpp index ed42d0d..3d44de6 100644 --- a/PhotoStepper/Scenerunner.cpp +++ b/PhotoStepper/Scenerunner.cpp @@ -12,9 +12,10 @@ Scenerunner::Scenerunner(LiquidCrystal *lcd, BasicStepperDriver *stepper, int pi } void Scenerunner::start() { + step = 1; _lcd->clear(); - _lcd->print("Running..."); - steps_left = nSteps; + _lcd->print("Step "); + _lcd->print(step); runStep = RUN_SETTLE; runStepStart = millis(); } @@ -26,8 +27,13 @@ void Scenerunner::_runHandler_off() { void Scenerunner::_runHandler_settle() { _lcd->setCursor(0, 1); - _lcd->print("rS: SETTLE "); + _lcd->print("Settling "); + _lcd->print(tSettle); + _lcd->print("ms"); if (millis() >= runStepStart + tSettle) { + _lcd->clear(); + _lcd->print("Step "); + _lcd->print(step); runStep = RUN_FOCUS; runStepStart = millis(); } @@ -35,8 +41,13 @@ void Scenerunner::_runHandler_settle() { void Scenerunner::_runHandler_focus() { _lcd->setCursor(0, 1); - _lcd->print("rS: FOCUS "); + _lcd->print("Focusing "); + _lcd->print(tFocus); + _lcd->print("ms"); if (millis() >= runStepStart + tFocus) { + _lcd->clear(); + _lcd->print("Step "); + _lcd->print(step); runStep = RUN_SHUTTER; runStepStart = millis(); } @@ -44,18 +55,36 @@ void Scenerunner::_runHandler_focus() { void Scenerunner::_runHandler_shutter() { _lcd->setCursor(0, 1); - _lcd->print("rS: SHUTTER "); + _lcd->print("Shutter "); + _lcd->print(tShutter); + _lcd->print("ms"); if (millis() >= runStepStart + tShutter) { - runStep = RUN_MOVE; - runStepStart = millis(); + if (step >= nSteps) { + _lcd->clear(); + _lcd->print("Return to start"); + runStep = RUN_RETURN; + runStepStart = millis(); + } else { + step++; + _lcd->clear(); + _lcd->print("Step "); + _lcd->print(step); + runStep = RUN_MOVE; + runStepStart = millis(); + } } } void Scenerunner::_runHandler_move() { _lcd->setCursor(0, 1); - _lcd->print("rS: MOVE "); + _lcd->print("Moving "); + _lcd->print(distance); + _lcd->print("mm"); if (millis() >= runStepStart + 1234) { // dummy wait time + _lcd->clear(); + _lcd->print("Step "); + _lcd->print(step); runStep = RUN_SETTLE; runStepStart = millis(); } diff --git a/PhotoStepper/Scenerunner.h b/PhotoStepper/Scenerunner.h index 16a4c2e..bfabebe 100644 --- a/PhotoStepper/Scenerunner.h +++ b/PhotoStepper/Scenerunner.h @@ -29,7 +29,7 @@ class Scenerunner { int _pin_focus; int _pin_shutter; - int steps_left; + int step; enum RunStep { RUN_OFF, RUN_SETTLE, RUN_FOCUS, RUN_SHUTTER, RUN_MOVE, RUN_RETURN }; RunStep runStep = RUN_OFF; unsigned long int runStepStart;