from machine import I2C,Pin
from utime import sleep_ms
from hcsr04 import HCSR04
from ssd1306 import SSD1306_I2C
import ds1307
i2c = I2C(sda = Pin(21),scl = Pin(22))
ds = ds1307.DS1307(i2c)
oled = SSD1306_I2C(128,32,i2c)
SW1 = Pin(33,Pin.IN)
SW2 = Pin(32,Pin.IN)
SW3 = Pin(35,Pin.IN)
#now = (2018,8,8,2,13,45,0)#Year Munt monthday weekday Hour Minute second
#ds.datetime(now)
ds.datetime()
mont = ("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC")
DayOfWeek = ("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
count = 0
while True:
DT = ds.datetime()
print(DT)
Y = DT[0]
M = DT[1]
D = DT[2]
DW = DT[3]
H = DT[4]
Min = DT[5]
S = DT[6]
oled.fill(0)
if (SW1()== False):
sleep_ms(1000)
count = count + 1
print(count)
if (count == 1):
print("Hours Mode")
if(SW2()== False):
sleep_ms(1000)
H = H + 1
if(H>=24):
H = 0
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if(SW3()== False):
sleep_ms(1000)
H = H - 1
if(H<0):
H = 23
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if (count == 2):
print("Minute Mode")
if(SW2()== False):
sleep_ms(1000)
Min = Min + 1
if(Min>=60):
Min = 0
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if(SW3()== False):
sleep_ms(1000)
Min = Min - 1
if(Min<0):
Min = 59
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if (count == 3):
print("Second Mode")
if(SW2()== False):
sleep_ms(1000)
S = S + 1
if(S>=60):
S = 0
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if(SW3()== False):
sleep_ms(1000)
S = S - 1
if(S<0):
S = 59
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if (count == 4):
print("Day Mode")
if(SW2()== False):
sleep_ms(1000)
D = D + 1
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if(SW3()== False):
sleep_ms(1000)
D = D - 1
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if (count == 5):
print("Month Mode")
if(SW2()== False):
sleep_ms(1000)
M = M + 1
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if(SW3()== False):
sleep_ms(1000)
M = M - 1
if(M<0):
M = 12
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if (count == 6):
print("Year Mode")
if(SW2()== False):
sleep_ms(1000)
Y = Y + 1
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if(SW3()== False):
sleep_ms(1000)
Y = Y - 1
now = (Y,M,D,DW,H,Min,S)
ds.datetime(now)
if (count >= 6):
count = -1
oled.text(DayOfWeek[DT[3]-1],0,0)
oled.text(str(DT[2]),30,0)
oled.text(mont[DT[1]-1],45,0)
oled.text(str(DT[0]),75,0)
oled.text(str(DT[4]),30,20)
oled.text(':', 45, 20)
oled.text(str(DT[5]),50,20)
oled.text(':', 65, 20)
oled.text(str(DT[6]),70,20)
oled.show()
sleep_ms(100)Loading
ssd1306
ssd1306