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

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

目录

简介

这款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端口
时间格式:小时-分钟-秒 AM/PM,日/月/星期/年
瑞年补偿计算
保证准确日期到2100年
包括备份电池
1Hz输出插口
56字节的非易失性内存
4KB的只读内存(EEPROM)
内嵌DS18B20的上拉电阻
尺寸:28*25*8mm

应用

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

使用教程

连线图

Connect DFR0151 new.png


引脚说明
GND——GND VCC——5V
SDA——A4 SCL——A5
DS——D2

样例代码

在编译程序之前,请先下载并安装DS1307库文件
库安装


#include <Wire.h>
#include <DS1307.h>

#define updata_flag 1 //1 updata time,0 only show time

//Modify the following data
#define TIME_YR    20
#define TIME_MTH   64
#define TIME_DATE  0
#define TIME_DOW   0
#define TIME_HR    0
#define TIME_MIN   1
#define TIME_SEC   0


int rtc[7];

//*****************************************
//
//      DS1302 RTC code
//
//*****************************************

void DS1302_SetOut(byte data ) {
    Wire.beginTransmission(B1101000);
    Wire.write(7); // LSB
    Wire.write(data);
    Wire.endTransmission();
}


byte DS1302_GetOut(void) {
    byte rdata = 0xFF;
    Wire.beginTransmission(B1101000);
    Wire.write(7); // LSB
    Wire.endTransmission();
    Wire.requestFrom(B1101000,1);
    if (Wire.available()) {
      rdata = Wire.read();
      Serial.println(rdata,HEX);
    }
    return rdata;
}


void showtime(void){
  byte i;
  Serial.print("Time=");
  DS1302_SetOut(0x00);
  RTC.get(rtc,true);  
  for(int i=0; i<7; i++){
    Serial.print(rtc[i]);
    Serial.print(" ");
  }
  Serial.println(" ");
}

void setup() {
     Wire.begin();
  // put your setup code here, to run once:
   Serial.begin(9600);
   Serial.print(" OldTime:  ");
   showtime();
   Serial.println(" ");
   if(updata_flag)
  {
    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.print(" SetTime:  ");
    showtime(); 
    Serial.println(" "); 
  }
}

void loop()
{
   showtime();  
   delay(1000);
}

结果

DFR0151 Res.png

疑难解答

电脑时间实时更新
更多问题及有趣的应用,请访问论坛

更多


Nextredirectltr.pngDFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱