from machine import Pin, I2C
import time
# Initialize I2C
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
# DS3231 I2C address
DS3231_ADDR = 0x68
def read_byte(register):
return i2c.readfrom_mem(DS3231_ADDR, register, 1)[0]
def read_time():
second = read_byte(0x00)
minute = read_byte(0x01)
hour = read_byte(0x02)
return hour, minute, second
def bcd_to_dec(bcd):
return (bcd >> 4) * 10 + (bcd & 0x0F)
while True:
hour, minute, second = read_time()
hour = bcd_to_dec(hour)
minute = bcd_to_dec(minute)
second = bcd_to_dec(second)
print(f"Time: {hour:02}:{minute:02}:{second:02}")
time.sleep(1)