Die Real Time Clock, RTC DS1307 am Arduino Uno betreiben.

Der RTC DS1307 Chip wird vom Arduino Uno ausgelesen und das Datum mit Uhrzeit wird ausgegeben. Die Library von Adafruit vereinfacht die Sache erheblich und wird hier verwendet.

Hier die Anschlüsse:
Arduino > RTC
+5V > VCC
GND > GND
A5 > SCL
A4 > SDA

ds1307-a

Das Programm

// RTC DS1307 Chip - Datum und Zeit ausgeben
//
// Matthias Busse 24.6.2014 Version 1.0

#include 
#include "RTClib.h" // Library https://github.com/adafruit/RTClib

#define tleer if(t<10)Serial.print(" ");Serial.print(t);
#define tnull if(t<10)Serial.print("0");Serial.print(t);

RTC_Millis rtc;

void setup () {
    Serial.begin(38400);
    rtc.begin(DateTime(F(__DATE__), F(__TIME__)));
}

void loop () {
 int t;

    DateTime now = rtc.now(); // RTC einlesen
    t=now.day();              // Tag
    tleer
    Serial.print(".");
    t=now.month();            // Monat
    tnull
    Serial.print(".");
    Serial.print(now.year(), DEC); // Jahr
    Serial.print("   ");
    t=now.hour();             // Stunde
    tleer
    Serial.print(":");
    t=now.minute();           // Minute
    tnull
    Serial.print(":");
    t=now.second();           // Sekunde
    tnull
    Serial.println();
    delay(1000);
}

Der DS1307 Chip mit Quarz hat einen typischen Fehllauf von ca. 1 Minute pro Monat. Das ist für eine Uhr schon ein ziemlich grosser Fehler.

Ggf. ist für den Aufbau später ein genauerer Chipsatz zu verwenden, z.B. der DS3234 mit einem typischen Fehllauf von 1 Minute pro Jahr.

Für die Uhrzeit ist das eine große Abweichung, relativ gesehen sind es aber hoch genaue Uhren, die nur 1 Minute / Monat falsch gehen. Ein Monat hat 30 * 24 * 60 Minuten = 43200 Minuten und davon eine Minute Fehler entspricht 0,02% Fehler.

Beim DS3234 sind es nur 1 min. / 515400 min , oder 0,002 % Fehler.

von Matthias Busse

2 Gedanken zu „Die Real Time Clock, RTC DS1307 am Arduino Uno betreiben.

  1. Pingback: Den Arduino Quarz Takt genauer bestimmen mit einer RTC oder mit GPS | Shelvin – Elektronik ausprobiert und erläutert

  2. Andreas Unbehaun

    Hallo,
    sehr interessante und hilfreiche Erläuterungen zum Arduino.

    Die Real Time Clock, RTC DS1307 am Arduino Uno betreiben,
    im Programm hat sich ein Fehler bei der Zeilennummer 5 eingeschlichen.
    5 #include
    6 #include „RTClib.h“ // Library https://github.com/adafruit/RTClib

    Beim Überprüfen/Kompilieren wird eine Fehlermeldung ausgegeben da nach #include kein Eintrag
    erfolgte.
    Nach Entfernen des Eintrages Zeilennummer 5 lässt sich das Programm ohne Probleme kompilieren

    Andreas

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.