(SKU:DFR0151)DS1307 时钟模块 V1.0

来自DFRobot Product Wiki
跳转至: 导航搜索
时钟模块

目录

简介

这款DS1307高准确度实时时钟模块,板载EEPROM-4KB的内存,可以记录更多闹钟和一些事件信息,使得模块在存储数据时大大节省时间和处理器资源。使用单节CR1220电池座,电池最小使用寿命为3~5年。时钟信号和EEPROM采用同一个接口,使用方便,DIY一个多功能时钟,此模块是个不错的选择。发挥你的创意灵感,制作一个独一无二的时钟吧~

产品参数

  • 工作电压:5V
  • 插针I2C端口+标准PH2.0_4p接口
  • 芯片可输出数据:年、月、日、 星期、时、分、秒。
  • 瑞年补偿计算
  • 保证准确日期到2100年
  • 1Hz输出插口
  • 56字节的非易失性内存
  • 4KB的只读内存(EEPROM)
  • 尺寸:22*31mm

引脚说明

实时时钟管脚定义
实时时钟管脚定义
标号 名称 功能描述
1 VCC 电源输入正极(5v)
2 GND 电源输入负极
3 SCL I2C时钟
4 SDA I2C数据
5 SQ 时钟输出
6 VCC 电源输入正极(5v)
7 GND 电源输入负极
8 SCL I2C时钟
9 SDA I2C数据


模块地址真值表

DFR0151 board 0.png
DFR0117 Add Tb.png
















注:EEPROM芯片默认I2C地址为0x50, A0~A2 丝印旁边200R 焊接上为ON 去掉为0ff


使用教程

  • 说明:本教程为你演示怎样使用“arduino”来更新模块的时间

准备

连线图

DFR0151 app 1.png




样例代码

 /***************************************************
 * Real Time Clock Module   
 * ****************************************************
 * How to apply the DS1307 clock module.  
 * @author Dongzi(1185787528@qq.com)
 * @version  V1.0
 * @date  2017-08-21
 GNU Lesser General Public License.
 See <http://www.gnu.org/licenses/> for details.

 * All above must be included in any redistribution
 * ****************************************************/
 #include <Wire.h>
 #include <DS1307.h>
 #define updata_flag 0 //1 updata time,0 only show time
 //Modify the following data
 #define TIME_YR    17
 #define TIME_MTH   8
 #define TIME_DATE  21
 #define TIME_DOW   1
 #define TIME_HR    0
 #define TIME_MIN   1
 #define TIME_SEC   0
 char* str[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};//week 
 int rtc[7];
 void showtime()     //
   {
    RTC.get(rtc,true);
   {    
    Serial.print( rtc[6]);   /*YEAR MONTH DATE*/      
    Serial.print("-");   
    Serial.print( rtc[5]);
    Serial.print("-");   
    Serial.println( rtc[4]);
   
    Serial.print( rtc[2]); /*HOUR  MIN SEC */   
    Serial.print(":");
    Serial.print( rtc[1]);
    Serial.print(":");    
    Serial.println( rtc[0]);
    
    Serial.println( str[rtc[3]-1]); /********WEEK*****/  
    Serial.println("**********");        
    }  
   }
 void setup()
 {  Serial.begin(9600); 
   Wire.begin();
 
   if(updata_flag)
  { Serial.println(" OldTime:  ");
   showtime();
    RTC.stop();    
    
    RTC.set(DS1307_SEC,TIME_SEC); //---Update time----      
    RTC.set(DS1307_MIN,TIME_MIN);
    RTC.set(DS1307_HR,TIME_HR);
    RTC.set(DS1307_DOW,TIME_DOW);
    RTC.set(DS1307_DATE,TIME_DATE);
    RTC.set(DS1307_MTH,TIME_MTH);
    RTC.set(DS1307_YR,TIME_YR);    
    RTC.start();    
    Serial.println(" SetTime:  ");
    showtime();     
   }
 }
 void loop()
 { if(updata_flag==0)
     showtime();    //Output data from serial port
    delay(1000);
 }

结果

程序烧录后 打开串口 将会以下图格式输出时间:

DFR0151 串口 1.png


常见问题

问:有什么办法让电脑时间实时更新到模块中吗?

答:请点击下面的链接:电脑时间实时更新


更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。


更多

  • 有趣的应用链接
  • 相关下载链接
  • 推荐阅读链接



DFshopping car1.png [Link DFRobot商城购买链接]

个人工具
名字空间

变换
操作
导航
工具箱