跳到主要内容

RTC(实时时钟)

前言

时钟可以说我们日常最常用的东西了,手表、电脑、手机等等无时无刻不显示当前的时间。可以说每一个电子爱好者心中都希望拥有属于自己制作的一个电子时钟,接下来我们就用MicroPython开发板来制作一个属于自己的电子时钟。

rtc

实验目的

学习RTC编程。

实验讲解

实验的原理是读取RTC数据。毫无疑问,强大的MicroPython已经集成了内置时钟函数模块。位于machine的RTC模块中,具体介绍如下:

RTC对象

构造函数

rtc = machine.RTC()

构建RTC对象,RTC对象位于machine模块下。

使用方法

rtc.datetime((2024, 1, 1, 0, 0, 0, 0, 0))

设置RTC日期和时间。(2024, 1, 1, 0, 0, 0, 0, 0)按顺序分别表示(年,月,日,星期,时,分,秒,微妙),其中星期使用0-6表示星期一到星期日。


rtc.datetime()

获取当前RTC时间。返回元组:(年,月,日,星期,时,分,秒,微妙),其中星期使用0-6表示星期一到星期日。

更多用法请阅读官方文档:
https://docs.micropython.org/en/latest/library/machine.RTC.html#machine-rtc


熟悉RTC使用方法后,我们通过代码实现首次上电如果检测到未设置时间可以先设置时间,然后周期打印获取的时间信息,代码编程流程图如下:

参考代码

'''
实验名称:RTC实时时钟
说明:实时时钟使用
教程:wiki.01studio.cc
'''

# 导入相关模块
from machine import RTC
import time

# 构建RTC对象
rtc = RTC()

# 首次上电设置RTC日期和时间。(2024, 1, 1, 0, 0, 0, 0, 0)按顺序分别表示(年,月,日,星期,时,分,秒,微妙),
# 其中星期使用0-6表示星期一到星期日。
if rtc.datetime()[0] != 2024:
rtc.datetime((2024, 1, 1, 0, 0, 0, 0, 0))

while True:

print(rtc.datetime()) #打印时间

time.sleep(1) #延时1秒

实验结果

运行代码,可以看到终端打印当前RTC时间信息。

rtc

RTC时间是断电丢失的,要想RTC时间连续运行需要保持对开发板供电,用户可以使用RTC功能打造自己的电子时钟。