第三十一篇、基于Arduino uno,获取ds1302时钟模块的年、月、日、时、分、秒信息

您所在的位置:网站首页 arduino可调时钟ds1302面包板仿真 第三十一篇、基于Arduino uno,获取ds1302时钟模块的年、月、日、时、分、秒信息

第三十一篇、基于Arduino uno,获取ds1302时钟模块的年、月、日、时、分、秒信息

2024-07-01 22:08:40| 来源: 网络整理| 查看: 265

0、结果

说明:先来看看串口调试助手显示的结果,包含了年月日和时分秒,如果是你想要的,可以接着往下看。

1、外观

说明:虽然ds1302时钟模块形态各异,但是原理和代码都是适用的。

2、连线

说明:只需要连接五根线。

uno————ds1302时钟模块5V--------------VCCGND--------------GND 5--------------CLK4--------------DAT3--------------RST 3、源程序

说明:采用非阻塞方式编写,一定时间检测一次时间和日期信息,并将对应功能进行函数化,方便移植。

/* 接线: VCC------VCC GND------GND 5------CLK 4------DAT 3------RST */ /****************************************ds1302 part****************************************/ #include //调用库文件 #include //调用库文件 #define ds1302ResetPin 3 //复位引脚 #define ds1302DataPin 4 //数据引脚 #define ds1302ClockPin 5 //时钟引脚 DS1302 rtc(ds1302ResetPin, ds1302DataPin, ds1302ClockPin); #define ds1302TimeInterval 1000 //检测一次的时间间隔 unsigned long ds1302Times = 0; //记录设备运行时间 int yearss = 0; //年 int monthss = 0; //月 int dayss = 0; //日 int hourss = 0; //小时 int minutess = 0; //分钟 int secondss = 0; //秒 /****************************************set up and loop part*********************************/ void setup() { Serial.begin(9600); //设置串口波特率为9600 rtc.writeProtect(false); //传感器初始化 rtc.halt(false); //传感器初始化 Time t(2023, 5, 10, 0, 0, 0, Time::kThursday); //设置初始时间 rtc.time(t); } void loop() { getds1302Data(); //获取时间数据 } /****************************************ds1302 part****************************************/ /*获取时间数据*/ void getds1302Data() { if (millis() - ds1302Times >= ds1302TimeInterval) {//一定时间执行一次 ds1302Times = millis(); Time t = rtc.time(); //将时间赋值 yearss = t.yr; monthss = t.mon; //将时间赋值 dayss = t.date; hourss = t.hr; minutess = t.min; //将时间赋值 secondss = t.sec; Serial.print("日期:"); //串口打印对应的值 Serial.print(yearss); Serial.print("/"); Serial.print(monthss); //串口打印对应的值 Serial.print("/"); Serial.print(dayss); Serial.print(" , 时间:"); //串口打印对应的值 Serial.print(hourss); Serial.print(":"); Serial.print(minutess); Serial.print(":"); Serial.println(secondss); } } 4、注意事项

说明:需要在线下载对应的库文件才不会编译报错,可以在管理库中很方便的搜到,如果搜不到可以评论@我,我将私发给你。程序不能获取系统时间,但是可以自己更改任意时间,更改完之后,需要将更改时间的程序注释掉,例如改好时间之后,需要将下面的程序注释掉,也就是33、34行注释掉,不然程序重新运行的时候会重新计时,而不会累计计时。

 5、基本原理

        DS1302时钟模块内置了一个非常简单的时钟电路,使用的是低频晶体振荡器。该振荡器与DS1302的时钟电路通过外部电容相连,从而可以产生稳定的振荡信号。         DS1302时钟模块内部的时钟电路可以对其内部计数器进行不间断地计数,并且进行闰秒的调整和时间的更新。         为了保证DS1302时钟模块在外部电源不稳定或被干扰的情况下能够正常工作,它还配备了电源管理电路。当检测到主电源电压异常时,DS1302时钟模块会自动切换到备用电池供电。         DS1302时钟模块内部具有静态RAM存储器,可以存储时间和日期等数据信息。同时,它还配备了写保护电路,能够防止外部电路误写入数据或者将数据强制修改。         DS1302时钟模块采用三线数字接口,可以与半导体芯片、单片机和数字电路等设备进行通信。         总之,DS1302时钟模块是一种操作简单、价格便宜、易于与其他设备集成的实时时钟模块。它适用于需要进行时间测量、计时、记录等任务的场合,并且能够在外部电源或者信号不稳定的情况下依然保持良好的工作性能。由于其内部的时钟电路和计数器比较简单,因此其精度和稳定性相对较低。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭