1.概述
这是一个常用的时钟传感器,它主要采用DS1302芯片。DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RST 复位(2)I/O 数据线(3)SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。
为了方面接线,我们还配送1根5pin线,线的一端为白色防反插接口(和传感器上防反插白色端子匹配),另一端为5pin杜邦线母头接口。
传感器兼容各种单片机控制板,如arduino系列单片机。使用时,我们可以在单片机上堆叠一个传感器扩展板。传感器和自带导线连接,然后连接在传感器扩展板上,简单方便。同时,传感器自带2个直径为3mm的定位孔,方便你将传感器固定在其他设备。
2.规格参数
导线长度:200mm
工作电压:DC 3.3-5V
接口:间距为2.54mm 5pin防反接口
定位孔大小:直径为3mm
控制信号:数字信号
工作温度:0℃~70℃
尺寸:35*22*9mm
重量:4.5g
备用电池为正品天球CR2032,电压3V,电流260mAh,非可充电电池。理论数据保持时间大于10年
3.连接图
4.测试代码
特别注意:在烧录程序前,要把DS1302文件夹放到 编译器安装目录下的\Arduino\libraries里。不然编译不过。例如我的:C:\Program Files\Arduino\libraries
#include <stdio.h>
#include <string.h>
#include <DS1302.h>
/* 接口定义
CE(DS1302 pin5) -> Arduino D4 (RST)
IO(DS1302 pin6) -> Arduino D3 (DAT)
SCLK(DS1302 pin7) -> Arduino D2 (CLK)
*/
uint8_t CE_PIN = 4;
uint8_t IO_PIN = 3;
uint8_t SCLK_PIN = 2;
/* 日期变量缓存 */
char buf[50];
char day[10];
/* 创建 DS1302 对象 */
DS1302 rtc(CE_PIN, IO_PIN, SCLK_PIN);
void print_time()
{
/* 从 DS1302 获取当前时间 */
Time t = rtc.time();
/* 将星期从数字转换为名称 */
memset(day, 0, sizeof(day));
switch (t.day) {
case 1:
strcpy(day, “Sunday”);
break;
case 2:
strcpy(day, “Monday”);
break;
case 3:
strcpy(day, “Tuesday”);
break;
case 4:
strcpy(day, “Wednesday”);
break;
case 5:
strcpy(day, “Thursday”);
break;
case 6:
strcpy(day, “Friday”);
break;
case 7:
strcpy(day, “Saturday”);
break;
}
/* 将日期代码格式化凑成buf等待输出 */
snprintf(buf, sizeof(buf), “%s %04d-%02d-%02d %02d:%02d:%02d”,
day,
t.yr, t.mon, t.date,
t.hr, t.min, t.sec);
/* 输出日期到串口 */
Serial.println(buf);
}
void setup()
{
Serial.begin(9600); //设置波特率
rtc.write_protect(false);
rtc.halt(false);
/*设置开始时间为2017年5月9日8点50分37秒星期二 */
Time t(2017,5, 9, 8, 50, 37, 3);
rtc.time(t);
}
/* 每一秒循环输出时间 */
void loop()
{
print_time();
delay(1000);
}
5.测试结果
烧录好测试代码,按照接线图连接好线,利用USB线上电后,打开软件串口监视器,设置波特率为9600,我们可以看到当前设置的时间日期,并计时,如下图。
6.库文件链接
https://pan.baidu.com/s/1bdqj6kK7xQSGHSFZQyBhqA
提取码:7hwv