arduino教程系列38-Arduino + DS1307 RTC时钟模块与经典总结

Randy 于 2013-3-15 09:51 编辑





之前遇到了问题,也一直没头绪,没办法解决,经过查阅了相关的资料和论坛里朋友们的回答,于是今天经过测试把问题都解决掉了,这个问题,就是DS1307模块不能正常显示的问题,我手上有一块单独的DS1307模块,不像之前弘毅站长写的那个帖子,他里面还包含了DS18B20、EEPROM的功能在里面,我写这个帖子的目的是为了初学者手上只有DS1307而没有DS18b20或者是没有EEPROM模块的。这时候就是单纯的找这样的帖子,今天我花点时间来整理一下。毕竟总结才会让我记得深刻或者方便以后不记得了而查阅方便吧,希望老鸟们和菜鸟们都喜欢,不喜欢可以指出哦。毕竟我知识有限,慢慢学习吧!



进入正题:





描述:

是一款低功耗,具有56字节非失性RAM的全BCD码时钟日历实时时钟芯片,地址和数据通过两线双向的串行总线的传输,芯片可以提供秒,分,小时等信息,每一个月的天数能自动调整。并且有闰年补偿功能。AM/PM 标志位决定时钟工作于24小时或12小时模式,芯片有一个内置的电源感应电路,具有掉电检测和电池切换功能。





特点:



可对秒,时,分,每月的天数,月份,每周的天数进行记数,并具有闰年补偿功能。记年上线2100。   

56字节非失性的RAM   

两线串行接口   

可编程方波输出   

自动掉电检测和切换电路   

在电池备份模式下,功耗小于500nA   

工业级的工作温度: -40 到80   

8脚DIP和SOIC封装





主要参数:



存储器配置:64 x 8Bit   

电源电压范围:4.5V to 5.5V   

芯片封装类型:DIP   

针脚数:8   

工作温度范围:0°C to +70°C   

封装类型:DIP   

工作温度最低:0°C   

工作温度最高:70°C   

中断类型:全天时间   

器件标号:1307   

器件标记:DS1307+   

存储器容量:56 bytes   

存储器类型:RAM   

接口类型:Serial, I2C   

时钟频率:32.768kHz   

温度范围:商用   

特点:方波输出   

电压, Vcc 最大:5V   

电源电压 最大:5.5V   

电源电压 最小:4.5V   

类型:RTC   

芯片标号:1307   

表面安装器件:通孔安装   

输出数:1





以上是DS1307的要点,写下来介绍一下它的连接方法。


ds1307典型连接图.jpg

2012-4-25 16:04 上传
(59.53 KB)







这个是我的实际产品,采用的是IIC接法方式,和Arduino连接是非常方便简单的!


产品(1).jpg

2012-4-25 16:07 上传
(115.09 KB)







连接方法是:



DS1307的SCL接Arduino(A5), SDA接Arduino(A4),剩下的就是VCC与GND对接起来即可,电压选择的是5V的。





连接好以后,我们来看一下代码,因为器件采用的是IIC通信方式,所以写代码也是比较容易得。



主要代码如下:#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);// set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();
lcd.print("www.geeetech.com!");
}

void loop()
{
}复制代码通过以上的讲解,你可能对DS1307时钟芯片有一些大概的了解了,但是我们在使用过程中,难免会出现问题的情况,我自己也总结了一些方法,现在也写出来给大家看看,借鉴借鉴,如有不妥,务必提出,谢谢!



经过一段时间的总结,发现了问题所在,先告诉大家是怎么解决的。我试了25个板子,都可以进行工作了。



我总结一下解决方法的可能性!

第一: 确保您DS1307模块上的4.7K电阻是否接入电路当中。

第二: 查看一下您的掉电给电的纽扣电池是否插入电池座里。(这个原因不是很明确,但是在我没插电池时,有些模块测试不行,一旦确保电路接入4.7K电阻和电池时,完全可以工作了)!



第三: 查看一下电路连接是否正确,电路连接很简单,4根线。(VCC、GND、SCL、SDA)



第四: 如果发现在IDE编译程序时,不能成功,那就是可能是自己的操作不当或者不会操作(比如是不会把express 放入libraries所导致编译的错误,方法请参照本论坛的相关帖子,谢谢)!



只要确保以上的步骤是正确的,那应该会没什么困难的进行工作,如果还有一个问题,那就是PCB板本身存在的问题咯。





如果大家还有什么问题,可以回帖一起学习哦!分享快乐!





顺便把所用到的libraries也贴出来,目的是为了让大家不费劲的去找,爱上我们这样国内比较全面的论坛,谢谢!


DS1307.pdf

(165.06 KB, 下载次数: 707)

2012-8-31 20:54 上传
点击文件名下载附件




DS1307.zip

(71.34 KB, 下载次数: 1379)

2012-8-31 20:54 上传
点击文件名下载附件





这个是正确的库,之前那个少了一个.H文件,不好意思哈!

via - 极客工坊

标签: Arduino教程