Forum: Mikrocontroller und Digitale Elektronik Schaltuhr bauen


von atMehl (Gast)


Lesenswert?

Hallo Leute!

Angenommen, man möchte mit einem AVR-Controller (beispielsweise ATmega8 
oder ATmega16) eine Schaltuhr bauen, welche pro Tag (!) nur etwa 1 
Minute den angeschlossenen Verbraucher eingeschaltet und anschließend 
wieder ausgeschaltet...wie bewerkstelligt man sowas mit einem 
Mikrocontroller?

Die Frage ist einfach, wie man eine (für den Controller) solche 
"Ewigkeit" für den Controller realisiert?

Die erste Überlegung ging natürlich daran, in einer Variablen die 
Overflows eines Timers zu zählen ;-)
Dass durch diese Art aber bereits schon das "warten" von wenigen 
Sekunden vom Compiler wegoptimiert wird, weiß ich auch.


Gruß
von Karl H. (kbuchegg)


Lesenswert?

atMehl schrieb:

> Minute den angeschlossenen Verbraucher eingeschaltet und anschließend
> wieder ausgeschaltet...wie bewerkstelligt man sowas mit einem
> Mikrocontroller?

Genauso wie man das auch mit einer Uhr macht:
Sekunden zählen.
Nach 60 Sekunden ist 1 Minute um.
Nach 60 Minuten 1 Stunde.
Und nach 24 Stunden ist ein Tag um.

> Die erste Überlegung ging natürlich daran, in einer Variablen die
> Overflows eines Timers zu zählen ;-)
> Dass durch diese Art aber bereits schon das "warten" von wenigen
> Sekunden vom Compiler wegoptimiert wird, weiß ich auch.

Warum soll das wegoptimiert werden?
Der Compiler kann ja nicht einfach eigenmächtig Berechnungen, die 
benötigt werden rausschmeissen.
von Der Neue (Gast)


Lesenswert?

Vielleicht reicht es da auch den uC nur mit einem Uhrenquarz zu 
betreiben anstatt im MHz-Bereich?
Hätte auch Stromsparende Vorteile...
von Der Neue (Gast)


Lesenswert?

Wobei dann wahrscheinlich der Fehler größer wird, oder?
von Cyblord -. (cyblord)


Lesenswert?

Muss jetzt schon wieder mal vorgerechnet werden, wieviele Jahrmillionen 
man braucht bis eine uint64 Variable überläuft wenn man sie jede Sekunde 
inkrementiert? Das hatten wir doch schonmal.

Nein es wird nichts wegoptimiert, nein du wirst es nicht mehr erleben, 
nein die Sonne wohl auch nicht.

>Wobei dann wahrscheinlich der Fehler größer wird, oder?
Und WARUM zur Hölle sollte das so sein? Die Dinger nennt man 
"Uhrenquarz" denk mal drüber nach...

gruß cyblord
von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Warum hier im verdammten Forum immer so verdammt übel rumgeflucht wird, 
frage ich mich manchmal, verdammt ;)
von Cyblord -. (cyblord)


Lesenswert?

Nils S. schrieb:
> Warum hier im verdammten Forum immer so verdammt übel rumgeflucht wird,
> frage ich mich manchmal, verdammt ;)

Evt. weil die Fragen so doof sind, zum Deubel noch mal!
von Der Neue (Gast)


Lesenswert?

cyblord ---- schrieb:
> Und WARUM zur Hölle sollte das so sein? Die Dinger nennt man
> "Uhrenquarz" denk mal drüber nach...

Weil wenn man nur ein Digit an Fehler hat 1/32kHz eben größer ist als 
1/16MHz! Nebenbei ist die Auflösung geringer, also macht man automatisch 
einen Fehler ;-)
von Rene Z. (renezimmermann)


Lesenswert?

Na dann sollte man mal klären wie groß die Abweichung sein darf.

Gruß
von MaWin (Gast)


Lesenswert?

> wie bewerkstelligt man sowas mit einem Mikrocontroller?

In dem man ihn programmiert.

Wenn man damit Schwierigkeiten hat, das erst erlernen muß und noch nicht 
mal die Grundkonzepte versteht, und die Zeiten nicht ändern muß, dann 
kann man das auch mit einem fertigem ICs aufbauen:

Der CD4536 erlaubt es, den Takt mit einer 
Widerstand/Kondensator-Kombination vorzugeben und die Impulszeitdauer 
mit einem Kondensator zu bestimmen, also reicht ein einzelner IC, so 
lange es nicht quatzstabil sein muß denn 194,18 Hz Quartze sind schwer 
beschaffbar :-) eher noch synchronisiert man den Chip an 50Hz 
Netzfrequenz für 23:18:06
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.