SD3031是一款低成本、极其精确的I2C实时时钟(RTC)模块。在整个温度范围和寿命范围内,可提供±5%ppm的精度(误差不超过0.432s),并兼容2.5-5.5V宽电压范围。电池供电时,该模块的电流消耗低至2uA。该模块可用于测量环境温度,精度为±3℃。
SKU:DFR0998
- 获取实时,初始时间需要用户设定,我们可以获取编译时间,自己设定,最小单位:s
- 设置闹钟,用户可以设置闹钟,可以在中断引脚处得到下降沿脉冲触发闹钟
- 测量芯片温度,误差:±0.5℃
使用此库前,请首先下载库文件,将其粘贴到\Arduino\libraries目录中,然后打开examples文件夹并在该文件夹中运行演示。
/**
* @fn begin
* @brief 初始化传感器
* @return 返回初始化状态
*/
uint8_t begin(void);
/**
* @fn getRTCTime
* @brief 获取时钟模块中的年
* @return 返回获取的年份
*/
sTimeData_t getRTCTime(void);
/**
* @brief 设置时钟是24小时制还是12小时制
* @param mode 时钟计算方式
*/
void setHourSystem(eHours_t mode){ _mode = mode; };
/**
* @fn setTime
* @brief 设置时钟时间
* @param year 2000~2099
* @param month 1~12
* @param day 1~31
* @param week 0~6
* @param hour 0~23
* @param minute 0~59
* @param second 0~59
* @return None
*/
void setTime(uint16_t year, uint8_t month, uint8_t day,eWeek_t week,uint8_t hour, uint8_t minute, uint8_t second);
/**
* @fn setAlarmnumber
* @brief 设置触发报警的数据
* @param trigger 中断选择
* @param year 2000~2099
* @param month 1~12
* @param day 1~31
* @param week 0~6
* @param hour 0~23
* @param minute 0~59
* @param second 0~59
* @return None
*/
void setAlarmnumber(eTrigger_t trigger, uint16_t year, uint8_t month, uint8_t day,eWeek_t week,uint8_t hour, uint8_t minute, uint8_t second);
/**
* @brief 获取时钟内部温度
* @return 返回获取得温度,单位:℃
*/
int8_t getTemperatureC(void);
/**
* @brief 获取板载电池电压
* @return float 返回获取得电压
*/
float getVoltage(void);
/**
* @brief 清除报警标志位
*/
void clearAlarm(void);
/**
* @fn getAMorPM
* @brief 输出上午或下午的时间
* @return 上午或下午的时间,24小时模式返回空字符串
*/
String getAMorPM();
/**
* @fn enable32k
* @brief 开启32k频率输出
* @return 无
*/
void enable32k();
/**
* @fn disable32k
* @brief 关闭32k输出
* @return 无
*/
void disable32k();
/**
* @fn enableFrequency
* @brief 开启频率输出
* @param fr 频率选择
* @return 无
*/
void enableFrequency(eFrequency_t fr);
/**
* @fn disableFrequency
* @brief 关闭1Hz输出
* @return 无
*/
void disableFrequency(void);
/**
* @fn writeSRAM
* @brief 写 SRAM
* @param addr 0x14~0xFF
* @param data 写数据
* @return true 意味着写SRAM是成功的, false 意味着写SRAM是失败的
*/
uint8_t writeSRAM(uint8_t addr, uint8_t data);
/**
* @fn readSRAM
* @brief 读 SRAM
* @param addr 0x14~0xFF
* @return 存储在SRAM中的数据
*/
uint8_t readSRAM(uint8_t addr);
/**
* @fn clearSRAM
* @brief 清除SRAM
* @param addr 0x14~0xFF
* @return true 意味着清除SRAM是成功的, false 意味着清除SRAM是失败的
*/
uint8_t clearSRAM(uint8_t addr);
/**
* @fn countDown
* @brief 倒计时
* @param second 倒计时时间 0~0xffffff
*/
void countDown(uint32_t second);
MCU | Work Well | Work Wrong | Untested | Remarks |
---|---|---|---|---|
Arduino Uno | √ | |||
Arduino MEGA2560 | √ | |||
Arduino Leonardo | √ | |||
FireBeetle-ESP8266 | √ | |||
FireBeetle-ESP32 | √ | |||
FireBeetle-M0 | √ | |||
Micro:bit | √ |
- 2022/07/29 - 1.0.0 版本
Written by TangJie([email protected]), 2021. (Welcome to our website)