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
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
Pingback: Den Arduino Quarz Takt genauer bestimmen mit einer RTC oder mit GPS | Shelvin – Elektronik ausprobiert und erläutert
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