Gravity I2C SD2405 RTC 实时时钟模块

简介

Gravity家族又迎来了一位新成员:Gravity I2C SD2405 RTC module。这是一块高精度实时时钟模块。支持I2C串行通信,具有低功耗,宽电压,易使用等特点。 SD2405 RTC模块内置晶振、兼容Gravity接口,不需要额外的钮扣电池供电,内含一次性工业级电池,可保证外部掉电的情况下,持续工作5~8年时间, 超低功耗,超长待机。 Gravity SD2405 RTC模块可以用于数据记录, 定时闹钟, 时钟计时等基于时间基础的应用。做一个独特的时钟不再是难题。你只需将模块接在我们标准的Gravity I2C接口上即可。 本Gravity RTC模块可实现定时/报警中断输出, 年、月、日、星期、时、分、秒的功能显示, 和时间相关的作品如定时小闹钟这种应用绝对是你的最好选择。

产品特性

技术规格

引脚说明

20170207133718.png

  1. SDA:I2C数据输入引脚
  2. SCL:I2C时钟输入引脚
  3. GND:电源负
  4. VCC:电源正
  1. SDA:I2C数据输入引脚
  2. SCL:I2C时钟输入引脚
  3. GND:电源负
  4. VCC:电源正
  5. INT:中断引脚

使用教程

准备

接线图

模块 ———— UNO板子
VCC ———— 5V
GND ———— GND
SDA ———— A4(SDA)
SCL ———— A5(SCL)

20170207133957.png

样例代码

GitHub库文件链接Gravity-I2C-SD2405-RTC-Module。下载并安装GravityRtc库文件。不会安装?看这边

rtc.adjustRtc(F(__DATE__), F(__TIME__)); //自动设置RTC时钟:通过获取电脑时间校准RTC模块,首先需要保证电脑时间正确,在设置完时间后,需要添加“//”注注释此行,以保证下次启动时,不会重置时间!!!!!!

rtc.adjustRtc(2017,6,19,1,12,7,0); //手动设置RTC时钟:2017/6/19,周一,12点07分0秒。在设置完时间后,需要添加“//”注注释此行,以保证下次启动时,不会重置时间!!!!!!


    #include "GravityRtc.h"
    #include "Wire.h"

    GravityRtc rtc;     //RTC Initialization

    void setup() {
      Serial.begin(9600);
      rtc.setup();
      //自动设置RTC时钟:通过获取电脑时间校准RTC模块,首先需要保证电脑时间正确
      rtc.adjustRtc(F(__DATE__), F(__TIME__));

      //手动设置RTC时钟
      //rtc.adjustRtc(2017,6,19,1,12,7,0);  //设置时间:2017/6/19,周一,12点07分0秒
    }

    void loop() {
      rtc.read();
      //*************************Time********************************
      Serial.print("   Year = ");//year
      Serial.print(rtc.year);
      Serial.print("   Month = ");//month
      Serial.print(rtc.month);
      Serial.print("   Day = ");//day
      Serial.print(rtc.day);
      Serial.print("   Week = ");//week
      Serial.print(rtc.week);
      Serial.print("   Hour = ");//hour
      Serial.print(rtc.hour);
      Serial.print("   Minute = ");//minute
      Serial.print(rtc.minute);
      Serial.print("   Second = ");//second
      Serial.println(rtc.second);
      delay(1000);

    }

结果

DFR0469_Time_Setting.png

注意事项

注意:

关于实时时钟寄存器中,地址为02H的小时设置:

实时时钟寄存器

1.最高位为时制12/24设置,0为12小时制,1为24小时制

2.高四位的后三位为24小时制的十位设置位,第四位为24小时制的个位设置位

3.24小时制设置 eg:

hour:04:00(24-hour format) 10000004B 84H Wire.write(0x84);

hour:12:00(24-hour format) 10010002B 92H Wire.write(0x92);

hour:23:00(24-hour format) 10100003B A2H Wire.write(0xA2);

4.读取时需要屏蔽最高位,示例程序中已经处理 |

Mind+ 上传模式编程(图形化)

1、下载及安装软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装

2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程

3、“扩展”中选择“主控板”中的“Arduino Uno”,“传感器”中加载“实时时钟sd2405”。 详细教程:Mind+基础wiki教程-加载扩展库流程

4、进行编程,程序如下图:

初次使用,首先上传第一段代码手动写入时间。之后上传第二段代码获取时间数据。<br>

5、菜单“连接设备”,“上传到设备”

6、程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印

结果

打开串口监视器,将波特率调整到9600,可以读取到时间值。

Mind+ Python模式编程(行空板)

Mind+Python模式为完整Python编程,因此需要能运行完整Python的主控板,此处以行空板为例说明

连接图

操作步骤

1、下载及安装官网最新软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装

2、切换到“Python模式”。“扩展”中选择“pinpong库”中的“pinpong初始化”和“实时时钟SD2405”。切换模式和加载库的详细操作链接

3、进行编程

4、连接行空板,程序点击运行后,可在终端查看数据。行空板官方文档-行空板快速上手教程 (unihiker.com)

示例代码1-时间校准

图形化编程

代码编程


#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from pinpong.libs.dfrobot_ds0469 import DS0469
from pinpong.board import Board


Board().begin()
p_sd2405 = DS0469()
p_sd2405.adjust_aotu()
p_sd2405.adjust_rtc(2021, 1, 4, 1, 13, 30, 0)

示例代码2-时间获取

图形化编程

代码编程

以pinpong库为例,行空板官方文档-行空板快速上手教程 (unihiker.com)

#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from pinpong.libs.dfrobot_ds0469 import DS0469
from pinpong.board import Board


Board().begin()
p_sd2405 = DS0469()
p_sd2405.adjust_aotu()

while True:
    p_sd2405.read()
    print((str(p_ds1307now.hours) + str((str(":") + str((str(p_ds1307now.minute) + str((str(":") + str(p_ds1307now.second)))))))))
    time.sleep(1)

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多资料

DFshopping_car1.png DFRobot商城购买链接