Go Down

Topic: millis() genau genug für eine uhr? (Read 5 times) previous topic - next topic

uwefed

Hallo foo_mep

Der Quarz auf dem Arduino ist genau; typischerweise 100ppm Fehler (maximal, bedingt durch Exemplarstreuung und auf den ganzen zulässigen Temperaturbereich; bei 25 Grad ist der Fehler kleiner). Es kann sein, daß Du einen Arduino ohne Quarz hast,  sondern einen mit einen Resonator; die sind ungenauer (0,1% = 1000ppm).

Der Arduino Uno hat einen Resonator.

Wenn Du einen Externen Oszillator hinbauen willst, dann kauf Dir gleich eine RTC. Die meisten haben einen Ausgang mit 1Hz Rechteck-Signal.


Grüße Uwe

Udo Klein

Meiner Meinung nach ist der Arduino nicht genau genug für eine Uhr. 10-100ppm Abweichung sind locker drin. D.h. etwas in der Größenordnung von 1-10s/Tag. Je nach Exemplar und Temperatur kann das ganz schön streuen. Ich würde für eine Uhr entweder einen RTC Chip oder gleich ein Funkuhrmodul nehmen. Funkuhr hat auch gleich den Vorteil, daß man die Uhr nie wieder stellen muß.

Gruß, Udo
Check out my experiments http://blog.blinkenlight.net

uwefed

Hallo Udo
Eine RTC ist auch nicht viel genauer, da auch sie einen Quarz als Zeitgebendes Element verwendet. Da sind die 50Hz der Netzspannung auf längere Zeiträume sehr genau. Dies ist interesant für netzgespeiste Geräte.

Ich experimentiere gerade mit einem DCF77 Modul und habe einige Schwierigkeiten. Ziemliche viele Elektrogräte im 1m Abstand blockeren effektiv den Empfang.
Ich weiß noch nicht ob das SIgnal wegen der Berge schwach ist. Eigentlich wohne ich weniger 500 km vom Sender entfernt.

Genaue Zeitsignale sind RDS informationen in Radiosendern, GPS Empfänger (funktionieren nur außerhalb von Gebäuden)  und nts Server im Internet.

Viele Grüße Uwe


funkheld

#33
Jan 30, 2011, 01:51 pm Last Edit: Jan 30, 2011, 01:58 pm by funkheld Reason: 1
Wenn du unsauber programmiert hast, nützt der genaueste Timer nichts.
Über welche Umwege wird denn die Uhr angezeigt, vielleicht verschlabbert dein Code da die Zeit , evtl durch ein For oder zusätzliche unnütze Delay.... :)


Quote

Meiner Meinung nach ist der Arduino nicht genau genug für eine Uhr.


..das ist unsinn

Der Timer geht bei 16mhz bis µsek(millionstel secunde) genau.
Sogar µsec als Float schafft das avrgcc.

Wenn der interne Quarz mit 1 oder 8 mhz gesetzt wurde dann kann es durch Teperaturschwankunken dazu kommen.

Udo Klein

Naja, so ganz stimmt das nicht. Quarzosszialtoren bekommt man mit entsprechendem Aufwand schon genauer hin. Auch für wenig Geld. Die RTC hier http://www.maxim-ic.com/datasheet/index.mvp/id/4627 ist offensichtlich Temperaturkompensiert und damit doch gleich 1-2 Größenordnungen besser als der Arduino.

Wenn's dann noch besser werden soll, dann geht der Zoo los, ofenstabilisert, funk oder netzgesteuert usw. Ich plädiere dann im Zweifelsfall immer für DCF77 oder gleich GPS.

Gruß, Udo
Check out my experiments http://blog.blinkenlight.net

uwefed

#35
Jan 30, 2011, 04:49 pm Last Edit: Feb 01, 2011, 12:48 am by uwefed Reason: 1
Hallo Udo Klein

Hab noch keine Platine mit dem temperaturkompensierten RTC DS3231 gesehen.
Die normal in den Elektronikshops erhältlichen RTC DS130x sind nicht temperaturstabilisiert.

Du hast Recht daß DCF77 und GPS genau sind, aber der Empfang nicht so trivial.
GPS funktioniert in Gebäuden praktisch nicht.
DCF zum laufen zu bringen ist, mit der Erfahrung die ich gerade sammle, schwierig. PC und Röhrenmonitore in unmittelbarer Nähe stören. Hab noch nicht Versucht einen Arduino dranzuhängen, aber ein DSO mit ATmega vereitelt durch Störungen die Messung des Ausgangssignale wirkungsvoll. Ich weiß nicht, ob das Schuld vom meinem Modul ist oder weil ich in den Alpen wohne, auch wenn unter 500km Distanz vom Sender.

Einen Alternative sind die RDS Daten con UKW-Radio-Sendern. Radiosender empfängt man wirklich überall.
http://de.wikipedia.org/wiki/Radio_Data_System

Grüße Uwe


Go Up