Nachdem meine Freundin sich einen neuen Fernseher zugelegt hat, hat sie in diesem Zusammenhang auch ihrem Videorekorder abgebaut. Das Problem dabei: Der Videorekorder hatte so eine schöne LED-Uhr und jetzt fehlt irgendwie eine Uhr im Wohnzimmer. Meine Freundin hat auch Keine gefunden, die ihr gefallen hat, also hab ich eine gebastelt, die von ihr nach ihren Wünschen gestaltet wurde.
Sie hat ein grünes LED-Display mit etwa 8mm hohen Ziffern (evtl. mach ich irgendwann noch Bilder…). Das Problem am LED-Display ist, dass es viel Strom braucht, Batteriebetrieb fällt also flach. Deswegen ist auch der Programmcode nicht unbedingt auf Stromverbrauch optimiert.
Hinweise zum Code: Die Uhr ist als State-Machine ausgeführt, wobei das Display von Timer0 und die Uhrzeit selbst von Timer1 bestimmt wird. Beide arbeiten dabei im CTC-Mode, d.h. mit einer variablen Obergrenze die durch die Hardware automatisch zurückgesetzt wird. Nur die Einstellung der Uhrzeit erfolgt in der Hauptschleife. Hier sind im Moment 3 Geschwindigkeitsstufen vorgesehen: Stufe 1: Einzelminuten Stufe 2: 10er-Schritte nach 5 Einzelminuten Stufe 3: Stunden-Schritte nach 5 10er-Schritten
Der Taktgeber ist ein 16Mhz-Quarz, der aber auch problemlos durch einen langsameren ersetzt werden könnte, falls man eine Stromsparversion bauen möchte. Für die Stromversorgung muss ein billiges Schaltnetzteil von einem alten Gerät herhalten, die Spannung wird über einen 7805 stabilisiert. Da LED-Displays leider relativ „blöd“ von der Pinbelegung her sind, hab ich direkt an die Pins (die wegen der Ausrichtung natürlich auf der Platine verlötet sind) Flachbandkabel angelötet. Auf der anderen Seite sind Stecker, die dann auf die Hauptplatine gesteckt werden könnten.
Für folgende Aufteilung der 7-Segmentanzeigen:
A F B G E C D
ist die Steckerbelegung der Hauptplatine so:
ABCDEFG Stunden 10er ABCDEFG Stunden 1er ABCDEFG Minuten 10er ABCDEFG-+ Minuten 1er und MittelLEDs
Dazu hat die Hauptplatine noch einen Anschluss für RS232 vorgesehen, der kompatibel zum FTDI RS232-TTL-Kabel ist. Dieser wird softwareseitig allerdings aktuell nicht verwendet - angedacht war die Möglichkeit, hier z.B. die Zeit von einem Server zu bekommen.
Die Uhr ist jetzt seit einigen Wochen am laufen, während denen ich leider sehr unschöne Abweichungen (Größenordnung ca 1,04 Promille, also ~1 Minute pro Woche) bei der Zeit feststellen musste. Diese sind auf Ungenauigkeiten des Quarzes zurückzuführen. Glücklicherweise kann man hier Softwareseitig einiges glattbügeln, um genau zu sein in 0,16 Promille-Schritten. Meinen Berechnungen nach sollte die Abweichung mit der neuen Einstellung jetzt bei etwa 2 Minuten im Jahr liegen - was 1 Minute im Halbjahr, also zwischen den Zeitumstellungen bedeutet - ein recht brauchbarer Wert wie ich finde.
Downloads: http://downloads.fa-satzger.de/index.php?directory=Uhr
Known Bugs: