Forum: Mikrocontroller und Digitale Elektronik Zeitsignal mit/für den Arduino erzeugen


von Tom_H (Gast)


Lesenswert?

Hallo Elektroniker,

ich bin ein relativer Anfänger im Bereich der Elektronik und der 
Mikrocontroller.

Was ist mein Projekt?
Ich habe mir aus einem alten Computernetzteil ein Versorungsnetzteil für 
Experimente gebaut. Nun möchte ich, als mein nächstes Projekt, ein 
Steuerelement dazu bauen, mit welchem ich Dinge, wie z.B. einen Timer, 
der nach einer bestimmten Zeit ein Relais öffnen kann basteln. Wichtiges 
Herzstück soll dabei ein Arduino sein.

Grundsätzlich habe ich dazu zwei Fragen:

1. Lässt sich mit dem Arduino eine relativ präzise Uhr programmieren, 
welche man über lange Zeit hinweg nicht korrigieren muss?

2. (nur wenn die erste Frage mit "Nein" beantwortet werden muss) Wie 
kann ich ein solches Zeitgeberelement eventuell selber bauen bzw. gibt 
es dazu entsprechend einfache Lösungen, die z.B. ein sekündliches Signal 
geben.

Ich danke schon mal für Antworten. Wenn es Kritik an meiner Frage gibt, 
dann bitte konstruktiv!

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Tom_H schrieb:
> 1. Lässt sich mit dem Arduino eine relativ präzise Uhr programmieren,
> welche man über lange Zeit hinweg nicht korrigieren muss?

 Wenn du unter 'lange Zeit' mehr als 24 Stunden verstehst, dann ist
 die Antwort 'NEIN'

> 2. (nur wenn die erste Frage mit "Nein" beantwortet werden muss) Wie
> kann ich ein solches Zeitgeberelement eventuell selber bauen bzw. gibt
> es dazu entsprechend einfache Lösungen, die z.B. ein sekündliches Signal
> geben.

 Fertiges Modul kaufen mit DS3231 als RTC z.B. so was:
 http://www.aliexpress.com/item/2pcs-lot-DS3231-AT24C32-IIC-Module-Precision-Clock-Module-DS3231SN-for-Arduino-FZ0319-Memory-module-Free/1499675220.html

von Falk B. (falk)


Lesenswert?

@ Tom_H (Gast)

>Ich habe mir aus einem alten Computernetzteil ein Versorungsnetzteil für
>Experimente gebaut.

Das ist keine gute Idee. So ein Netzteil liefert Dutzende Ampere und hat 
keine einstellbare Strombegrenzung. Im Fehlerfall raucht dir deine 
Schaltung in 0,nix ab. Kauf dir für wenig Geld ein einstellbares 
Labornetzteil, selbst wenn es nur 1 Kanal hat. Die Ultra-Sparvariante 
heißt 7805, der macht wenigstens bei ~1,5A dicht.

>1. Lässt sich mit dem Arduino eine relativ präzise Uhr programmieren,
>welche man über lange Zeit hinweg nicht korrigieren muss?

Ja, denn der hat einen Quarz.

AVR - Die genaue Sekunde / RTC

von Falk B. (falk)


Lesenswert?

@Marc Vesely (Firma: Vescomp) (logarithmus)

>> 1. Lässt sich mit dem Arduino eine relativ präzise Uhr programmieren,
>> welche man über lange Zeit hinweg nicht korrigieren muss?

> Wenn du unter 'lange Zeit' mehr als 24 Stunden verstehst, dann ist
> die Antwort 'NEIN'

Schon wieder falsch. Naja, wir wissen ja, von wem die "Expertentips" 
kommen.

von Harald W. (wilhelms)


Lesenswert?

Tom_H schrieb:

> 1. Lässt sich mit dem Arduino eine relativ präzise Uhr programmieren,
> welche man über lange Zeit hinweg nicht korrigieren muss?

Aber natürlich. Wenn Du ein Rubidium-Normal als Frequenzgeber
anschliesst. :-)

von Jürgen S. (jurs)


Lesenswert?

Tom_H schrieb:
> Grundsätzlich habe ich dazu zwei Fragen:
>
> 1. Lässt sich mit dem Arduino eine relativ präzise Uhr programmieren,
> welche man über lange Zeit hinweg nicht korrigieren muss?

Kommt drauf an, was Du unter Deinen Wischiwaschi Begriffen verstehst.

Arduino-Boards gibt es einerseits mit ganz unterschiedlichen Taktgebern, 
z.B.:

16 MHz "keramischer Resonator: Relative Genauigkeit ca. 1s in 4 Minuten.

Oder 16 MHz "Schwingquarz: Relative Genauigkeit ca. 1s in 5 Stunden.

Je nach Anforderungen kann man da für "relative Zeitmessung" im 
Verhältnis zu einem Startzeitpunkt schon etwas machen.

Für absolute Zeitmessungen über längere Zeiträume bietet sich ein 
externer Taktgeber an, z.B. ein DS3231 Modul mit Backup-Stützbatterie. 
Gangabweichung damit ca. 64 Sekunden pro Jahr.

: Bearbeitet durch User
von Sven D. (Gast)


Lesenswert?

Falk B. schrieb:
> Ja, denn der hat einen Quarz.

Das stimmt zwar, nutzt dem TO aber nicht viel.

Beim Arduino Uno taktet der Quarz den Mikroporzessor für die USB 
Kommunikation. Der eigentliche genutzte Mikroprozessor wird mit einem 
Resonator getaktet. Das gleiche gilt für den Mega und den Nano. Beim 
Arduino 101 mit dem Intel Curie scheint die Sache ohne externen 
Taktgeber zu laufen. Der Zero hat einen Quarzoszillator an Bord, weil 
hier der ATMega32U4 auch gleich die USB Kommunikation macht.



Falk B. schrieb:
> Schon wieder falsch. Naja, wir wissen ja, von wem die "Expertentips"
> kommen.

Jaja

von The D. (thedaz)


Lesenswert?

Sven D. schrieb:
>
> Beim Arduino Uno taktet der Quarz den Mikroporzessor für die USB
> Kommunikation. Der eigentliche genutzte Mikroprozessor wird mit einem
> Resonator getaktet. Das gleiche gilt für den Mega und den Nano.
> ...

Das ist in Bezug auf den Nano falsch. Der Nano hat einen CH340 bzw in 
seltenen Fällen den FTDL USB->seriell Wandler, das USB interface selbst 
kann aber für keine anderen Zwecke benutzt werden. Der 16 bzw. 8MHz 
Quarz des Nanos taktet den Prozessor und nicht das USB interface.

: Bearbeitet durch User
von Anonymous User (Gast)


Lesenswert?

Sven D. schrieb:
> Beim Arduino Uno taktet der Quarz den Mikroporzessor für die USB
> Kommunikation. Der eigentliche genutzte Mikroprozessor wird mit einem
> Resonator getaktet.

Ich weiß nicht wie das bei den China-Clones ist, aber der originale 
Arduino Uno hat zwei Quarze auf dem Board. Einen für den USB-Chip und 
einen für den ATMega328.

von Harald W. (wilhelms)


Lesenswert?

Marc V. schrieb im Beitrag #4567333:
> Anonymous User schrieb im Beitrag #4567312:
>> Nun, Falk und Harald sind hier im Forum durchaus für ihre Fachkompetenz
>> bekannt. Du dagegen wohl eher nicht. Marc Vesely? Nie gehört.
>
>  Wer hat was über Harald geschrieben ? Nie gehört.
>  Oder sind Falk und Harald die selbe (gespaltene) Persönlichkeit ?

Unwahrscheinlich. :-)

von M. K. (sylaina)


Lesenswert?

The D. schrieb:
> Der 16 bzw. 8MHz
> Quarz des Nanos taktet den Prozessor und nicht das USB interface.

Ist aber kein Quarz sondern ein Resonator, da hat der Sven schon recht 
;)

von Sven D. (Gast)


Lesenswert?

Das stimmt. Ich hab mich auch verdrückt ausgekehrt. Statt "Das gleiche 
gilt für den Mega und den Nano." hätte ich schreiben sollen das Mega und 
Nano Resonatoren nutzen. Wobei letzteres ja von Dir widerlegt wurde.

von Sven D. (Gast)


Lesenswert?

Anonymous User schrieb:
> Ich weiß nicht wie das bei den China-Clones ist, aber der originale
> Arduino Uno hat zwei Quarze auf dem Board. Einen für den USB-Chip und
> einen für den ATMega328.

Du darfst gern einen Blick in den Schaltplan des UNO werfen.

von Sven D. (Gast)


Lesenswert?

Genau genommen war die erste Antwort in diesem Thread die einzig 
korrekte. Denn bei dieser Anzahl an Arduino Boards durchzublicken, ist 
für den Anfänger sicher ein Unding.

von The D. (thedaz)


Lesenswert?

Das gilt nicht nur für Arduino sondern generell für alle Mikrocontroller 
boards, insbesondere bei den vielen ARM boards. Da hilft nur das Studium 
der Schaltpläne.

von Anonymous User (Gast)


Lesenswert?

Sven D. schrieb:
> Du darfst gern einen Blick in den Schaltplan des UNO werfen.

http://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

Da sind Q1 und Q2 beide mit 16MHz angegeben. Von Resonator steht da 
nichts. Gibts da vielleicht mehrere Versionen vom Uno?

von Sven D. (Gast)


Lesenswert?

Das ist der Schaltplan der auf der Produktseite des UNO verlinkt ist 
http://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf und 
da ist ein Resonator am werkeln.

von The D. (thedaz)


Lesenswert?

Nach dieser Logik werkelt im Nano ein Quartz

von M. K. (sylaina)


Lesenswert?

Anonymous User schrieb:
> Von Resonator steht da
> nichts.

Du weist aber schon wie das Schaltsymbol eines Resonators ausschaut?
In den Zeichnungen steht aber auch die Bezeichnung drunter: 
CSTCE16M0V53-R0 und mittels Google findet man dann raus dass das ein 
SMD-Keramik-Resonator ist ;)

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Tom_H schrieb:
> 1. Lässt sich mit dem Arduino eine relativ präzise Uhr programmieren,
> welche man über lange Zeit hinweg nicht korrigieren muss?

jain

Beitrag "Die genaue Sekunde / RTC"

welche Genauigkeit, bei welcher Temperatur?

man kann alles verbessern und auf die Spitze treiben, auch deswegen hat 
die DS3231 einen Temp. Sensor auf dem Chip um auch noch Temperatur 
Drifts einzubeziehen.

Ich würde ja den Arduino mit einem geheizten Quarzoszi betreiben, die 
Temp. schön auf 60°C gehalten, ist relativ leicht und erschlägt damit 
alle üblichen Raumtemperaturen von 15-40°C

: Bearbeitet durch User
von Anonymous User (Gast)


Lesenswert?

M. K. schrieb:
> In den Zeichnungen steht aber auch die Bezeichnung drunter:
> CSTCE16M0V53-R0

Nicht in dem Schaltplan, den ich weiter oben verlinkt habe. Scheint aber 
in der Tat eine ältere Version zu sein.

von Wolfgang (Gast)


Lesenswert?

Anonymous User schrieb:
> Nicht in dem Schaltplan, den ich weiter oben verlinkt habe.

Das könnte wohl an dem Unterschied zwischen dem Urvater aller Arduino 
Unos und der Rev3 liegen ;-)

von Sebastian S. (amateur)


Lesenswert?

Ich schätze mal, Tom_H sollte mal das Geheimnis lüften, was er denn
unter einer
      "relativ präzisen Uhr"
versteht.

Für normale Anwendungen reicht wohl die Standartausstattung aus. Aber 
schon bei einer "echten" Uhr, die über ein paar Wochen unbeaufsichtigt 
laufen soll, braucht’s etwas mehr.

Leider ist Zeit etwas, was genau, oder auch ungenau, definiert werden 
muss.

Sonst wird das hier nichts!

: Bearbeitet durch User
von M. K. (sylaina)


Lesenswert?

Anonymous User schrieb:
> M. K. schrieb:
>> In den Zeichnungen steht aber auch die Bezeichnung drunter:
>> CSTCE16M0V53-R0
>
> Nicht in dem Schaltplan, den ich weiter oben verlinkt habe. Scheint aber
> in der Tat eine ältere Version zu sein.

Ja, da steht die Bezeichnung nicht drin, dennoch ist es das 
Schaltzeichen eines Resonators und nicht die eines Quarzes direkt am µC, 
sogar an beiden Megas. OK, unten sind dann zwei Quarze, da gabs wohl 
optionale Bestückungen.

: Bearbeitet durch User
von Tom_H (Gast)


Lesenswert?

Erst einmal ein Danke für die vielen Antworten.

Sebastian S. schrieb:
> Ich schätze mal, Tom_H sollte mal das Geheimnis lüften, was er denn
> unter einer
>       "relativ präzisen Uhr"
> versteht.

Die Abweichung ist gewiss ein sehr relativer Begriff. Ich möchte im 
Prinzip eine Uhr haben, die auf lange Zeit (also z.B. ein Jahr) nur eine 
Abweichung von ein bis zwei Minuten, oder bestenfalls noch weniger, 
aufweist.

Ich habe mir nun folgendes Fazit überlegt:
Da nun doch der Großteil der Antworten für eine Arduino-interne Uhr eher 
als ungeeignet beantwortet wurde, habe ich mich nun für das RTC-Modul 
entschieden. Es beinhaltet im Prinzip genau das, was ich für mein 
Steuerelement benötige und kommt zudem mit einer verhälnismäßig 
einfachen Bedienung und einem geringen Preis daher.

von M. K. (sylaina)


Lesenswert?

Tom_H schrieb:
> Die Abweichung ist gewiss ein sehr relativer Begriff. Ich möchte im
> Prinzip eine Uhr haben, die auf lange Zeit (also z.B. ein Jahr) nur eine
> Abweichung von ein bis zwei Minuten, oder bestenfalls noch weniger,
> aufweist.

DCF77-Modul benutzen? Dann brauchst du dir auch keine Gedanken um die 
Zeitumstellung zu machen ;)
Bei Conrad bekommt man formschicke Module dafür.

von Harald W. (wilhelms)


Lesenswert?

Tom_H schrieb:

> Da nun doch der Großteil der Antworten für eine Arduino-interne Uhr eher
> als ungeeignet beantwortet wurde, habe ich mich nun für das RTC-Modul
> entschieden. Es beinhaltet im Prinzip genau das, was ich für mein
> Steuerelement benötige und kommt zudem mit einer verhälnismäßig
> einfachen Bedienung und einem geringen Preis daher.

Wenn es aber eine Abweichung von <1min pro Jahr haben soll,
muss das aber schon ein gutes und kein billiges sein. Genaueres
dazu sollte im jeweiligen Datenblatt stehen.

von Tom_H (Gast)


Lesenswert?

M. K. schrieb:
> DCF77-Modul benutzen? Dann brauchst du dir auch keine Gedanken um die
> Zeitumstellung zu machen ;)

Ich habe mir auch schon Gedanken gemacht, ob das eine Möglichkeit wäre. 
Jedoch habe ich mich dagegen entschieden, da das Programmieren von 
solchen Dingen für mich als Anfänger sozusagen eine riesige Hürde wäre.

Harald W. schrieb:
> Wenn es aber eine Abweichung von <1min pro Jahr haben soll,
> muss das aber schon ein gutes und kein billiges sein. Genaueres
> dazu sollte im jeweiligen Datenblatt stehen.

Das Modul ds3231 hat eine Abweichung von 2 ppm, das schien mir ziemlich 
genau.

von Ralf D. (doeblitz)


Lesenswert?

Tom_H schrieb:
[...]
> Harald W. schrieb:
>> Wenn es aber eine Abweichung von <1min pro Jahr haben soll,
>> muss das aber schon ein gutes und kein billiges sein. Genaueres
>> dazu sollte im jeweiligen Datenblatt stehen.
>
> Das Modul ds3231 hat eine Abweichung von 2 ppm, das schien mir ziemlich
> genau.

Ein Jahr hat gut 525000 Minuten, bei 2 ppm bist du damit schon über 1 
Minute maximaler Abweichung.

von M. K. (sylaina)


Lesenswert?

Ralf D. schrieb:
> Ein Jahr hat gut 525000 Minuten, bei 2 ppm bist du damit schon über 1
> Minute maximaler Abweichung.

Reicht ihm ja, besser wäre ja nur "schöner":

Tom_H schrieb:
> Ich möchte im
> Prinzip eine Uhr haben, die auf lange Zeit (also z.B. ein Jahr) nur eine
> Abweichung von ein bis zwei Minuten, oder bestenfalls noch weniger,
> aufweist.

;)

von Chr. M. (snowfly)


Lesenswert?

Wenn du es noch genauer willst dann kannst du auch NTP benutzen.
Mit einem ESP8266 und WLAN-Zugang braucht es nicht mal zusätzliche 
Hardware.

Programmieren musst du das auch nicht selbst sondern du bindest einfach 
die Library ein und kannst einfach die Zeit abfragen
(das gilt übrigens auch für DCF77 und DS3231)
Beispielprogramme gibt es zuhauf bzw. die sind bei der Lib schon dabei.

von Wolfgang (Gast)


Lesenswert?

Für ein paar Euro gibt es auch GPS-Module, die einem weltweit die Zeit 
zur Verfügung stellen, wenn man das Ding nicht gerade unter Tage 
betreiben möchte. Alle Woche mal befragt, hält sich der Einfluss auf die 
Energiebilanz in engen Grenzen und man kann den Stand der RTC 
korrigieren.

von Sebastian S. (amateur)


Lesenswert?

Wenn Du ein fertiges System beschaffst, sollte man davon ausgehen 
können, dass es auch die aufgedruckten Daten einhält.
Aber meist nur in einem sehr engen Temperaturbereich. Also draußen ist 
nun mal draußen.

Noch ein Wort zur RTC. Meist sind das nichts anderes als intelligente, 
leicht beeinflussbare Zähler. Die Genauigkeit hängt hier meist von dem 
externen Quarz ab. Und da gibt es sehr preiswerte Typen...;-)

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.