from machine import Pin, I2C
from time import sleep_ms
from ds1307 import DS1307
h_dir = Pin(0, Pin.OUT)
h_step = Pin(1, Pin.OUT)
m_dir = Pin(2, Pin.OUT)
m_step = Pin(3, Pin.OUT)
i2c = I2C(0, scl=Pin(17), sda=Pin(16), freq=400000)
clock = DS1307(i2c)
h_step.value(0)
m_step.value(0)
rtc = clock.datetime
y, m, d, H, M, S, WD, IDK = rtc
h_dir.value(1)
if H < 12:
for _ in range((H * 200 / 12)):
h_step.value(1)
h_step.value(0)
sleep_ms(5)
else:
for _ in range(((H-12) * 200 / 12)):
h_step.value(1)
h_step.value(0)
sleep_ms(5)
m_dir.value(1)
for _ in range((M * 200 / 60) + 2):
m_step.value(1)
m_step.value(0)
sleep_ms(5)
H1 = H
M1 = M
while True:
rtc = clock.datetime
y, m, d, H, M, S, WD, IDK = rtc
if H != H1:
h_dir.value(1)
for _ in range(200 / 24):
h_step.value(1)
h_step.value(0)
sleep_ms(5)
H1 = H
if M != M1:
m_dir.value(1)
for _ in range((200 / 60)):
m_step.value(1)
m_step.value(0)
sleep_ms(5)
M1 = M
sleep_ms(500)