From 3bd70227dae4b786df4c49f311aad8bbb06abf9a Mon Sep 17 00:00:00 2001 From: Nils Schulte Date: Wed, 18 Mar 2020 23:30:19 +0100 Subject: [PATCH] modus added --- StepperClock.py | 13 +++++++++++-- main.py | 21 +++++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/StepperClock.py b/StepperClock.py index 215325b..2d2fa6c 100644 --- a/StepperClock.py +++ b/StepperClock.py @@ -7,6 +7,7 @@ class StepperClock: self._stepperMinute = stepperMin self._stepperHour = stepperHour self.started_async = False + self._async_running = False def start(self): if not self.started_async: @@ -16,10 +17,15 @@ class StepperClock: loop = asyncio.get_event_loop() loop.create_task(self._update_async()) + def stop(self): + self._async_running = False + self.started_async = False + async def _update_async(self): - while(True): - await asyncio.sleep(1) + self._async_running = True + while(self._async_running): self.update() + await asyncio.sleep(1) def update(self): hour = time.localtime()[3] @@ -31,3 +37,6 @@ class StepperClock: self._stepperHour.disablePower() self._stepperMinute.disablePower() #self._stepperHour.disablePower() + + def isRunning(self): + return self._async_running diff --git a/main.py b/main.py index 6bcf765..72d1f05 100644 --- a/main.py +++ b/main.py @@ -15,8 +15,9 @@ rtc = machine.RTC() rtc.init(dsRtc.DateTime()+[0]) #Initalise the Motors -stepperminu = StepperL298M.Stepper([19,21,22,23],inverted=False) -stepperhour = StepperL298M.Stepper([12,27,26,25],inverted=True) +stepDurationMs = 8 +stepperminu = StepperL298M.Stepper([19,21,22,23],inverted=False,stepDurationMs=stepDurationMs) +stepperhour = StepperL298M.Stepper([12,27,26,25],inverted=True, stepDurationMs=stepDurationMs) clock = StepperClock.StepperClock(stepperhour,stepperminu) @@ -29,7 +30,10 @@ def leftButtonClickDown(): def leftButtonClickUp(): leftButtonLED.off() def leftButtonClick(): - stepperminu.stepnum = (stepperminu.stepnum+8)%stepperminu.stepsPerRev + if(clock.isRunning()): + stepperminu.stepnum = (stepperminu.stepnum+8)%stepperminu.stepsPerRev + else: + stepperminu.rotateTo(stepperminu.getOrientation()+0.25) leftButton = Button.Button(pin=36,onPushDown=leftButtonClickDown,onPushUp=leftButtonClickUp,onClick=leftButtonClick,inverted=True) def rightButtonClickDown(): @@ -37,7 +41,10 @@ def rightButtonClickDown(): def rightButtonClickUp(): rightButtonLED.off() def rightButtonClick(): - stepperhour.stepnum = (stepperhour.stepnum+8)%stepperhour.stepsPerRev + if(clock.isRunning()): + stepperhour.stepnum = (stepperhour.stepnum+8)%stepperhour.stepsPerRev + else: + stepperhour.rotateTo(stepperhour.getOrientation()+0.25) rightButton = Button.Button(pin=34,onPushDown=rightButtonClickDown,onPushUp=rightButtonClickUp,onClick=rightButtonClick,inverted=True) def middleButtonClickDown(): @@ -46,6 +53,12 @@ def middleButtonClickUp(): pass def middleButtonClick(): middleButtonLED.value(not middleButtonLED.value()) + if middleButtonLED.value(): + clock.stop() + stepperminu.rotateTo(0) + stepperhour.rotateTo(0) + else: + clock.start() middleButton = Button.Button(pin=39,onPushDown=middleButtonClickDown,onPushUp=middleButtonClickUp,onClick=middleButtonClick,inverted=True)