MCookie-RTC/zh

来自Microduino Wikipedia
853387039@qq.com讨论 | 贡献2015年8月20日 (四) 07:57的版本 (Created page with "{{Language|mCookie-RTC}} {| style="width: 800px;" |- | 400px|thumb|right|mCookie-RTC mCookie-RTC模块是时钟模块,可获取时间,采用IIC...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
Language English

mCookie-RTC模块是时钟模块,可获取时间,采用IIC接口通信。 超级电容提供了一定的掉电计时能力,断电后时钟芯片还可运行。






特色

  • 带有世纪标志、秒、分、时、日、星期、月、年;
  • 采用I2C接口与核心模块通信;
  • 带I2C接口的EEPROM存储芯片;
  • 时钟芯片功耗低,典型电流值为0.25μA,外加超级电容,掉电后时钟芯片依然运行;

规格

  • 时钟芯片:PCF8563
    • 低功耗的CMOS 实时时钟/日历芯片;
    • 提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过I2C总线接口串行传递;
    • 最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。
  • EEPROM存储芯片:AT24C32
    • 提供32768位的串行电可擦写可编程只读存储器,组织形式为4096字×8位字长;
    • AT24C32的级联特性允许在同一I2C总线上挂接8个器件,百万次的复写周期和100年的保存年限,并带有写保护功能。
  • 超级电容:XH414
    • 提供一定时间的掉电计时功能。
mCookie-RTC-Pinout1

文档

开发

应用

测试掉电续时

#include <Wire.h>
#include <Rtc_Pcf8563.h>

//init the real time clock
Rtc_Pcf8563 rtc;

void setup()
{
  Serial.begin(9600);
  settime(15, 8, 10, 4, 15, 57, 36);//年,月,日,星期,时,分,秒
}

void loop()
{
  //both format functions call the internal getTime() so that the
  //formatted strings are at the current time/date.
  Serial.println("CODE_1:");
  Serial.print(rtc.formatDate());//获取日期
  Serial.print("    ");
  Serial.println(rtc.formatTime());//获取时间

  Serial.println("CODE_2:");
  Serial.print("20");
  Serial.print(rtc.getYear());//获取年
  Serial.print("/");
  Serial.print(rtc.getMonth());//获取月
  Serial.print("/");
  Serial.print(rtc.getDay());//获取日
  Serial.print("     ");
  Serial.print(rtc.getHour());//获取时
  Serial.print(":");
  Serial.print(rtc.getMinute());//获取分
  Serial.print(":");
  Serial.println(rtc.getSecond());//获取秒

  delay(1000);
  Serial.print("\r\n");
}
void settime(int _year, int _month, int _day, int _week, int _hour, int _min, int _sec)
{
  //clear out the registers
  rtc.initClock();
  //set a time to start with.
  //day, weekday, month, century(1=1900, 0=2000), year(0-99)
  rtc.setDate(_day, _week, _month, 0, _year);
  //hr, min, sec
  rtc.setTime(_hour, _min, _sec);
}
  • 下载程序
    • 将mCookie-BT与mCookie-CoreUSB两个模块叠在一起,将USB线插入mCookie-CoreUSB的插孔,另一端连接电脑USB插口;
    • 启动Arduino IED,将上面程序复制到IDE中,在“settime(15, 8, 10, 4, 15, 57, 36);”中设置当前时间;
    • 在工具(tools)->板卡(Board)中选择Microduino CoreUSB,并在工具(tools)->串口(Serial)中选择对应的串口号;
    • 点击IDE左上角的编译(√)按钮对程序进行编译,编译结束后点击下载(->)按钮将程序烧录到板子中;
  • 结果
    • 程序下载后,打开串口监视器,可看到时间。
MCookie-RTC-res.jpg
    • 在“settime(15, 8, 10, 4, 15, 57, 36);”前加两个“//”注释掉函数,重新下载程序。打开串口监视器,可看到时间。
    • 切断电源,等一段时间(几分钟)后接到电脑,打开串口监视器,显示时间是掉电后继续运行的时间,而不是初始化设置得时间;
    • (注意:RTC是可编程时钟输出,通过settime()函数来设置时间,下载完毕后注释掉settime()函数再下载一次程序才能掉电继续计时,不然上电重启之后又恢复设置得值)

测试EEPROM读写:[RTC_EEPROM]

  • 开机显示载入过程,包括:Welcome!,Load EEPROM,Microduino图标。每隔1s左右载入一个项目,载入完毕进入主程序界面;
    • 第一行显示随机函数值,第一个数据是10到99的随机数(Random);第二个数据是EEPROM掉电后上电读取的数值;
  • 在测试过程中可拔掉电源后插上电源,就可以看到掉电前随机数变换的最后一个值更新到了读取EEPROM显示值处。

测试定时中断:[RTC_Alarm]

  • 开机显示载入过程,包括:Welcome!,Load Time...,Load Alarm..,Microduino图标。每隔1s左右载入一个项目,载入完毕进入主程序界面;
    • 第一行显示的时间。时间格式:xx:xx:xx(时:分:秒);
    • 第二行固定显示:Microduino-RTC v1.0 201310,因为字符较多,采用小字体。
  • 定时中断,当时间到达设定时间时,led每秒闪烁一次,持续1分钟,并且在OLED屏幕上看到倒计时时间。

其他应用:


购买

图库

Front
Back