查看“MCookie-RTC/zh”的源代码
←
MCookie-RTC/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|mCookie-RTC}} {| style="width: 800px;" |- | [[file:mCookie-rtc-rect.jpg|400px|right|thumb|mCookie-RTC]] mCookie-RTC模块是时钟模块,可获取时间,采用IIC接口通信。 超级电容提供了一定的掉电计时能力,断电后时钟芯片还可运行。 ==特色== *带有世纪标志、秒、分、时、日、星期、月、年; *采用I2C接口与核心模块通信; *带I2C接口的EEPROM存储芯片; *时钟芯片功耗低,典型电流值为0.25μA,外加超级电容,掉电后时钟芯片依然运行; ==规格== *时钟芯片:PCF8563 **低功耗的CMOS 实时时钟/日历芯片; **提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过I2C总线接口串行传递; **最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。 *EEPROM存储芯片:AT24C32 **提供32768位的串行电可擦写可编程只读存储器,组织形式为4096字×8位字长; **AT24C32的级联特性允许在同一I2C总线上挂接8个器件,百万次的复写周期和100年的保存年限,并带有写保护功能。 *超级电容:XH414 **提供一定时间的掉电计时功能。 [[File:mCookie-RTC-Pinout-1Big1.jpg|800px|thumb|center|mCookie-RTC-Pinout1]] ==开发== 需要'''_06_Microduino_RTC_PCF8563'''库支持,库文件路径:'''(安装地址)\Microduino-IDE\hardware\Microduino\avr\libraries''' [[File:microduino-libraries.jpg|440px|center]] 更多使用方法及函数解析可参照: <big>【[[MCookie-RTC Reference|RTC模块库语法手册]]】'''</big> ==应用== [[时间获取]]<br> [[mWatch手表]]<br> [[算数闹钟]]<br> [[吼叫闹钟]]<br> ===测试掉电续时=== <source lang="cpp"> #include <Wire.h> #include <Rtc_Pcf8563.h> //init the real time clock Rtc_Pcf8563 rtc; void setup() { Serial.begin(9600); settime(2017, 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(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); } </source> *下载程序 **将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左上角的编译(√)按钮对程序进行编译,编译结束后点击下载(->)按钮将程序烧录到板子中; *结果 **程序下载后,打开串口监视器,可看到时间。 [[File:mCookie-RTC-res.jpg|800px|thumb|center]] **在“settime(15, 8, 10, 4, 15, 57, 36);”前加两个“//”注释掉函数,重新下载程序。打开串口监视器,可看到时间。 **切断电源,等一段时间(几分钟)后接到电脑,打开串口监视器,显示时间是掉电后继续运行的时间,而不是初始化设置得时间; **'''(注意:RTC是可编程时钟输出,通过settime()函数来设置时间,下载完毕后注释掉settime()函数再下载一次程序才能掉电继续计时,不然上电重启之后又恢复设置得值)''' ===测试EEPROM读写=== <source lang="cpp"> #include <EEPROM.h> long randNumber, data; //定义随机变量使用数据名称 //EEPROM配置 #define EEPROM_write(address, p) {int i = 0; byte *pp = (byte*)&(p);for(; i < sizeof(p); i++) EEPROM.write(address+i, pp[i]);} #define EEPROM_read(address, p) {int i = 0; byte *pp = (byte*)&(p);for(; i < sizeof(p); i++) pp[i]=EEPROM.read(address+i);} //定义EEPROMdata struct config_type { int EEPROMdata; }; void setup() { Serial.begin(115200); /*EEPROM读取赋值*/ config_type config_readback; EEPROM_read(0, config_readback); data = config_readback.EEPROMdata; } void loop() { randNumber = random(10, 100);//随机函数,randNumber的值从10到99变化 delay(1000);//每隔1s刷新一次 if (randNumber != data) //判断EEPROM数据是否变化,变化则写入 eeprom_write();//EEPROM写入函数 Serial.print("EEPROM Write:"); Serial.println(randNumber); Serial.print("EEPROM Read:"); Serial.println(data); delay(1000); Serial.println(""); } //=======================EEPROM写函数===========================// void eeprom_write() { config_type config; // 定义结构变量config,并定义config的内容 config.EEPROMdata = randNumber; EEPROM_write(0, config); // 变量config存储到EEPROM,地址0写入 } </source> *将上述程序复制到IDE,下载程序,打开串口监视器,可以看到EEPROM写入的数据和读出的数据。 [[File:mCookie-RTC-eeprom.jpg|800px|thumb|center]] *在测试过程中拔掉电源后插上电源,打开串口监视器可以看到“EEPROM Read”的数据为最后写入的“EEPROM Write”值。 ==图库== [[file:mCookie-rtc-t.jpg|thumb|600px|center|Front]] [[file:mCookie-rtc-B.jpg|thumb|600px|center|Back]] |}
返回至
MCookie-RTC/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息