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._stepperMinute = stepperMin
self._stepperHour = stepperHour self._stepperHour = stepperHour
self.started_async = False self.started_async = False
self._async_running = False
def start(self): def start(self):
if not self.started_async: if not self.started_async:
@ -16,10 +17,15 @@ class StepperClock:
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
loop.create_task(self._update_async()) loop.create_task(self._update_async())
def stop(self):
self._async_running = False
self.started_async = False
async def _update_async(self): async def _update_async(self):
while(True): self._async_running = True
await asyncio.sleep(1) while(self._async_running):
self.update() self.update()
await asyncio.sleep(1)
def update(self): def update(self):
hour = time.localtime()[3] hour = time.localtime()[3]
@ -31,3 +37,6 @@ class StepperClock:
self._stepperHour.disablePower() self._stepperHour.disablePower()
self._stepperMinute.disablePower() self._stepperMinute.disablePower()
#self._stepperHour.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]) rtc.init(dsRtc.DateTime()+[0])
#Initalise the Motors #Initalise the Motors
stepperminu = StepperL298M.Stepper([19,21,22,23],inverted=False) stepDurationMs = 8
stepperhour = StepperL298M.Stepper([12,27,26,25],inverted=True) 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) clock = StepperClock.StepperClock(stepperhour,stepperminu)
@ -29,7 +30,10 @@ def leftButtonClickDown():
def leftButtonClickUp(): def leftButtonClickUp():
leftButtonLED.off() leftButtonLED.off()
def leftButtonClick(): def leftButtonClick():
if(clock.isRunning()):
stepperminu.stepnum = (stepperminu.stepnum+8)%stepperminu.stepsPerRev 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) leftButton = Button.Button(pin=36,onPushDown=leftButtonClickDown,onPushUp=leftButtonClickUp,onClick=leftButtonClick,inverted=True)
def rightButtonClickDown(): def rightButtonClickDown():
@ -37,7 +41,10 @@ def rightButtonClickDown():
def rightButtonClickUp(): def rightButtonClickUp():
rightButtonLED.off() rightButtonLED.off()
def rightButtonClick(): def rightButtonClick():
if(clock.isRunning()):
stepperhour.stepnum = (stepperhour.stepnum+8)%stepperhour.stepsPerRev 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) rightButton = Button.Button(pin=34,onPushDown=rightButtonClickDown,onPushUp=rightButtonClickUp,onClick=rightButtonClick,inverted=True)
def middleButtonClickDown(): def middleButtonClickDown():
@ -46,6 +53,12 @@ def middleButtonClickUp():
pass pass
def middleButtonClick(): def middleButtonClick():
middleButtonLED.value(not middleButtonLED.value()) 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) middleButton = Button.Button(pin=39,onPushDown=middleButtonClickDown,onPushUp=middleButtonClickUp,onClick=middleButtonClick,inverted=True)