Pages: [1] 2   Go Down
Author Topic: Time Library kalibrieren  (Read 2213 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hallo zusammen,

ich benutze die Time Library, habe aber eine Zeitabweichung von mehreren Sekunden pro Tag.
Nun würde ich gern eine Kalibrierung durchführen, an welchem wert muß ich schrauben?
Ich habe ein VB Programm geschrieben, das die synchronisierung mit der PC Zeit durchführt, der Arduino soll aber längere Zeit unabhängig laufen.
Ich möchte eine Funktion basteln, die in Abhängigkeit der Zeit der letzten Synchronisation und der ab da aufgetretenen Zeitabweichung den Timer kalibriert.
Hat da jemand eine Idee?

Gruss
Michael
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bist Du Dir sicher, daß die Library schuld ist oder ist das Problem vieleicht Dein Quarz / Resonator? Die einzige wirklich brauchbare Methode ist auf einen RTC Chip zu wechseln.
Logged

Check out my experiments http://blog.blinkenlight.net

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 3
Posts: 773
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Die einzige wirklich brauchbare Methode ist auf einen RTC Chip zu wechseln.

...welche aber leider auch nicht immer 100%ig ist. Meine RTC z.B. geht pro Tag 1,57 Sekunden vor. smiley-sad

Optimal wäre ein DCF77-Empfänger oder ein GPS, sofern Du Empfang hast...
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn Deine RTC soviel daneben liegt, dann solltest Du die Kondensatoren / den Quarz checken oder gleich einen richtig guten RTC nehmen. Z.B. ds3231. Und wenn Du es unbedingt "100%ig" haben willst, dann hol Dir eben bei Ebay ein gebrauchtes Trimble Thunderbolt Modul.
Logged

Check out my experiments http://blog.blinkenlight.net

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21252
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Optimal wäre ein DCF77-Empfänger oder ein GPS, sofern Du Empfang hast...
Auch ein Radioempfänger mit RDS gibt die genaue Uhrzeit und ist funktioniert im Gegensatz zu GPS innerhalb von Häusern und ist weniger kritischer auf Störungen vom Rest der Elektronik als DFC77.
Grüße Uwe
« Last Edit: April 24, 2011, 03:27:13 pm by uwefed » Logged

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 3
Posts: 773
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

oder gleich einen richtig guten RTC nehmen.

Ist ein DS1307-Breakout von Watterott, funktioniert mit Korrekturzeit mittlerweile ganz gut.

Aber das Wahre ist das natürlich nicht, gibts von dem DS3231 irgendwo eine Breakout-Version zu kaufen?
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

http://macetech.com/store/index.php?main_page=product_info&cPath=5&products_id=8&zenid=61f255fedb9c841ace9d4e18bc5c7d2e
Logged

Check out my experiments http://blog.blinkenlight.net

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 3
Posts: 773
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bestellt, bin gespannt. smiley Tnx!
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Berichte wie gut das Ding wirklich ist. Ich habe ein Thunderbolt hier, das ist richtig gut. Leider ist der Stromverbrauch ziemlich groß. Ohne Steckdose läuft da nichts. Es ist immer wieder cool zu sehen wenn der Frequenzzähler in der letzten Stelle abweicht und klar ist, daß der Frequenzzähler schuld ist smiley
Logged

Check out my experiments http://blog.blinkenlight.net

0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Einen extra chip wollte ich eben vermeiden.
Es muß doch eine Möglichkeit geben, die Zeit z.B. einmal am Tag zu korrigieren?

Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe beste Erfahrungen mit dem PCF8583 gemacht. Mit einem Trimmer-C (siehe Datenblatt) habe ich es geschafft, den Chip auf ca. 1-2 sek Abweichung im Monat zu tunen (bei Raumtemperatur). Leider gibt's dafür noch kein Shield. Eine Arduino Library ist verfügbar. Der Chip hat einen Speicher, den man theoretisch zusätzlich dazu nutzen könnte eine SW-Korrektur der Zeit durchzuführen. 
Eine reine SW Lösung kann ich nicht empfehlen.
Logged

Deutschland, Ruhrpott
Offline Offline
Jr. Member
**
Karma: 1
Posts: 78
Arduino rocks Amiga rocks RC Truck rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

ich habe mittlerweile 2 DS3231 im Einsatz und bin damit sehr zufrieden. Für den DS3231 braucht man eigentlich kein Shield der Anschluss beschränkt sich auf Spannungsversorgung +5V 0V, Batterie und den I2c Bus.
Logged

Gruesse
big-maec

Offline Offline
Full Member
***
Karma: 4
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

Es muß doch eine Möglichkeit geben, die Zeit z.B. einmal am Tag zu korrigieren?

ein Kollege von mir macht das mit einem Funkwecker.
Mittags um 12 "klingelt" dieser.
Das Signal wird abgegriffen und auf einen Eingang des Prozessors geleitet.
Damit stellt er täglich die Uhr, die intern läuft.
(funktioniert auch für Sommer-/Winterzeit)

Gruss

Kurti
Logged

Es gibt nur 10 Arten von Menschen: die, die das Binär-System verstehen und die, die es nicht verstehen.

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo zusammen, hallo Michael,

ich glaube du suchst so etwas (Schnipsel aus meinem letzten Programm):

Code:
void UhrKorrektur (){

  time_t t = now ();
  if (hour(t) == 2 && minute(t) == 2 && second(t) == 2){
    adjustTime(30);
    Alarm.delay(1000);
  }
}

Ich habe ausprobiert um wieviel die Uhr pro Tag falsch geht (bei mir ca. 30sec) und korrigiere sie jede Nacht um 02:02:02
Danach verzögere ich das Programm um 1 Sekunde damit ich nicht mehrfach den adjust.Time aufrufe.

Nachteil: Wenn du deine Zeitsyncronisation mit dem PC kurz vor 02:00 Uhr machst, geht deine Uhr ab 02:02 Uhr 30 Sekunden vor. (Aber dafür nahezu konstant und sie läuft nicht weg)

(Hinweis: Aus der Alarm Libary verwende ich keine "repeat" Funktion sondern nur "once" sonst gibt es noch andere Probleme)

Viele Grüße, finu

Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

30s Abweichung pro Tag? Das sind ~348 ppm, wie passiert denn sowas? Was für einen Arduino hast Du? Einen mit Resonator oder einen mit Quartz? Mit Resonator wäre das ziemlich gut, mit Quarz wäre das total daneben. D.h. falls Dein Arduino mit Quartz läuft stimmt was mit Deiner Software nicht.
Logged

Check out my experiments http://blog.blinkenlight.net

Pages: [1] 2   Go Up
Jump to: