modus added

This commit is contained in:
Nils Schulte 2020-03-18 23:30:19 +01:00
parent e7c4577e28
commit 3bd70227da
2 changed files with 28 additions and 6 deletions

View File

@ -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

17
main.py
View File

@ -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():
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():
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)