Diese Uhr hatte zwar die Multifunktionsuhr zum Vorbild, wurde aber technisch völlig anders realisiert. Hier stand ein einfacher und preiswerter Aufbau im Vordergrund und ich denke, beides ist gelungen. In der
einfachsten Variante wird praktisch nur ein Mikrocontroller AT90S4434, AT90S8535 oder ATmega8535 als aktives Bauteil benötigt. Die Anzeige besteht hier aus 4 Stück 7-Segment-LEDs mit 56 mm Ziffernhöhe,
welche auch aus einigen Metern Entfernung sehr gut abgelesen werden können. Die Synchronisation erfolgt automatisch mit dem DCF77 oder HBG75 Zeitzeichen.
Letzte Bearbeitung: 14.10.2007
Die Schaltung ist relativ einfach aufgebaut. Alle 4 Anzeigeelemente werden über Vorwiderstände direkt vom Mikrocontroller angesteuert, da sie nur wenig Strom benötigen (4 mA pro Segment genügen).
Weil die Anzeigen intern aus 4 in Reihe geschalteten LEDs bestehen, reichen die vorhandenen 5V als Anodenspannung nicht aus. Hier ist eine zusätzliche Spannung von ca. 9,5V notwendig, die vom Spannungsregler UR2
erzeugt wird. Bei Dunkelheit wird diese Spannung durch den Controller über Tr1 auf ca. 6,5V heruntergeschaltet, wodurch die LEDs nur noch schwach leuchten, aber trotzdem noch gut erkennbar sind. Die Dezimalpunkte
der Anzeigen enthalten intern nur 2 LEDs, aus diesem Grund habe ich zum Ausgleich jeweils eine Z-Diode bei den Dezimalpunkten ergänzt. Ein größerer Widerstand würde zwar den gleichen Zweck
erfüllen, aber dann leuchten die Ziffern-Segmente und der Dezimalpunkt während der Nacht unterschiedlich hell.
Warnung: Diese Schaltung wurde für die angegebenen SA-23 Anzeigen optimiert, welche intern aus 4 in Reihe geschalteten LEDs bestehen. Ein Betrieb mit den größeren SA-40 ist
auch möglich, wenn man durch Verkleinern der Vorwiderstände den Segmentstrom erhöht. Auf keinen Fall dürfen kleinere Anzeigen mit Einzel-LEDs verwendet werden. In diesem Fall würden hohe
Ströme von der Display-Spannung über die LEDs in die Controllerausgänge fließen, welche den Controller und die LEDs beschädigen können!
Zu den Anschlüssen des Controllers: Die Portanschlüsse PD0-PD7 steuern die rechte Anzeigestelle inklusive des Dezimalpunktes an. PC0-PC6 sind für die nächste Stelle (zweite von rechts)
zuständig. Hier wird der Dezimalpunkt nicht gebraucht, deshalb kann PC7 für andere Zwecke verwendet werden und steuert hier den Temperatursensor IC2 zusammen mit PD0 und PD1. Normalerweise stört die
Doppelfunktion von PD0/PD1 den Anzeigebetrieb. Ich habe das aber so organisiert, dass die Abfrage des Temperatursensors nur während des Wechsels der Anzeige durchgeführt wird. In diesem Fall werden die
Störungen nicht wahrgenommen. Die nächste Anzeigestelle arbeitet wieder mit Dezimalpunkt und belegt deshalb den kompletten Port PB0-PB7. PB5-PB7 haben eine zusätzliche Funktion: Sie dienen zur
Programmierung des Controllers und sind aus diesem Grund auf den Steckverbinder K2 geführt. Über K2 kann der Controller bei Bedarf neu programmiert werden, wobei er nicht aus der Uhr ausgebaut werden muss. Die
Ansteuerung der linken Anzeigestelle weicht etwas von den anderen ab. Da hier nur die Ziffern 1, 2 und 3 dargestellt werden müssen, kann man die Ansteuerung wesentlich vereinfachen und die Segmente A, D und G
zusammenfassen. Somit genügen die 4 Port-Anschlüsse PA0-PA3.
Die 4 verbleibenden Anschlüsse PA4-PA7 haben folgende Funktion: PA4 überwacht den Taster, PA5 liest die Daten vom DCF77-Empfänger ein und PA6/PA7 sorgen für das Dimmen der Anzeige bei Dunkelheit. Die
Schaltung mit dem Fotowiderstand R2 sowie R3, R4 und C4 überwacht die Helligkeit im Raum und übergibt einen entsprechenden Spannungswert an PA7 des Controllers, welcher für diesen Zweck als
A/D-Wandler-Eingang arbeitet. Der Controller misst ständig die Spannung an diesem Eingang und schaltet bei Überscheitung des Schwellwertes von ca. 2,6V die Uhr auf Tag oder bei Unterschreitung des
Schwellwertes von ca. 2,4V auf Nacht. Gleichzeitig wird PA6 entsprechend gesetzt (Tag=L, Nacht=H) und schaltet dann über R5, Tr1 und R6 die Anzeigespannung auf 9,5V oder 6,5V. Während der Nacht wird
übrigens nicht nur die Anzeige gedimmt, sondern auch das Wechseln der Anzeige (Zeit, Datum und Temperatur) abgeschaltet und nur noch die Uhrzeit angezeigt.
Der Jumperblock JP1 wurde erst später ergänzt. Es hat sich nämlich herausgestellt, dass die Programmierung eines ATmega8535 in der Schaltung gar nicht oder nicht zuverlässig funktioniert,
während die ursprünglich verwendeten AT90S4434 oder AT90S8535 keine Probleme verursachen. Zur Lösung dieses Problems ist es erforderlich, die Verbindung von den ISP Anschlüssen des Controllers (Pin
6-8) zu den LED-Segmenten aufzutrennen und genau dafür ist JP1 gedacht. Im normalen Betrieb müssen hier 3 Jumper stecken und während der Programmierung müssen diese abgezogen werden, falls Probleme
dabei auftreten. Alternativ kann hier auch ein DIP Schalter verwendet werden.
Die beiden Keramik-Kondensatoren C12 und C13 sind optional. Sie werden nur dann benötigt, wenn der Temperatursensor an einem längeren Kabel angeschlossen ist und die Kommunikation nicht funktioniert. In diesem
Fall sollte man es zunächst mit einem Wert von 100p probieren und gegebenenfalls durch Versuche den optimalen Wert ermitteln. Mit den Kondensatoren lassen sich Entfernungen von bis zu 5m überbrücken,
allerdings ist dies abhängig vom Kabelmaterial.
Zur Stromversorgung: Hier kann ein einfaches Netzgerät verwendet werden, welches etwa 200 mA bei 12V liefert, z.B. ein handelsübliches 12V/300mA Steckernetzgerät. Dieses kann man oft auf 9V einstellen,
das spart Energie und die Ausgangsspannung ist immer noch ausreichend (ausprobieren).
Noch ein paar Hinweise zu den verwendeten Bauelementen:
D8 und D9 bilden den Doppelpunkt. Den richtigen Wert des Vorwiderstandes R39 muss man experimentell ermitteln. Er sollte so gewählt werden, dass die Helligkeit vom Doppelpunkt und der restlichen Anzeige
ungefähr gleich ist. Diese Schaltungsvariante hat allerdings einen kleinen Schönheitsfehler, wobei man diesen zum Teil mit dem Jumper JP2 korrigieren kann: Bei geschlossenem JP2 leuchten die Dezimalpunkte von
D3 und D5 immer gleichzeitig, was bei der Anzeige des Datums ok ist, bei der Temperatur jedoch nicht so schön aussieht. Öffnet man JP2, dann wird nur noch der Dezimalpunkt von D3 angesteuert. Die
Temperaturanzeige sieht so besser aus, aber das Datum leider nicht. Für JP1 und JP2 kann man übrigens einen 4-fachen Dip-Schalter einsetzen.
Für die Wohnraumuhr gibt es derzeit 3 verschiedene Platinenlayouts, die von freundlichen Bastler-Kollegen zur Verfügung gestellt wurden:
So sieht die Einstellung im AVR-Studio für den ATmega8535 aus.
So sieht die Einstellung in PonyProg für den ATmega8535 aus.
| Uhrzeit | ||||||
Tastendruck |
||||||
| Sekunden (gesamte Anzeige blinkt) |
Anzeige nach 5 Sekunden |
![]() |
Sekunden (Blinken hört auf) |
Tastendruck | ![]() |
Uhrzeit |
Tastendruck innerhalb5 Sekunden |
||||||
| Temperatur (Grad-Zeichen blinkt) |
Anzeige nach 5 Sekunden |
![]() |
Temperatur (Blinken hört auf) |
Tastendruck | ![]() |
Uhrzeit |
Tastendruck innerhalb5 Sekunden |
||||||
| aktuelles Anzeigeprogramm (Programmnummer blinkt) |
Anzeige nach 5 Sekunden |
![]() |
Uhrzeit | |||
Tastendruck innerhalb5 Sekunden |
||||||
| nächstes Anzeigeprogramm (Programmnummer blinkt) |
Anzeige nach 5 Sekunden |
![]() |
Uhrzeit (neues Programm wird gespeichert) |
|||
Tastendruck innerhalb5 Sekunden |
||||||
| nächstes Anzeigeprogramm (Programmnummer blinkt) usw. |
Anzeige nach 5 Sekunden |
![]() |
Uhrzeit (neues Programm wird gespeichert) |
| Uhrzeit | ||||
Taster mindestens 5Sekunden lang drücken |
||||
| Stunden-Eingabe (Stunden blinken) |
![]() |
mit Taster den gewünschten Stundenwert einstellen (nur kurz drücken) | ||
5 Sekunden warten |
||||
| Minuten-Eingabe (Minuten blinken) |
![]() |
mit Taster den gewünschten Minutenwert einstellen (nur kurz drücken) | ||
5 Sekunden warten |
||||
| Uhrzeit/Stopp (Uhr bleibt stehen) |
![]() |
Tastendruck startet die Uhr sekundengenau mit der angezeigten Zeit | ![]() |
Uhrzeit |
Die gesamte Elektronik der Uhr wurde auf einer Lochrasterplatine mit einer Größe von 255 x 125 mm untergebracht. Genau genommen sind es zwei Platinen, die ich zu einer verbunden habe, da ich keine einzelne
Platine in dieser Größe bekommen habe. Zur Verstärkung habe ich oben und unten eine kleine Winkelprofilschiene aus Aluminium zur Verstärkung angebracht. An dieser wird dann später auch das
Gehäuse angeschraubt.
Den Mittelteil der Platine füllen die großen Anzeigeelemente aus. Alle anderen Bauteile wurden um die Anzeigen herum platziert. Im oberen Teil wurde die Platine des DCF77-Empfängers und die Ferritantenne
angeordnet. Links oben befindet sich der ISP-Anschluss K2 für den Controller, darunter der Controller selbst und unter diesem die Fassung für den Temperatursensor (ist hier nicht bestückt). Die rechte
Seite ist komplett für die Stromversorgung reserviert, wobei UR2 mit einem flachen Kühlblech versehen wurde. Der untere Teil enthält das "Kleinzeug": Fotowiderstand, Trimmpoti,
LED-Vorwiderstände und UR1, welcher ohne Kühlung auskommt. Übrig bleiben jetzt noch der Taster und der Anschluss K1 für das Netzgerät, beides befindet sich rechts unten. Der Quarz wurde
übrigens unter dem Controller versteckt.
Ein Blick auf die Unterseite: Für die Verdrahtung der Bauteile habe ich unterschiedliche Drahtsorten verwendet: die stromführenden Leitungen sind mit einer Drahtstärke von 0,5 mm verlegt worden und
für alle Signalleitungen verwendete ich 0,3 mm Kupferlackdraht (auch Fädeldraht genannt). Die gesamte Verdrahtung ist relativ unkritisch, aber 2 Dinge sind zu beachten: Der Quarz und die beiden Kondensatoren
C1 und C2 sollten sich möglichst nah am Controller befinden und die 100 nF Stützkondensatoren sind direkt an IC1 und IC2 anzuordnen.
Und so sieht die fertige Uhr aus. Das volltransparente Design mag vielleicht nicht jedem gefallen, ich finde das aber sehr dekorativ. Außerdem hat es den Vorteil, dass das Licht ungehindert den Fotowiderstand im
Geräteinneren erreicht. Man kann sich die Uhr aber auch in einem schönen Holzgehäuse vorstellen.