#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;

#include <TM1637.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3

TM1637 tm1637(CLK, DIO);
int8_t TimeDisp[] = { 0x00, 0x00, 0x00, 0x00 };
unsigned char ClockPoint = 1;
unsigned char Update;
unsigned char second;
unsigned char minute;
unsigned char hour;


void setup() {
pinMode(2, OUTPUT);

tm1637.init();
tm1637.set(7); //dull = 0, bright = 7

Serial.begin(57600);
if (! rtc.begin()) {
  Serial.println("RTC ERROR");
  digitalWrite(2, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  while (1);
}

if (! rtc.isrunning()){
  Serial.println("RTC Not Set!");
  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(2, LOW);

  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}

}

void loop() {

DateTime now = rtc.now();

Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);

Serial.println();
hour = now.hour();
minute = now.minute();

delay(1000);

TimeUpdate();
tm1637.display(TimeDisp);

ClockPoint = (~ClockPoint) & 0x01;

}

void TimeUpdate(void)
{
  if(ClockPoint)tm1637.point(POINT_ON);
  else tm1637.point(POINT_OFF);
  TimeDisp[0] = hour / 10;
  TimeDisp[1] = hour % 10;
  TimeDisp[2] = minute / 10;
  TimeDisp[3] = minute % 10;
  //Update = OFF;


}
GND5VSDASCLSQWRTCDS1307+
4-Digit Display