Forum: Mikrocontroller und Digitale Elektronik Timer, Wecker etc


von Niki Hammler (Gast)


Lesenswert?

Ich hab vor einiger Zeit mal die Frage gestellt wie man das am besten 
macht wenn man viel I/O Zeugs dran hat, also z.B. 3 Relais, n' paar 
Optokoppler unsw und man die z.B. wie bei einer Stereoanlage einen 
Wecker programmieren kann um bestimmte Sachen in einer gewissen Zeit 
schalten zu lassen.
Das Konzept mit dem internen Timer war mir immer irgendwie unsympathisch 
da alles top sein sollte, z.B. Zeit bis zu Abschalten von ein paar 
Tagen, mehrere Programmierungen, das Löschen von solchen etc.

Jetz bin ich auf eine neue Idee gekommen die - so denke ich - einfach zu 
realisieren wäre:
Ich nehme einen normalen RTC der mir immer die aktuelle Zeit sagt (die 
muss halt ggf auch vorher programmiert werden). Jetzt frage ich in der 
main Schleife einfach immer über irgendwelche I/O Pins die Zeit ab. Wenn 
ich jetzt programmiere dann nehme ich aktuelle Zeit + programmierte 
Zeit, es wird in eine Art Tabelle geschrieben zu welchem Zeitpunkt was 
geschehen soll. Dann schaut der uC ob für den jetzigen Zeitpunkt was zu 
tun ist. Wenn nein geht es halt in den nächsten Schleifendurchgang, wenn 
ja wird die Aktion ausgeführt und der Eintrag aus der Tabelle gelöscht.

Die Tabelle könnte sogar im EPROM gespeichert werden damit Programmieren 
auch beim Herausziehen des Steckers und vor allem bei einem ungewollten 
RESET nicht verloren gehen.

BTW: Der AT90S2333 hat eh n' EEPROM oder?

Gibts da einen RTC der relativ leicht anzusteuern ist und so wenig I/Os 
wie möglich braucht, da ich ein LCD auch noch anschliessen will?

Der I2C Bus ist eh seriell über nur 2 Leitungen oder? Gibt es vielleicht 
einen I2C RTC?

Ich könnte dann - komm ich grad drauf - wenn grad nichts auf dem LCD 
anzuzeigen ist die aktuelle Uhr anziegen.
Das Programmieren stell ich mir in Menü-Basis vor.
Ein bestimmter Knopf auf der Fernbedieung aktiviert das Menü, dann gibt 
es eine Taste "Neu" in der ich mittels einer Zahl das Gerät eingebe das 
geschaltet werden soll und dann z.B. das Timeout in 10-Minuten 
Schritten, nur so als Beispiel. Und währenddessen wird einem halt alles 
am Display angezeigt....


Findet ihr das mit dem externen RTC überhaupt eine gute Idee und wenn 
ja, was würde sich da eignen? Hat vielleicht schon jemand von euch sowas 
in der Art gemacht??

Vielen Dank im Vorraus!

Niki

von Holger Buss (Gast)


Lesenswert?

Hallo Niki!

Vielleicht kennst Du ja die AVR-Control-Platine von un serer Homepage:
http://www.mikrocontroller.com
Da ist schon fast alles drauf, was Du brauchst:
- Lcd
- Tastatur
- Relais und Treiber für 7 weirere Relais
- Infrarot-Empfänger
- Temperatursensor (Falls Du bei Frost 10min eher raus musst)
- AT90S8535 oder AT90S4434
- ...

Nur die I2C-Uhr fehlt. Aber der Stecker für I2C ist schon vorgesehen.

Gruss,
Holger

von Kurt Gilbert (Gast)


Lesenswert?

Hallo allerseits,

I2C-RTC=PCF8583, sogar mit 240 Byte freiem Ram drin, sollte optimal für 
eine Zeitschaltung sein, da lassen sich die Daten im RAM speichern.

MvG Kurt

von Peter (Gast)


Lesenswert?

Also ich weiss nicht. Schon wieder so ein Ding mit 32.768 Kilohertz 
Quarz. Dann kann man ja direkt via Zähler den Quarz des MC als Zeitbasis 
nehmen, so genau wie diese Dinger sind. Gibt es nichts in dieser 
Richtung mit einem 4.192 Mhz Quarz? Die sind nämlich wenigstens so 
ganggenau, dass sie auch das Prädikat "Uhr" verdienen.

Gruss,

Peter

von Kurt Gilbert (Gast)


Lesenswert?

Hallo Peter,

der PCF 8583 läßt sich ja auch abgleichen - die Ganggenauigkeit ist für 
einfache Schaltuhren, bei denen es nicht auf die 10tel Sekunde ankommt 
ausreichend.
Ein Vorteil ist der eingebaute Ram, in den 240 Byte RAM lassen sich 
prima die Schaltdaten speichern, das schont den AVR-EEPROM. Weiterhin 
lässt sich das Teil auch prima mit einem Akku puffern und läuft trotzdem 
weiter, auch bei Stromausfall. Willst Du den ganzen AVR akkugefuffert 
laufen lassen ist das schon stromintensiv für den Akku. Außerdem kann 
man den 8583 auch einen Interrupt erzeugen lassen z.B. einmal pro 
Sekunde. Im Interrupt lassen sich sämtliche Schalt- und Anzeigeaufgaben 
lösen- zwischendurch kann der AVR dann wieder schlafen - bis zum 
nächsten Interrupt. Das spart auch n paar mA.

Also ich bastel gerne mit dem 8583.

Gruß Kurt

von Tobias Wozniok (Gast)


Lesenswert?

Hi Kurt!

Ich programmiere mit Bascom AVR und möchte die "Schaltdaten" setzen.
Der Interrupt soll einmal am Tag ausgelöst werden, oder auch jeweils
nach 24h .... egal wie! Aber wie gebe ich dem PCF diese Info?

mfG - Tobias

von Dirk (Gast)


Lesenswert?

Hi,

anderes RTC IC DS1307.

@Tobias: Schau mal bei Kuehnels HP vorbei da ist ein Beispielsprg zum
PCF8583P. Das IC hat eine Alarmfunktion ich denke mal du meinst das.


Mfg Dirk

von Tobias Wozniok (Gast)


Lesenswert?

Hallo Dirk!
Ja, ich meine die Alarmfunktion.
Vielleicht bin ich zu blöd, aber ich finde dieses Beispiel auf
www.ckuehnel.ch nicht.
Könntest du mir da evtl noch weiterhelfen?

Mfg Tobias

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

hier das File. Ich bin auch gerade dabei das Ding bei Bascom
einzubinden fuer eine Designer Lampe. Falls du nen paar Sachen hast
kannst ja mal hier adden.

Mfg

Diek

von Dirk (Gast)


Lesenswert?

Hi,

bah sry Tobias. Die Alarmfunktion ist garnicht enthalten ... Sry

Mfg

Dirk

von Tobias Wozniok (Gast)


Lesenswert?

Tja, leider!! :-(
Falls da irgendwer etwas zu hat, bitte posten!!

bye

von Peter D. (peda)


Lesenswert?

Ich weiß ja nicht, wo Du wohnst, aber hier in Berlin habe ich mehrere
Selbstbauuhren nur mit Netzbetrieb laufen, ohne daß sie ausfallen.

Und wenns sehr sehr selten doch mal Stromausfälle gibt, sind die so
kurz, daß man bequem auch den ganzen MC mit einer Batterie puffern
kann.

D.h. ein MC als Uhr ist in meinen Augen aber sowas von Tip Top.


Dagegen sind RTCs fast nur mit NF-Quarzen zu kriegen.
Quarze mit höherer Frequenz sind aber prinzipbedingt auch stabiler.
Das trifft besonders im Hinblick auf Temperaturschwankungen zu.

Ein Uhrenprogramm z.B. mit einem 4MHz-Quarz wird deshalb immer
wesentlich konstanter sein, als ein RTC mit 32kHz.
Abgeglichen werden müssen beide, wobei man eine Softwareuhr bequem in
Software abgleichen kann.

Auch kann eine Softwareuhr bereits die Sommerzeitregel beinhalten und
ist trotzdem im Code wesentlich einfacher, da sämtliche
Protokollwandlungen zu einem externen Chip entfallen. D.h. die Zeit
liegt schon fix und fertig in den entsprechenden Registern als Sekund,
Minute, ..., Jahr vor.


In der Codesammlung findest Du eine Menge Beispiele von mir, z.B. auch
für den RTC DS1994 oder für den hochgenauen DCF-77.


Peter

von Peter (Gast)


Lesenswert?

Hallo

habe sowas mit DCF77 Uhr gebastelt. Schalte damit aber momentan nur ein
Relais, um damit meinen PC zu starten. Das ganze habe ich mit C für
WinAvr gemacht, war mein erstes Projekt in C. Wenn Interesse besteht
kann ich es hier zu Verfügung stellen...

Gruß

Peter

von A. Arndt (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

habe auch mal eine Platine mit dem 1307 aufgebaut, Vorteil ist hals
selbstständig aktivierende Stützbatterie, leider dafür kein Interrupt.

Gruss
A. Arndt

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.