This is a pure Micropython DS1302 RTC Clock driver. This is based on microbit code of microbit-lib https://github.com/shaoziyang/microbit-lib
This has been tested and working on ESP32 but should work with any micropython supported device.
(Adapted from https://github.com/shaoziyang/microbit-lib/blob/master/misc/DS1302/README.md)
DS1302 is real-time clock (RTC) with serial interface, 31 * 8 data ram.
-
__init__(clk, dio, cs)
set i/o pins -
start()
start RTC. -
stop()
stop/pause RTC -
date_time(DT = None)
get / set DateTime. If no paramter given, it will return current datetime, otherwise it will set datatime.
datatime format: [Year, month, day, weekday, hour, minute, second] -
year(year = None)
get / set year. -
month(month = None)
get / set month. -
day(day = None)
get / set day. -
weekday(weekday = None)
get / set month. -
hour(hour = None)
get / set hour. -
minute(minute = None)
get / set minute. -
second(second = None)
get / set second. -
ram(reg, dat = None)
get / set ram data (31 bytes).
from machine import Pin
import ds1302
ds = ds1302.DS1302(Pin(5),Pin(18),Pin(19))
ds.date_time() # returns the current datetime.
ds.date_time([2018, 3, 9, 4, 23, 0, 1, 0]) # set datetime.
ds.hour() # returns hour.
ds.second(10) # set second to 10.