Real Time Clock (DS1307)

Wird der Arduino vom Akku getrennt entlädt sich der Kondensator der Uhr zu schnell und somit schafft es die DS1307 nicht rechtzeitig in den Batterie-Modus zu wechslen. Dadurch verfälscht sich die eingestellte Zeit und eventuell das Datum. Um dieses zu verhindern einen Schiebeschalter vor den VCC-Pin löten, der vorm abstecken des Arduinos betätigt wird.

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
 
#include <Wire.h>
#include "RTClib.h"
 
RTC_DS1307 RTC;
 
void setup () {
    Serial.begin(9600);
    Wire.begin();
    RTC.begin();
 
   // RTC.adjust(DateTime(__DATE__, __TIME__));
 
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));

  }
 
}
 
void loop () {
    DateTime now = RTC.now();
 
    Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
 
 
 
 
    if(now.hour()<10){
      Serial.print("0");
      Serial.print(now.hour(), DEC);
    }
    else{
      Serial.print(now.hour(), DEC);
    }
    Serial.print(':');
    
    if(now.minute()<10){
      Serial.print("0");
      Serial.print(now.minute(), DEC);
    }
    else{
      Serial.print(now.minute(), DEC);
    }
    
    Serial.print(':');
    
    if(now.second()<10){
      Serial.print("0");
      Serial.print(now.second(), DEC);
    }
    else{
      Serial.print(now.second(), DEC);
    }  
    Serial.print(" ");
    
    Serial.print(now.unixtime());
    
    Serial.println();
    Serial.println();
    delay(1000);
}

 

 

Anhänge:
Diese Datei herunterladen (Real Time Clock DS1307.pdf)Datenblatt[ ]%2012-%09-%27 %1:%Sep%+02:00