ocrobot:modules:pcf8563
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| ocrobot:modules:pcf8563 [2017/04/07 10:03] – 外部编辑 127.0.0.1 | ocrobot:modules:pcf8563 [2025/10/11 02:55] (当前版本) – 外部编辑 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | =====PCF8563实时时钟(RTC)模块===== | ||
| + | OCROBOT pcf8563是一款设计非常优秀的时间源模块,提供直接可以读取的年月日时间分钟秒,并且可以提供32.768khz 1024hz 1Hz的时钟信号,采用高精度的爱普生晶体,极其优秀的极低功耗。 | ||
| + | |||
| + | ====参数数据==== | ||
| + | ------------ | ||
| + | 宽电压范围 1.0~5.5V | ||
| + | |||
| + | 复位电压标准值Vlow=0.9V | ||
| + | |||
| + | 超低功耗:典型值为 0.25uA (VDD=3.0V, | ||
| + | |||
| + | 可编程时钟输出频率为:32.768KHz 、1024Hz 、32Hz 、1Hz | ||
| + | |||
| + | 四种报警功能和定时器功能。 | ||
| + | ====产品图片==== | ||
| + | {{: | ||
| + | {{: | ||
| + | ====支持库(arduino)==== | ||
| + | {{: | ||
| + | |||
| + | ====示例代码==== | ||
| + | ------------------- | ||
| + | 用串口给模块配置时间 | ||
| + | <code cpp> | ||
| + | /* Demonstration of Rtc_Pcf8563 Set Time. | ||
| + | * 时钟时间初始化代码,初始化后时钟会一直运行,以后基本不需要重新初始化了。 | ||
| + | | ||
| + | * VCC to 5V | ||
| + | * GND to GND | ||
| + | * SCL to A5 | ||
| + | * SDA to A4 | ||
| + | | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | //init the real time clock | ||
| + | Rtc_Pcf8563 rtc; | ||
| + | |||
| + | |||
| + | char data[15]; | ||
| + | char Str_year[3], | ||
| + | byte year, month, day, DoW, hour, minute, second; | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | | ||
| + | //clear out the registers | ||
| + | |||
| + | //set a time to start with. | ||
| + | //day, weekday, month, century(1=1900, | ||
| + | Serial.println(" | ||
| + | Serial.println(" | ||
| + | |||
| + | |||
| + | } | ||
| + | |||
| + | void loop() | ||
| + | { | ||
| + | |||
| + | if (Serial.available() > | ||
| + | { | ||
| + | for (int a = 0; a <14; a++) | ||
| + | { | ||
| + | data[a] = Serial.read(); | ||
| + | } | ||
| + | Str_year[0] = data[0]; | ||
| + | Str_year[1] = data[1]; | ||
| + | Str_month[0] = data[2]; | ||
| + | Str_month[1] = data[3]; | ||
| + | Str_date[0] = data[4]; | ||
| + | Str_date[1] = data[5]; | ||
| + | Str_DoW[0] = data[6]; | ||
| + | Str_DoW[1] = data[7]; | ||
| + | Str_hour[0] = data[8]; | ||
| + | Str_hour[1] = data[9]; | ||
| + | Str_minute[0] = data[10]; | ||
| + | Str_minute[1] = data[11]; | ||
| + | Str_second[0] = data[12]; | ||
| + | Str_second[1] = data[13]; | ||
| + | |||
| + | //Str to byte | ||
| + | year = atoi(Str_year); | ||
| + | month = atoi(Str_month); | ||
| + | day = atoi(Str_date); | ||
| + | DoW = atoi(Str_DoW); | ||
| + | hour = atoi(Str_hour); | ||
| + | minute = atoi(Str_minute); | ||
| + | second = atoi(Str_second); | ||
| + | |||
| + | |||
| + | // conf times; | ||
| + | | ||
| + | // | ||
| + | rtc.setDate(day, | ||
| + | //hr, min, sec | ||
| + | | ||
| + | } | ||
| + | |||
| + | |||
| + | //both format functions call the internal getTime() so that the | ||
| + | //formatted strings are at the current time/date. | ||
| + | Serial.print(rtc.formatTime()); | ||
| + | Serial.print(" | ||
| + | Serial.print(rtc.formatDate()); | ||
| + | Serial.print(" | ||
| + | delay(1000); | ||
| + | } | ||
| + | |||
| + | </ | ||
