Forum: Mikrocontroller und Digitale Elektronik PC Uhrzeit mit Mikrocontroller auslesen?


von H. G. (ledi)


Lesenswert?

Hallo!

Ich möchte die Uhrzeit am PC auslesen und mit einem Mikrocontroller 
auswerten um bestimmte Dinge zu steuern.

Hat jemand eine Idee, wie man die Uhrzeit auslesen kann?

Danke!

von Peter II (Gast)


Lesenswert?

H. G. schrieb:
> Hat jemand eine Idee, wie man die Uhrzeit auslesen kann?

cat %time% > COM1

von Peter II (Gast)


Lesenswert?

sorry meinte

echo %time% > COM1

von *Gst* (Gast)


Lesenswert?

Peter II schrieb:
> cat %time% > COM1

Das ist ein Beispiel für Linux...

von *Gst* (Gast)


Lesenswert?

Peter II schrieb:
> echo %time% > COM1

Das ein Beispiel für Windows

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

H. G. schrieb:
> Hat jemand eine Idee, wie man die Uhrzeit auslesen kann?
Peter II schrieb:
> echo %time% > COM1
Die Frage war wie man sie von aussen auslesen kann. Nicht wie man sie 
vom PC aus ausgeben kann...

Allerdings ist das doch sowieso Unsinn, denn leichter lässt man eine Uhr 
auf dem uC laufen. Eine Schaltuhr funktioniert ja auch ganz ohne 
irgendeine Zeit irgendwo auszulesen? Oder habe ich das spezielle 
Problem nicht erkannt?

von H. G. (ledi)


Lesenswert?

Da ich kein DCF77 Signal empfangen kann, bräuchte ich eine möglichst 
genaue Uhrzeit.

D.h: +- 1Min. pro Jahr.

Da dachte ich, ich nutze die PC-Zeit und frage die irgendwie mit einem 
UC ab?

Nur weis ich nicht, wie das geht.

von Peter II (Gast)


Lesenswert?

H. G. schrieb:
> Nur weis ich nicht, wie das geht.

steht doch schon da, lass den PC einfach die Urzeit über die Serielle 
schnittstelle senden (script steht schon oben) dann kannst du sie am µC 
einlesen. Oder gleich ein RTC Modul verwenden, diese genauigkeit sollte 
sie doch schaffen.

von H. G. (ledi)


Lesenswert?

> steht doch schon da, lass den PC einfach die Urzeit über die Serielle
> schnittstelle senden (script steht schon oben) dann kannst du sie am µC
> einlesen.

OK! Das sollte funktionieren.
Wie sieht dann das Protokoll aus, welches ich über die serielle erhalte?

von Karl H. (kbuchegg)


Lesenswert?

H. G. schrieb:

> Da dachte ich, ich nutze die PC-Zeit und frage die irgendwie mit einem
> UC ab?

Du kannst sie nicht einfach so von aussen abfragen.
Wie immer gilt: Im PC muss ein Programm (Service) laufen, welches darauf 
wartet, dass von aussen wer eine Anfrage stellt und dann Auskunft über 
das Gewünschte gibt (nachdem das Programm möglicherweise geprüft hat, ob 
der Fragesteller überhaupt berechtigt ist, eine Antwort zu bekommen)

von Karl H. (kbuchegg)


Lesenswert?

H. G. schrieb:
>> steht doch schon da, lass den PC einfach die Urzeit über die Serielle
>> schnittstelle senden (script steht schon oben) dann kannst du sie am µC
>> einlesen.
>
> OK! Das sollte funktionieren.
> Wie sieht dann das Protokoll aus, welches ich über die serielle erhalte?

Das legst DU fest.
Die Serielle ist nur der Übertragungskanal, wie ein Telefon. In welcher 
Form dann die Zeitauskunft die Zeit übermittelt, legst du fest, weil du 
die Zeitauskunft programmieren musst, die die Auskunft liefert.

von H. G. (ledi)


Lesenswert?

Wenn mein PC-Programm z.B. 1xpro Min.

> echo %time% > COM1

durchführt, dann erhalte ich doch ein Signal mit der Information der 
Zeit.
Und dieses Protokoll müsste ich doch kennen, damit ich damit was 
anfangen kann.

Oder bin ich da jetzt auf dem Holzweg?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

H. G. schrieb:
> D.h: +- 1Min. pro Jahr.
> Da dachte ich, ich nutze die PC-Zeit
So eine PC-Uhr ist aber nicht ausreichend genau, wenn sie nicht ab&an 
z.B. übers Internet synchronisiert wird.

Zur Betrachtung der nötigen Genauigkeit:
+-1 min/Jahr sind +-1min/525600min, und das mithin +-2ppm. Das muß schon 
ein recht stabiler Quarz sein...  :-o

von Karl H. (kbuchegg)


Lesenswert?

H. G. schrieb:
> Wenn mein PC-Programm z.B. 1xpro Min.
>
>> echo %time% > COM1
>
> durchführt, dann erhalte ich doch ein Signal mit der Information der
> Zeit.
> Und dieses Protokoll müsste ich doch kennen, damit ich damit was
> anfangen kann.

Wenn du das so machen willst, ist das ok.

Lass dir die Ausgabe halt nicht auf die Serielle umleiten, sondern 
direkt ausgeben, dann weißt du, wie das daherkommt.

echo %time%


Und wie willst du das jetzt alle 1 Minute laufen lassen?
1
Microsoft Windows [Version 6.0.6002]
2
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.
3
4
C:\Users\kbuchegg>echo %time%
5
12:32:16.91
6
7
C:\Users\kbuchegg>echo %time%
8
12:32:18.04
9
10
C:\Users\kbuchegg>echo %time%
11
12:32:19.85
12
13
C:\Users\kbuchegg>

von H. G. (ledi)


Lesenswert?

Internetanschluss ist vorhanden. Die Zeit übers Internet zu 
synchronisieren wäre also kein Problem.

von T.S. (Gast)


Lesenswert?


von H. G. (ledi)


Lesenswert?

> Und wie willst du das jetzt alle 1 Minute laufen lassen?

Ich dachte mir, ich schreibe ein kleines C#-Programm, welches einmal 
gestartet wird, im Hintergrund läuft und 1x pro Min. die Zeit an die 
serielle sendet.

von Karl H. (kbuchegg)


Lesenswert?

Langer Rede kurzer Sinn.
So wie es aussieht, bist du mit einer fertigen RTC besser bedient. Die 
kostet einen Pappenstiel, du stellst sie einmal ein und dann läuft sie 
von alleine.

: Wiederhergestellt durch User
von Karl H. (kbuchegg)


Lesenswert?

H. G. schrieb:
>> Und wie willst du das jetzt alle 1 Minute laufen lassen?
>
> Ich dachte mir, ich schreibe ein kleines C#-Programm, welches einmal
> gestartet wird, im Hintergrund läuft und 1x pro Min. die Zeit an die
> serielle sendet.

Also sind wir wieder dort, dass DU das Datenformat festlegst, mit dem 
dein C# Programm die aktuelle Uhrzeit auf der Seriellen ausgibt.

von H. G. (ledi)


Lesenswert?

Mit welcher Abweichung pro Jahr kann ich bei einer RTC rechnen?

von T.S. (Gast)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

H. G. schrieb:
> Mit welcher Abweichung pro Jahr kann ich bei einer RTC rechnen?

Genau die gleiche, die auch dein PC hat, wenn du ihn nicht regelmässig 
per Zeitserver synchronisieren lässt. Da ist ja schliesslich auch nichts 
anderes als eine RTC drinnen.

von T.S. (Gast)


Lesenswert?

...ok, ihr habt schon...alles klar.

von Purzel H. (hacky)


Lesenswert?

Was spricht dagegen, ein Datenblatt anzuschauen ? Schlussendlich kommt's 
auf den Quarz an. Ein billigst Uhrenquarz mit 32768Hz fuer 16cts an 
einem RTC bringt vielleicht 10ppm. Wenn man's besser haben will, und ein 
paar Euro hinlegt kommt man vielleicht auf 1ppm. Dann sollte man langsam 
die Umwelteinfluesse einberechnen. Was ist der Temperaturgang der 
Schaltung ?
0.1ppm ist noch zahlbar.

Ist die erforderte Genauigkeit ein ueblicher akademischer Furz ohne 
genauen Grund ?

von H. G. (ledi)


Lesenswert?

> Ist die erforderte Genauigkeit ein ueblicher akademischer Furz ohne
> genauen Grund ?

Es geht um eine Lichtsteuerung, wo die Uhrzeit eine Steueraufgabe 
übernimmt, die über Jahre recht genau sein soll.
D.h, das Licht sollte sich auch nach 5 Jahren um z.B. 23:00 ausschalten 
und nicht um 22:45 oder 23:15.

DCF77 kommt nicht in Frage, da kein Empfang.
PC und Internet ist vorhanden, daher die Idee mit der PC-Uhr.

von Martin K. (skiko)


Lesenswert?

> PC und Internet ist vorhanden, daher die Idee mit der PC-Uhr.

Und der PC läuft auch über Jahre hinweg durch? Wäre es dann nicht 
einfacher die Steuerung des Lichtes und die Schaltzeiten direkt vom PC 
aus zu machen und am Mikrocontroller nur Befehle wie "Licht ein" "Licht 
aus" zu Empfangen?

Ansonsten würde ich eine RTC verwenden und täglich die Zeit anpassen. 
Glaube kaum das du innerhalb eines Tages so große Abweichungen bekommst 
das du es merkst. Damit umgehst du auch Probleme wenn mal kurzfristig 
die Internetverbindung ausfällt oder der PC anderwertig Probleme macht.

Martin

von bingo (Gast)


Lesenswert?

µC mit ENC28J60 ...

von slow (Gast)


Lesenswert?

Das DIng läuft fünf jahre unbemannt, ohne Kontroller durch Dich?

Sowas glaub ich niemandem.

Nimm einfach eine Zeitschaltuhr aus dem Baumarkt, schau ab und an nach, 
ob die Uhrzeit noch stimmt. Und gut.

von Marko ⚠. (mos6502) Benutzerseite Flattr this


Lesenswert?

Nimm halt den DS32kHz ...

"Key Features

Accurate to ±4 Minutes/Year (-40°C to +85°C)
Accurate to ±1 Minute/Year (0°C to +40°C)"

von Chris (Gast)


Lesenswert?

Oder gleich eine RTC die einen integrierten Quarz hat. So etwas wie die 
DS3234. Die Genauigkeit ist so gut wie die vom DS32kHz.

von wer_hat_an_der_uhr_gedreht (Gast)


Lesenswert?

> Nimm einfach eine Zeitschaltuhr aus dem Baumarkt, schau ab und an nach,
> ob die Uhrzeit noch stimmt. Und gut.

ACK, Wiki meint dazu:

Die Netzfrequenz im europäischen Verbundnetz eignet sich wegen der 
geringen Abweichungen von der Nennfrequenz als Zeitgeber für Uhren. 
Trotz der geringen Abweichungen können sich dabei Fehler von einigen 
Sekunden pro Tag ergeben. Um den Zeitfehler gering zu halten wird die 
Netzzeitabweichung als Differenz zwischen Koordinierter Weltzeit und der 
auf Basis der Netzfrequenz ermittelten Zeit zentral[4] erfasst und 
korrigiert. Überschreitet die Netzzeitabweichung +/-20 Sekunden, dann 
wird die Nennfrequenz für die Frequenzregler bei vorauseilender Netzzeit 
um 10 mHz auf 49,990 Hz reduziert, bei nacheilender Netzzeit um 10 mHz 
auf 50,010 Hz erhöht[5]. Dadurch passt sich die Netzzeit langsam wieder 
an die Koordinierte Weltzeit an. Die Netzzeit stellt damit eine 
langfristig sehr genaue Zeitbasis mit kurzfristigen Schwankungen im 
Sekundenbereich dar.

von Peter II (Gast)


Lesenswert?

jetzt muss er nur noch dafür sorgen das 15Jahre lang der Strom vorhanden 
ist.

von Purzel H. (hacky)


Lesenswert?

Ich koennt sonst noch ein GPS an der seriellen Schnittstelle anbieten. 
Dieses Modul muesst man alle paar Monate mal einschalten und darauf 
synchronisieren.

von bingo (Gast)


Lesenswert?

Muss es denn unbedingt ein (Windows?-)PC sein, der da läuft, der frisst 
ja auch einiges an Strom über die Jahre?

Da wäre evtl. das Bifferboard, Beagleboard, gnublin, etc etc 
interessant, die brauchen sehr wenig Strom und laufen mit Linux.

von H. G. (ledi)


Lesenswert?

Die PCs sind sowiso vor Ort und laufen rund um die Uhr.
Aber ich werde eine RTC (TPS65950) verwenden und die compensation 
versuchen (swca024) die texas instruments vorschlägt.

von Chronos (Gast)


Lesenswert?

H. G. schrieb:
> Es geht um eine Lichtsteuerung, wo die Uhrzeit eine Steueraufgabe
> übernimmt, die über Jahre recht genau sein soll.
> D.h, das Licht sollte sich auch nach 5 Jahren um z.B. 23:00 ausschalten
> und nicht um 22:45 oder 23:15.

Musst du auch auf Sommer-/Winterzeit achten? Oder ist das egal.

Zur Frage mit dem Protokoll: du bekommst die Daten einfach als 
ASCII-Werte über die serielle Schnittstelle. Im Mikrocontroller müsstest 
du das einfach in eine Uhrzeit konvertieren. Da steckt kein komplexes 
Protokoll dahinter.

von Karl H. (kbuchegg)


Lesenswert?

H. G. schrieb:
> Die PCs sind sowiso vor Ort und laufen rund um die Uhr.

Wobei sich dann natürlich die Frage erhebt:
Wozu brauchst du dann überhaupt noch einen µC?

von Chris (Gast)


Lesenswert?

H. G. schrieb:
> Aber ich werde eine RTC (TPS65950) verwenden und die compensation
> versuchen (swca024) die texas instruments vorschlägt.

Ja nee, is klar :-)

TPS65950:
Integrated Power Management IC with 3 DC/DC's, 11 LDO's, Audio Codec, 
USB HS Transceiver

von bingo (Gast)


Lesenswert?

Maxim DS3231 und DS3234 sind schon temperaturkompensiert

von Harald (Gast)


Lesenswert?

H. G. schrieb:
>> Ist die erforderte Genauigkeit ein ueblicher akademischer Furz ohne
>> genauen Grund ?
>
> Es geht um eine Lichtsteuerung, wo die Uhrzeit eine Steueraufgabe
> übernimmt, die über Jahre recht genau sein soll.
> D.h, das Licht sollte sich auch nach 5 Jahren um z.B. 23:00 ausschalten
> und nicht um 22:45 oder 23:15.
>
> DCF77 kommt nicht in Frage, da kein Empfang.
> PC und Internet ist vorhanden, daher die Idee mit der PC-Uhr.

Warum kommt DCF nicht in Frage? Ich denke dabei nicht an eine 
Bastellösung mit einem  Wurst Empfangsmodul sondern an eine vernünftige 
Lösung. DCF funktioniert übrigens auch  im Keller!

von Ich (Gast)


Lesenswert?

Ich würde hier evtl. trotzdem eine DCF Variante anstreben.
Wenn der Empfang schlecht ist, könnte man doch ein DCF Modul mit
Auswertung und seriellen Sender irgendwo weiter weg positionieren.

Sonst das Pollin Net AVR ans LAN hängen, mit NTP syncen und ggf.
noch übers Netz steuern, Schaltuhrfunktion sollte noch nebenbei laufen.

von bingo (Gast)


Lesenswert?

Ethersex passt zum Pollin net-io und kann sowohl NTP als auch DCF77, was 
willst Du mehr? http://old.ethersex.de/index.php/Am_Puls_der_Zeit

von Mathias (Gast)


Lesenswert?

wer_hat_an_der_uhr_gedreht schrieb:
> Die Netzfrequenz im europäischen Verbundnetz eignet sich wegen der
> geringen Abweichungen von der Nennfrequenz als Zeitgeber für Uhren.

Und zwar besser als jede Quarzgetriggerte RTC.

H. G. schrieb:
> Die PCs sind sowiso vor Ort und laufen rund um die Uhr.

Auch bei einem Systemfehler, wenn das System neu gestartet werden muss?

Wo läuft die Uhr überhaupt? In einem 20 Meter tiefen Stahlbetonbunker?

von Der Weise (Gast)


Lesenswert?

Mathias schrieb:
> Wo läuft die Uhr überhaupt? In einem 20 Meter tiefen Stahlbetonbunker?
Im PC, direkt am Netzteil.
> Die PCs sind sowiso vor Ort und laufen rund um die Uhr.
Da mecker noch jemand über Energieverschwendung und Atomkraft...

von Klaus D. (kolisson)


Lesenswert?

DS3232 ?

zusätzlich ne Software auf PC die per Windowas Timer immer mal
die Frage herausschickt "Willst du Uhrzeit ?"
Wenn uC dann "ja" sagt kann die Systime geschickt werden.

k.

von citb (Gast)


Lesenswert?

Trotzdem, wenn der (oder die) PC sowieso laeuft, dann kann der das 
bisschen Licht auch noch steuern.

citb

von Coder (Gast)


Lesenswert?

Wenn der uC sonst nichts zu tun hat, Uhrenquarz als Taktquelle und eine 
Batterie. Mit dem PC die Zeit sync.

von Stephan W. (stipo)


Lesenswert?

In meinen Augen sehe ich ganz klar ein DS1307 mit Batterie oder Goldcap 
Puffer, gegen die allfälligen Stromausfälle und der PC sendet 1x am Tag 
dem µC die aktuelle Uhrzeit, welche er selbst zu dem Zeitpunkt gerade 
aus dem NTP gezogen hat. Sollte der PC schon keine gescheiten Daten vom 
NTP bekommen, ist das wohl auch nicht tragisch, da der RTC auch über 
Tage/Wochen nur geringe abweichungen erzeugt.

MFG
Stephan

von bingo (Gast)


Lesenswert?

Wenn es eine gelegentliche Synchronisierung gibt, braucht man keinen 
zusätzlichen RTC-IC. Das kann der µC und ein Uhrenquarz auch so.

von Stephan W. (stipo)


Lesenswert?

bingo schrieb:
> Wenn es eine gelegentliche Synchronisierung gibt, braucht man keinen
> zusätzlichen RTC-IC. Das kann der µC und ein Uhrenquarz auch so.

Ja schon. Aber kann auch ein µC die Gangreserve über Tage sicherstellen, 
wenn mal der Strom weg sein sollte, ohne das der dann die neue aktuelle 
Zeit bekommen muss.

Ein RTC hat dafür ja eben die Backup Batterie. Ein µC macht in der Regel 
ja auch anderes als nur die Zeit verwalten. Bräuchte dann ja unter 
umständen auch eine Lösung, das die externe Hardware weg geschalten 
wird, um den Stromverbrauch zu minimieren, das der akkupuffer die Zeit 
des Stromausfall wieder puffern kann.

Ich sehe da einen RTC als die einfachere Lösung.

von ist da (Gast)


Lesenswert?

Wenn der Strom vom Computer weg ist, dann braucht er auch wohl keine 
Beleuchtung schalten ...

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

bei seinen Anforderungen hat er doch längst alles mit 
Notstromversorgungen abgesichert - wie sollen denn sonst PCs 5 Jahre 
lang wartungsfrei und unbedient laufen?

Natürlich liefert Microsoft brav während der ganzen Jahre die nötigen 
Updates, die auch niemals zu Rückfragen oder anderen Problemen führen...

Gruss Reinhard

von Klaus D. (kolisson)


Lesenswert?

so ein Marsrover muss all das können!
.. es ist also nicht abwegig.

k.

von Der Weise (Gast)


Lesenswert?

Der hat aber keinen PC mit Windows dabei. Dafür wollen die nämlich nicht 
die wertvolle Nuklearbatterie-Energie verheizen...

von T.S. (Gast)


Lesenswert?

Hi,

es wurde üebrhaupt nicht auf den Vorschlag der Netzzeit eingegangen.

RTC musst auch erstmal besorgen, dann vielleicht eine Platine machen 
wegen des Gehäuses, Ansteuerung etc...
DCF muss für guten Empfang gesorgt werden...
PC Zeit, muss vom PC zum uc, PC muss immer laufen über Jahre...etc.

Einfach die 50Hz Netzfrequenz zählen, Uhr programmieren, ist eine gute 
Lösung und vor allem günstig und für diesen Fall die einfachste. Sie 
benötigt ein Minimum an Programmieraufwand und Hardwarekosten. Sie ist 
sehr stromsparend.

Naja, muss ja jeder selber wissen.

T.S:

von Santa Claus (Gast)


Lesenswert?

Was für ein Licht soll das überhaupt sein, das um 23:01 Uhr nicht mehr 
leuchten darf? Weihnachtsbaum im Vorgarten oder was? Leute Leute... ihr 
habt Probleme!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.