之前入手过一个 DS1307 模块,但是一直没有实验,今天拿出来玩玩。
实验之前先研究硬件,上面有一个电池,上面写的是 Rechargable ,拆下电池用万用表测试了一下,没有电。不过后来连接USB之后由拔下来稍微放置了一点时间再插上,发现计时仍在继续。应该是充进去一点电了。
I2C 接口的,接线很简单【参考1】:
接下来测试程序,当然为了简单起见还是直接用库。但是不知道为什么连续找了几个库编译都无法完成。最终,找到一个好用的库【参考2】
编写简单的测试程序如下
#include <Wire.h> #include "DS1307A.h" DS1307A ds = DS1307A(2000); DS1307A_RAM ram; void setup() { Serial.begin(9600); //init serial //ds.setDate(2014,10,1); //ds.setTime(20,17,40); //ds.setWeek(MONDAY); } void loop() { Time t = ds.getTime(); Serial.print( t.year); Serial.print("."); Serial.print(t.month); Serial.print("."); Serial.print(t.date); Serial.print(" "); Serial.print(t.hour); Serial.print(":"); Serial.print(t.minute); Serial.print(":"); Serial.print(t.second); Serial.println(); //Serial.print(ds.getDateString("YMD",'-')); //Serial.print(" "); //Serial.println(ds.getTimeString("HMS",':')); delay(1000); }
运行结果如下
代码和测试程序在此 DS1307
参考:
1.http://www.geek-workshop.com/forum.php?mod=viewthread&tid=207&extra=&highlight=ds1307&page=4 arduino学习笔记27 - DS1307 RTC时钟芯片与DS18B20数字温度传感器实验 (特别提醒,这篇文章中给出的库编译无法通过)
2.http://www.geek-workshop.com/thread-2317-1-1.html 自己封装的arduino1.0.1时钟库,使用DS1307芯片
你可以在这里下载文章中提到的库 DS1307A
====================================================================================================================================================================
2015/04/24 特别注意:这个模块对电压比较敏感,特别如果你是 Pro Micro之类的板子,VCC出来的电压可能是 4.6V ,这时候是无法正常工作的,会出现各种稀奇古怪的问题。
请问你的连接图使用什么软件画的?
不好意思,图片是引用别人的。应该是 fritzing 一款开源软件(基本上专门给 arduino 用的)绘制的。
类似的,我画的可以在 http://www.lab-z.com/arduino%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E7%94%B5%E5%AD%90%E9%AA%B0%E5%AD%90%EF%BC%883%EF%BC%89/ 看到。
形象是很形象,只是用的时候感觉有点别扭,
我也淘了一个,还在路上。那个 EEPROM 作用是啥,不太明白?
我猜是一个扩展而已,是独立的功能。我拿到的没上件。
坑爹啊,我买的这个模块没排针,还得焊线
怎么我下载的库好像不行啊
这种模块之间还是有一些差别的,建议直接找卖家要例程