极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 25926|回复: 11

OCROBOT 实时时钟模块(RTC pcf8563)调试实录 ② 配合i2c液晶屏显示

[复制链接]
发表于 2015-3-30 17:34:43 | 显示全部楼层 |阅读模式
本帖最后由 迷你强 于 2015-4-1 11:12 编辑

      连发第二弹啦,用I2C屏幕,显示时间,之前的内容看前篇帖子

传送门

     

效果图如上图,其实非常简单,都是I2C总线,所有线都是并联的。

需要一个新的库,就是I2C液晶屏的库
点击下载

注意,此库在arduino下有一个同名的库文件,建议删除原来的,再将此文件复制进去,直接替换可能会出问题。


代码如下,因为前篇已经给模块配置好时间了。这个时间会一直走,直到电池耗尽,不过这颗电池供电个1-2年肯定问题不大。

  1. #include "LiquidCrystal.h"
  2. #include <Wire.h>
  3. #include <Rtc_Pcf8563.h>

  4. byte year, month, day,Weekday, hour, minute, second;  //初始化一些变量

  5. Rtc_Pcf8563 rtc;
  6. LiquidCrystal lcd(0);    //初始化液晶屏
  7. void setup()
  8. {
  9. lcd.begin(16, 2);    //定义屏幕的种类


  10. }

  11. void loop()
  12. {
  13.   rtc.getDateTime();  //从时钟读取时间
  14. year = rtc.getYear();  //读取年
  15. month = rtc.getMonth(); //月
  16. day = rtc.getDay();   //日
  17. Weekday = rtc.getWeekday();  //星期
  18. hour = rtc.getHour();  //小时
  19. minute = rtc.getMinute();  //分钟
  20. second = rtc.getSecond();  //秒
  21. if( second ==0)   //判断下,如果值是0就刷新下屏幕,避免字符显示混乱
  22. {
  23.      lcd.clear();
  24. }

  25.   lcd.setCursor(2, 0);   //第一行 从第三字符开始
  26.    lcd.print("20");      
  27.    lcd.print(year);
  28.    lcd.print("-");
  29.    lcd.print(month);
  30.    lcd.print("-");
  31.    lcd.print(day);
  32.     lcd.setCursor(13, 0);   //从第一行 第十四个字符显示
  33.     lcd.print(Weekday);
  34. lcd.setCursor(4, 1);   //第二行第五个字符开始显示
  35.    lcd.print(hour);
  36.    lcd.print(":");
  37.    lcd.print(minute);
  38.    lcd.print(":");
  39.    lcd.print(second);

  40.   delay(800);
  41. }
复制代码


非常简单啦。。这样就有一个时钟了。。

欲知后事如何,请点传送门

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-3-30 20:30:12 | 显示全部楼层
谢谢分享学习一下
回复 支持 反对

使用道具 举报

发表于 2015-3-30 20:30:53 | 显示全部楼层
一天看到了两个帖子,迷你强,你真强
回复 支持 反对

使用道具 举报

发表于 2015-3-31 14:39:28 | 显示全部楼层
我想在你遍的程序上加上定时功能,可否提供一个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-1 10:31:18 | 显示全部楼层
定时器基本都是时钟提供
回复 支持 反对

使用道具 举报

发表于 2015-4-12 16:41:37 | 显示全部楼层
怎么回事

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-5-15 16:33:47 | 显示全部楼层
布列松 发表于 2015-4-12 16:41
怎么回事

同问,求助QAQ
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-10 09:16:10 | 显示全部楼层
要删除IDE本身里面的LiquidCrystal文件夹,再解压缩下载的那个文件目录进去才对,不要直接替换,可能会出问题的
回复 支持 反对

使用道具 举报

发表于 2015-10-12 15:03:52 | 显示全部楼层
之前在做项目时一直困惑,为什么有时候LCD显示会乱码,原来要定期清屏,受教了~~
回复 支持 反对

使用道具 举报

发表于 2015-10-29 14:27:24 | 显示全部楼层
  LCD显示会乱码,原来要定期清屏,受教了~~
回复 支持 反对

使用道具 举报

发表于 2015-10-29 15:45:06 | 显示全部楼层
初学者学习。
回复 支持 反对

使用道具 举报

发表于 2023-3-15 21:00:18 | 显示全部楼层
请教各位,我用同样的代码,从PCF8563读出来的数据,都是0,是哪里出了问题呢?感觉是数据格式的原因,不知道在哪里修改。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 08:00 , Processed in 0.049333 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表