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

来自DFRobot Product Wiki
跳转至: 导航搜索

[[文件:|right|250px]]

目录

简介

这款DS1307时钟模块是由我们的设计师Waiman开发的高质量时钟模块。该模块出厂时就附带电池(CR1225 41MAH),并已经烧录了准确的北京时间(MST)。该模块在不具备外接5V电源的情况下,最小使用寿命为9年,但是一般能达到17年。DS1307芯片通过I2C协议通信。 不同于一般的时钟模块,DFR0151具备以下特色功能: 模块集成了I2C EEPROM芯片(24C32)和DS18B20传感器接口。I2C EEPROM具备4KB的内存,使得模块在存储数据时大大节省时间和处理器资源。 该模块还为DS18B20内嵌了上拉电阻,使你更方便的增加温度监控功能。在板子的右下角具备3P的DS18B20接口,用户可以使用我们的DFR0024数字温度传感器模块或者DFR0198防水温度传感器。

产品参数

工作电压:5V
左右双I2C端口、标准PH2.0_4p接口
时间格式:小时-分钟-秒 AM/PM,日/月/星期/年
瑞年补偿计算
保证准确日期到2100年
包括备份电池
1Hz输出插口
56字节的非易失性内存
4KB的只读内存(EEPROM)
内嵌DS18B20的上拉电阻
尺寸:22*31mm

应用

  • 实时时间监控系统
  • 定时器

使用教程

连线图


引脚说明
GND——GND VCC——5V
SDA——A4 SCL——A5
DS——D2
 /***************************************************
 * Light string   
 * ****************************************************
 * How to apply the DS1307 clock module.  
 * @author Dongzi(1185787528@qq.com)
 * @version  V1.0
 * @date  2017-08-21
 * 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"};
 int rtc[7];
 void showtime()
   {
    RTC.get(rtc,true);
   {  /*YEAR MONTH DATE*/
    int i;for(i=0;i<18;i++)
    Serial.print("*");
    Serial.println("");
    Serial.print("*");
    Serial.print("    ");  
    Serial.print(rtc[6]);   
    Serial.print("-");   
    Serial.print(rtc[5]);
    Serial.print("-");   
    Serial.print(rtc[4]);
    Serial.print("   ");
    Serial.println("*");
    /*HOUR  MIN SEC */
    Serial.print("*");
    Serial.print("    "); 
    Serial.print(rtc[2]);
    Serial.print(":");
    Serial.print(rtc[1]);
    Serial.print(":");    
    Serial.print(rtc[0]);
    Serial.print("     ");    
    Serial.println("*");
    /********WEEK*****/      
    Serial.print("*");  
    Serial.print("    ");
    Serial.print(str[rtc[3]-1]); 
    Serial.print("      ");
    Serial.println("*");
     for(i=0;i<18;i++)
   Serial.print("*"); 
   Serial.println();     
    }  
   }
 void setup()
 {  Serial.begin(9600); 
   Wire.begin();
  // put your setup code here, to run once:  
   if(updata_flag)
  { Serial.println(" OldTime:  ");
   showtime();
    RTC.stop();    
    //---Update time----      
    RTC.set(DS1307_SEC,TIME_SEC); 
    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();    
    delay(1000);
 }

结果

DFR0151 串口 0.jpg

疑难解答

电脑时间实时更新


更多问题及有趣的应用,请访问论坛

更多


Nextredirectltr.pngDFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱