stepper-clock/main.py

56 lines
1.7 KiB
Python

import time
import machine
import DS3231
import Button
import uasyncio as asyncio
import StepperL298M
import StepperClock
#Async
loop = asyncio.get_event_loop()
#Initialise the time module with the RTC
dsRtc = DS3231.DS3231(machine.I2C(sda = machine.Pin(17), scl=machine.Pin(18)))
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)
clock = StepperClock.StepperClock(stepperhour,stepperminu)
leftButtonLED = machine.Pin(32,machine.Pin.OUT)
middleButtonLED = machine.Pin(33,machine.Pin.OUT)
rightButtonLED = machine.Pin(13,machine.Pin.OUT)
def leftButtonClickDown():
leftButtonLED.on()
def leftButtonClickUp():
leftButtonLED.off()
def leftButtonClick():
stepperminu.stepnum = (stepperminu.stepnum+8)%stepperminu.stepsPerRev
leftButton = Button.Button(pin=36,onPushDown=leftButtonClickDown,onPushUp=leftButtonClickUp,onClick=leftButtonClick,inverted=True)
def rightButtonClickDown():
rightButtonLED.on()
def rightButtonClickUp():
rightButtonLED.off()
def rightButtonClick():
stepperhour.stepnum = (stepperhour.stepnum+8)%stepperhour.stepsPerRev
rightButton = Button.Button(pin=34,onPushDown=rightButtonClickDown,onPushUp=rightButtonClickUp,onClick=rightButtonClick,inverted=True)
def middleButtonClickDown():
pass
def middleButtonClickUp():
pass
def middleButtonClick():
middleButtonLED.value(not middleButtonLED.value())
middleButton = Button.Button(pin=39,onPushDown=middleButtonClickDown,onPushUp=middleButtonClickUp,onClick=middleButtonClick,inverted=True)
clock.start()
loop.run_forever()