Man mag in der heutigen Zeit, wo man für 4,95€ einen fertigen Wecker kaufen kann, den Sinn dieses Projektes nicht ganz nachvollziehen können. Aber es hat durchaus seine Berechtigung,
denn ich fand einfach kein Gerät, welches meine Wünsche ohne Einschränkungen erfüllen konnte: selbstleuchtende Anzeige, 2 Weckzeiten, einstellbare Weckerlautstärke, Speicherung der Weckzeiten
bei Netzausfall ohne zusätzliche Batterie, DCF77 oder HBG Synchronisation und einfache Bedienung. Also machte ich mich selbst ans Werk und baute diesen Wecker mit einem AT90S4434 (bzw.
AT90S8535 oder ATmega8535) auf.
Downloads
| Schaltplan | wecker-sch.zip |
| Stückliste mit Empfehlungen zur Bauteilbestellung | wecker-stkl.htm |
| Software für den Wecker mit Quelltext in Assembler, Standard-Version | wecker-v105.zip vom 04.03.2007 |
| Software für den Wecker mit Quelltext in Assembler, Version mit invertierenden Ausgängen | wecker-v105-inv.zip vom 04.03.2007 |
| Platinen-Layout von Lothar Jasper (2 Platinen als PDF) | wecker-pl.zip |
| Gehäuse-Entwurf von Bernd Markscheffel (Fräs-Vorlage als PDF/CDR) | wecker-ge.zip |
Inhaltsverzeichnis
| Beschreibung | Allgemeine Informationen über den Wecker |
| Schaltung | Beschreibung der Schaltung |
| Hardware | Bilder und Hinweise zum Aufbau des Weckers |
| Software | Inbetriebnahme des Weckers und Installation der Software |
| Bedienung | Bedienung des Weckers |
Die Schaltung ist relativ einfach aufgebaut, als zentrale Komponente wird hier der Mikrocontroller AT90S4434, AT90S8535 oder ATmega8535 verwendet. Die Ports PD0-PD7 steuern die rechte Anzeigestelle inklusive Dezimalpunkt an. PC0-PC6 sind für die nächste Stelle (zweite von rechts) zuständig. Hier wird der Dezimalpunkt nicht gebraucht, deshalb bekommt PC7 eine andere Verwendung und bedient den Tongenerator. Die nächste Anzeigestelle arbeitet wieder mit Dezimalpunkt und belegt deshalb einen kompletten Port (PA0-PA7). Die Ansteuerung der linken Anzeigestelle weicht etwas von den anderen ab. Da hier nur die Ziffern 1 und 2 angezeigt werden müssen, kann man die Ansteuerung wesentlich vereinfachen. Es werden nur die Segmente b und c einzeln gebraucht und die Segmente a, d, e und g können zu einer Gruppe zusammengefasst werden. Insgesamt reichen also 3 Portanschlüsse (PB0-PB2) aus. Die 5 verbleibenden Anschlüsse arbeiten als Eingänge: Einer davon (PB3) liest die Daten vom DCF77-Empfänger ein und der Rest (PB4-PB7) überwacht die 4 Bedientasten.
Die zur Anzeige führenden Controller-Anschlüsse enden zunächst auf einem 34-poligen Pfostensteckverbinder. Dieser ist so auf der Elektronikplatine angeordnet, dass die Anzeigeplatine direkt von oben aufgesteckt werden kann. Die unverzichtbaren LED-Vorwiderstände habe ich auf der Anzeigeplatine untergebracht, da hier mehr Platz zur Verfügung stand. Die Werte von 1k erscheinen auf den ersten Blick etwas hoch, aber die verwendeten Anzeigeelemente SA08-11SWRA leuchten so intensiv, dass man den Strom auf 3,5 mA reduzieren kann.
Und jetzt zu einem wichtigen Schaltungsteil, der zu jedem Wecker gehört: die Tonerzeugung. In der ursprünglich geplanten Weckerversion sollte der Ton komplett vom Controller generiert werden,
was jede Menge Bauteile eingespart hätte. Das hat auch funktioniert, aber der Ton war leider ein wenig unsauber. Die Ursache dafür liegt an einem Timer-Interrupt, der alle 10 ms aktiviert
wird und somit die Tonausgabe stört. Auf den Timer kann ich aber schlecht verzichten, weil er die Zeitzählung, den DCF-Empfang, die Tastenabfrage und Entprellung und teilweise auch die
Anzeige steuert. Also wird über den Anschluss PC7 nicht direkt die Tonfrequenz ausgegeben, sondern nur ein High-Pegel als Aktivierungssignal. Dieses führt zu dem als Oszillator geschalteten
Schmitt-Trigger-Gatter IC2/4 und dient als Schalter für den Oszillator. Der Oszillatorausgang wird invertiert auf ein Potentiometer zur Lautstärkeeinstellung geführt und gelangt schließlich
über den Treiber Tr1 zum Lautsprecher. Die zusätzliche Invertierung mit IC2/3 ist notwendig, damit der Lautsprecher im Ruhezustand des Oszillators stromlos ist.
Die Frequenz des Oszillators wird durch R2 und C7 bestimmt. Ich habe die Werte so bemessen, dass ein relativ hoher Piep-Ton erzeugt wird. Wer das nicht mag, kann durch Vergrößerung von C7 die
Frequenz niedriger einstellen, alternativ kann man auch R2 durch ein 250k Trimmpotentiometer ersetzen. Dann kommt man auch in den Bereich der Resonanzfrequenz des benutzten Mini-Lautsprechers
(oft als Sound Transducer bezeichnet) und dann wird es fast unerträglich laut. Für Leute mit tiefem Schlaf ist diese Einstellung aber vielleicht empfehlenswert :-)
Zum Schluss noch ein Wort zur Stromversorgung: Hier kann ein einfaches Steckernetzgerät verwendet werden, welches einen Strom von 150-200 mA liefern kann. Die anliegende Wechselspannung sollte dabei mindestes 7V betragen. Es ist auch ein Betrieb mit Gleichspannung möglich, wobei die Polarität keine Rolle spielt. Allerdings sind dann mindestens 10V als Eingangsspannung erforderlich. Bei höheren Eingangsspannungen empfiehlt es sich, den Spannungsregler auf ein kleines Kühlblech zu montieren. Optimal ist hier ein geregeltes Schaltnetzteil mit 12V und mindestens 200mA geeignet.
Diese Stückliste enthält alle Bauelemente, die für den Wecker erforderlich sind.Die Datei wecker-pl.zip enthält ein komplettes Platinenlayout für den Wecker in Form von PDF-Dateien. Dieses wurde von Lothar Jasper entwickelt und zur Verfügung gestellt, vielen Dank.
Noch ein paar Hinweise zu den verwendeten Bauelementen:Und noch ein Hinweis zum DCF77-Empfänger: In dieser Schaltung wird ein Empfänger mit offenem Kollektor-Ausgang benötigt. Die Empfänger von ELV und Conrad (bei letzterem den invertierten Ausgang verwenden) erfüllen diese Bedingung. Bei Empfängern mit direktem Ausgang muss noch eine Transistorstufe zwischengeschaltet werden.
Hardware
Der Wecker wurde auf 2 Lochrasterplatinen aufgebaut: Die Elektronikplatine enthält (wie der Name schon sagt) die gesamte Elektronik und auf der Anzeigeplatine sind die Anzeigeelemente sowie
die dazugehörigen Vorwiderstände untergebracht.
Unterhalb der 4 Anzeigeelemente sind die 29 Vorwiderstände angeordnet. Die Anschlüsse führen von einer Pfostenbuchse über ein kurzes Stück Flachbandkabel zur Platine und werden auf der
Rückseite entsprechend verbunden.
Das ist dann das Endergebnis, wenn man beide Platinen zusammensteckt. Der Einsteller für die Weckerlautstärke befindet sich jetzt unter dem Gehäuse der Anzeigeplatine. Zum Einstellen der
Lautstärke ist es erforderlich, die Anzeigeplatine abzuziehen, was man aber ohne Bedenken bei eingeschaltetem Wecker tun kann - echtes Plug & Play :-)
Es ist auch möglich, die Weckzeit rückwärts einzustellen, also z.B. die Stunden von 6 auf 5 zu setzen: Man drückt auf die Taste Std, hält diese fest und drückt zusätzlich die Taste Min so oft, bis man die gewünschte Stunde erreicht hat. Mit den Minuten funktioniert das genauso, dann werden die Tasten in der umgekehrten Reihenfolge verwendet. Da diese Logik vielleicht nicht von jedem nachvollzogen kann, will ich nicht weiter darauf eingehen :-)
5 Sekunden nach der letzten Eingabe wechselt die Anzeige wieder zur normalen Uhrzeit, allerdings leuchtet jetzt der äußerst rechte Dezimalpunkt als Kennzeichen für die aktivierte Weckzeit 1. Die Weckzeit wird (falls sie sich verändert hat) im EEPROM abgespeichert, außerdem wird der veränderte Alarmstatus im EEPROM vermerkt, so dass sich die Uhr nach einem Netzausfall an den aktivierten Alarm 1 erinnert. Der Alarm kann wieder deaktiviert werden indem man erneut AL1 oder AL2 drückt. Der rechte Dezimalpunkt verlischt dann wieder.Das Einstellen der Weckzeit 2 erfolgt ebenso wie das Einstellen der Weckzeit 1, hier muss nur anstatt AL1 die Taste AL2 gedrückt werden. 5 Sekunden nach der Einstellung der Weckzeit 2 kehrt auch hier die Anzeige wieder zur Uhrzeit zurück, allerdings blinkt dann der rechte Dezimalpunkt als Kennzeichen für den aktivierten Alarm 2. Es ist übrigens nicht vorgesehen, beide Weckzeiten gleichzeitig zu aktivieren.
Wird nun irgendwann die aktivierte Weckzeit 1 oder 2 erreicht, dann ertönt das Wecksignal. Dieses besteht aus 3 kurzen Pieptönen und einer anschließenden gleichlangen Pause und wird innerhalb einer Minute 60 mal wiederholt. Danach wird das Wecksignal wieder abgeschaltet, der Alarm bleibt aber aktiviert. Üblicherweise wird man das Wecksignal aber nicht eine Minute lang ertragen wollen, deshalb kann man es durch Drücken einer beliebigen Taste abschalten, wobei der Alarm auch gleichzeitig deaktiviert wird. Eine Schlummerfunktion gibt es nicht.Während der normalen Zeitanzeige kann man durch Drücken der Tasten Std oder Min zur Sekundenanzeige wechseln. Der Dezimalpunkt, der normalerweise zwischen den Stunden und Minuten gleichmäßig blinkt, zeigt jetzt direkt die eingehenden Impulse des DCF77-Empfängers an. Dabei scheint der Punkt zu leuchten und im Sekundentakt kurz zu verlöschen (100 ms bei einem 0-Bit, 200 ms bei einem 1-Bit). So kann man bei Empfangsproblemen nachschauen, ob überhaupt ein DCF-Signal empfangen wird. Ein nochmaliger Druck auf Std oder Min schaltet wieder zur normalen Zeitanzeige zurück.
Erwähnenswert ist noch, dass beim Einschalten der Uhr zunächst für 2 Sekunden die Versionsnummer der Software angezeigt wird. Danach erscheint die Anzeige 0.00, da ja noch keine Synchronisation mit der DCF77-Zeit stattgefunden hat. Die Synchronisation dauert bei fehlerfreiem Empfang mindestens 3 Minuten und während dieser Zeit zeigt der sonst gleichmäßig blinkende Dezimalpunkt zwischen Stunden und Minuten die eingehenden DCF77-Impulse an.