ESP8266-Arduino编程实例-PCF8563实时时钟(RTC)驱动

PCF8563实时时钟(RTC)驱动

1、PCF8563介绍

PCF8563 是针对低功耗优化的 CMOS 实时时钟 (RTC) 和日历。 还提供了可编程时钟输出、中断输出和低电压检测器。 所有地址和数据都通过两线双向 I²C 总线串行传输。 最大总线速度为 400 kbit/s。

PCF8563有如下特性:

  • 基于 32.768 kHz 石英晶体提供年、月、日、星期、小时、分钟和秒
  • 世纪标志
  • 时钟工作电压:室温下为 1.0 V 至 5.5 V
  • 低后备电流; 在 VDD = 3.0 V 和 Tamb = 25 °C 时,典型值为 0.25 μA
  • 400 kHz 两线 I²C 总线接口(在 VDD = 1.8 V 至 5.5 V 时)
  • 外围设备的可编程时钟输出(32.768 kHz、1.024 kHz、32 Hz 和 1 Hz)
  • 报警和定时器功能
  • 集成振荡器电容器
  • 内部上电复位 (POR)
  • I²C 总线从机地址:读取 A3h 并写入 A2h
  • 开漏中断引脚

在这里插入图片描述

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • PCF8563传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用的PCF8563驱动库如下:

1)导入依赖库头文件

1
2
3
4
5
6
#include <Wire.h>
#include "pcf8563.h"

// 创建pcf8563设备对象
PCF8563_Class rtc;

2)初始化设备

1
2
3
4
5
6
7
8
void setup()
{
Serial.begin(115200);
Wire.begin(21, 22);
rtc.begin();
rtc.setDateTime(2019, 4, 1, 12, 33, 59);
}

3)读取数据

1
2
3
4
5
6
void loop()
{
Serial.println(rtc.formatDateTime(PCF_TIMEFORMAT_YYYY_MM_DD_H_M_S));
delay(1000);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126379462