• 物联网AI MicroPython传感器学习 之 RTC时钟模块


    学物联网,来万物简单IoT物联网!!在这里插入图片描述

    一、产品简介

    DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。
    image.png
    DS1302 与单片机之间能简单地采用同步串行的方式进行通信,只需要三个数据线:
    (1)RST 复位
    (2)I/O 数据线
    (3)SCLK串行时钟

    引脚定义

    • VCC:3.3V
    • GND:地
    • CLK:时钟输出
    • DAT:数据输入输出
    • RST:复位引脚

    二、技术参数

    • 工作电压:2V-5.5V
    • 接口简单:GPIO三线接口
    • 工作温度:-40°C~85°C
    • 低功耗:工作电压2V,电流300nA
    • 电源供应:支持主电源和备份电源
    • 电路板尺寸:4.4cm*2.3cm

    三、软件接口

    DS1302(o_clk, o_rst, dio_num) - 创建RTC时钟对象

    • 函数原型

    ds1302Obj = DS1302(o_clk, o_rst, dio_num)

    • 参数说明
    参数类型必选参数?说明
    o_clkPin传入Pin对象
    o_rstPin传入Pin对象
    dio_numPin num传入Pin Num数
    • 返回值

    DS1302对象成功,返回DS1302对象;DS1302对象创建失败,抛出Exception

    • 示例代码-无回调函数
    from machine import Pin
    import ds1302
    
    gpiodionum = 18
    gpioclk = Pin(16 , Pin.OUT , Pin.PULL_DOWN)
    gpiorst = Pin(17 , Pin.OUT , Pin.PULL_DOWN)
    ds1302_obj = ds1302.DS1302(gpioclk,gpiorst,gpiodionum)
    print('start init ds1302')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 输出
    start init ds1302
    
    • 1

    setDatetime() - 设置RTC时钟信息

    • 函数功能:

    设置RTC时钟信息

    • 函数原型:

    DS1302.setDatetime(data)

    • 参数说明:

    data日期格式分别为:年-月-日-时-分-秒-星期

    • 返回值:

    getDatetime() - 获取RTC时钟信息

    • 函数功能:

    获取RTC时钟信息

    • 函数原型:

    data = DS1302.getDatetime()

    • 参数说明:

    • 返回值:

    成功返回data日期格式分别为:年-月-日-时-分-秒-星期

    • 示例:
    from machine import Pin
    import ds1302
    
    gpiodionum = 18
    gpioclk = Pin(16 , Pin.OUT , Pin.PULL_DOWN)
    gpiorst = Pin(17 , Pin.OUT , Pin.PULL_DOWN)
    ds1302_obj = ds1302.DS1302(gpioclk,gpiorst,gpiodionum)
    print('start init ds1302')
    ds1302_obj.getDatetime([2023, 6, 13 , 0, 0, 30, 1])
    print(ds1302_obj.getDatetime())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 输出
    start init ds1302
    [2023, 6, 13, 0, 0, 31, 1]
    
    • 1
    • 2

    四、接口案例

    • 案例代码
    import utime   # 延时函数在utime库中
    from machine import Pin
    import ds1302
    
    ds1302_obj = None
    
    def ds1302_init():
        gpiodionum = 18
        gpioclk = Pin(16 , Pin.OUT , Pin.PULL_DOWN)
        gpiorst = Pin(17 , Pin.OUT , Pin.PULL_DOWN)
        ds1302_obj = ds1302.DS1302(gpioclk,gpiorst,gpiodionum)
        print('start init ds1302')
    
    if __name__ == '__main__':
        ds1302_init()
        ds1302_obj.setDatetime([2023, 6, 13 , 0, 0, 30, 1])
        while True:
            print(ds1302_obj.getDatetime())
            utime.sleep(1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 输出
    start init ds1302
    [2023, 6, 13, 0, 0, 31, 1]
    [2023, 6, 13, 0, 0, 32, 1]
    [2023, 6, 13, 0, 0, 33, 1]
    [2023, 6, 13, 0, 0, 34, 1]
    [2023, 6, 13, 0, 0, 35, 1]
    [2023, 6, 13, 0, 0, 36, 1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    参考文献及购买链接

    [1] RTC时钟模块购买链接

  • 相关阅读:
    【数据库范式】实际案例分析
    软著材料编写脚本
    表面磺酸基功能化/双马来酰亚胺交联单分散/氯甲基化交联聚苯乙烯微球的制备知识
    13.4 GAS与攻击
    java项目-第86期基于ssh的上门家教在线预约系统
    19 css 选择器用类名、节点名、id来获取节点内容
    【软件基础】pycharm2021.3.2安装汉化和python3.10.1环境配置
    css中的一些符号代表什么选择器
    文件操作~
    算法-贪心-112. 雷达设备
  • 原文地址:https://blog.csdn.net/weixin_39363464/article/details/133979538