Schlagwort-Archive: RTC3231

Den Arduino Quarztakt auf 3ppm genau bestimmen mit der DS3231 RTC

Der Arduino Uno hat einen 16MHz Quarz für den Prozessortakt.

Diese Quarzfrequenz ist von der Temperatur abhängig, typisch +-30ppm oder 480 Hz über normale Temperaturen und Herstellungsbedingt fehlerhaft in der Größenordnung von typisch +-30ppm oder 480Hz. Das ergibt zusammen einen Fehler von +-960Hz oder 60ppm. Bei einer Frequenzmessung kann das zu großen Fehlern führen sodaß die 4. Stelle schon falsch sein kann. Bessere Angaben liefert das Datenblatt vom Quarz oder der Aufdruck.

Das läßt sich verbessern auf unter 3ppm oder 48 Hz Fehler mit der RTC DS3231. Dazu wird der 1Hz Ausgang des DS3231 verwendet um bei steigender Flanke einen Interrupt im Arduino auszulösen. Bei jedem 4. Interrupt (4 Sekunden) wird die vergangene Prozessorzeit mit der Funktion micros() in Mikrosekunden ermittelt. Daraus kann nun der Prozessortakt genauer bestimmt werden. Weiterlesen

RTC3231 Aufbau

Von der RTC DS3231 die Temperatur auslesen mit dem Arduino

Die RTC DS3231 kompensiert die Quarz Frequenzänderung mit der Temperatur. Die Temperatur wird alle 64 Sekunden neu gemessen. Man kann diese Quarz Temperatur auslesen.

Hier das Arduino Programm dazu Weiterlesen

RTC3231 Aufbau

Rechteck 1Hz (+-2ppm) ausgeben mit dem RTC DS3231 und dem Arduino

Die RTC DS3231 kann auch ein sehr genaues Rechtecksignal ausgeben am SQW Ausgang. Dazu wird das Control Register entsprechend gesetzt.

Diese 4 Frequenzen sind einstellbar: 1Hz, 1024Hz, 4096Hz, 8192Hz. Die Signale sind symmetrisch und die Amplitude entspricht fast VCC (also 3,3V oder 5V)

Zusätzlich stehen am 32kHz Pin immer 32768Hz zur Verfügung. Dieses Signal ist aber nicht symmetrisch (ca. 1/3 An und 2/3 Aus).

Die hohe Genauigkeit des RTC3231 bleibt dabei erhalten. Dadurch werden diese Frequenzen mit nur +-2ppm Abweichung ausgegeben.

Hier das Programm mit den 4 Funktionen Weiterlesen

RTC3231 Aufbau

Die Uhrzeit des RTC DS3231 Modul vom Arduino einstellen

Die Uhrzeit des RTC DS3231 Uhrzeitmoduls soll vom Arduino einmalig eingestellt werden. Danach speichert das Modul die richtige Uhrzeit und läuft mit der angebauten Batterie weiter.
Die Verkabelung wurde im vorherigen Beitrag beschrieben.

Hier das Programm.
Die aktuelle Uhrzeit +1min wird manuell eingegeben unter setup(). Dann wird das Programm ca. 4 Sekunden vor der Uhrzeit übersetzt und hochgeladen. Es sollte nun ungefähr zur richtigen Uhrzeit im RTC Chip ankommen. Ansonsten ein wenig mit den 4 Sekunden herum spielen. Weiterlesen

RTC3231 Aufbau

Die Uhrzeit des RTC DS3231 Modul vom Arduino auslesen

Das Uhrzeitmodul RTC DS3231 (Real Time Clock ZS-042) ist eine genaue Uhr mit eingebauten Quarz. Dieser Quarz wird intern Temperatur überwacht und korrigiert sodass sie einen Fehler von nur +-2ppm hat, was ca. 1 Minute pro Jahr entspricht.

Ich habe das RTC3231 mit 4 Leitungen an den Arduino Uno angeschlossen. Weiterlesen