js带开关的时钟_arduino设置ds1302电子时钟模块

d74732c686bad6ae254d780fb959f13a.png

NO.1前言

目前有许多流行的串行时钟电路,例如 DS1302,DS3231,DS1307,PCF8485 等。它们由于其简

单的接口,低成本和易用性而被广泛使用。

NO.2DS1302

DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能。

工作电压为 2.5V~5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。

DS1302 内部有一个 31×8 的用于临时性存放数据的 RAM 寄存器。

DS1302 是 DS1202 的升级产品,与 DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

NO.3接线

Arduino Uno R3

Arduino Uno R3DS1302
2RST
3DAT
4CLK
GNDGND
5VVCC
NO.4代码

本代码只调试DS1302,初始化时间并打印到串口

#include "DS1302.h"
//定义引脚
DS1302 rtc(2, 3, 4);
void setup(){
//禁用时钟写保护
rtc.halt(false);
rtc.writeProtect(false);
//设置时钟时间 24小时制
rtc.setTime(18, 49, 50);
//设置时钟日期 日-月-年
rtc.setDate(22, 11, 2020);
//初始化串口
Serial.begin(9600);
}

void loop(){
//串口中打印日期时间
Serial.print(rtc.getDateStr());
Serial.print(" ");
Serial.print(rtc.getTimeStr());
Serial.print("\n");
delay(1000);
}

结果

4f3e4e917c72743b2dad5dd5708b7332.png

NO.5实际操作

右侧的LCD显示屏第二行显示当前时间,第一行显示温度和湿度

ed3ee729997bf98cbfa7431263dd9d24.png

NO.6DS1302函数

设置时钟的工作模式

rtc.halt(false);

设置写入保护的开关

rtc.writeProtect(false);

设置DS1302~时分秒(24小时制)

rtc.setTime(18, 50, 55);

设置DS1302~年月日

rtc.setDate(22, 11, 2020);

读取星期

rtc.getDOWStr()

读取日期

rtc.getDateStr()

读取时间

rtc.getTimeStr()
NO.7Tips

电池

  1. 本例采用CR2302纽扣电池,CR2032电池的容量在200mAh左右,考虑自放电因素,和温度密切相关,即使没有负载,极限寿命也在5年左右

  2. 如果没开自动充电功能可以使用半年以上,如果开了充电功能芯片会自动为此备用电池充电的,可用上几年

  3. DS1302 有两个电源输入,一个是主电源,一个是备用电源,这样是为了在系统掉电的情况下,我们的时钟还会继续走。如果使用的是充电电池,还可以在正常工作时,设置充电功能,给我们的备用电池进行充电

时间设置

  1. setTime和setDate仅需要在初始化时设置一次[setup函数内],设置后,可将这两个函数注销,因为时钟自带内存记忆功能,不需要每次设置

  2. 如果时间有误差,或者需要再次调整,使用重复第1条提示即可

END.

fc609f5e9e3146fb70dc4e1c9cce4ae5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值