DCF77 Uhr / Frequenzcounter

Vom TTL-Grab zu den Modernen Techniken, das erste Projekt mit dem Atmega8 Mikrocontroller.

30.08.2010: Verbesserung in der Anzeige und in der Pulsweitenmessung,  jetzt mit dem Atmega168 Controller.

02.02.2011:  Erweiterung der Zeitanzeige um die aktuelle Sonnenaufgang- und Sonnenuntergangszeit. Die Berechnung erfordert die math.h Bibliothek, die Formeln wurden der sehr zu empfehlenden Webseite  http://lexikon.astronomie.info/zeitgleichung entnommen, Version 2005, dort in c++, wurde für c etwas umgestellt. Statt der double Variablen wurden float Variablen verwendet, die Genauigkeit ist ok und ein Lob für den GCC. Die Micro Controller können keine Gleitpunkt Arithmetik, alles per Software und das nur in zusätzlich ca. 3850 Bytes Programmcode.        

03.02.2011:
Kleine Korrekturen im source.

11.02.2011
: Nachtrag zu float: AVR-GCC benutzt z.Z. immer float, die Genauigkeit zu double wurde in einem PC-Programm simuliert. Für die meisten Tage im Jahr ist das Ergebnis identisch, an manchen Tagen ist die Abweichung +-1 min. IMO ausreichend, denn grundsätzlich hat diese Formel auch Fehler gegenüber den wahren Abläufen im Weltall.     

12.06.2012
: Für die Anzeige der Uhr kann die Helligkeit der Hintergrundbeleuchtung für das Display in 4 verschiedenen Stufen ausgewählt werden (PWM).
Frequenzmessung: Wenn die Pulsweite kleiner 10% ist, wird diese mit einer Nachkommastelle angezeigt.


freq_counter
 .
Die Umschaltung Uhr / Frequenz counter erfolgt mit dem Kippschalter rechts oben, gleichzeitig +5V auf die Vorteiler Platine.
Die menu Steuerung wurde über 2 Taster realisiert: Set und parm++ .
Zuerst wird die Taste parm++ betätigt bis der gewünschte Parameter in der esten Zeile angezeigt wird (wrap around).
Mit dem Taster Set wird der Parameter ausgewählt und es erscheint der im Gerät eingestellte Wert. Mit dem Taster parm++ kann ein neuer
Wert ausgewählt werden, mit einen erneuten SET wird der Wert übernommen und das menu beendet. 

Anzeige der Zeiten für den Sonnenaufgang und Sonnenuntergang für den 2.2.2011. Datum und diese Anzeige je 10 Sekunden im Wechsel.
11.2.2011:  Hier die Anzeige  von 0-11:59 Uhr,  ab 12 Uhr wird die Sonnenuntergangszeit angezeigt und die Aufgangszeit des nächsten Tages
in der Form SU hh:mm A hh:mm.  
Sonnenzeiten

Anzeige der Frequenz, Postive Pulsweite in % und Zeitdauer
Positiv

Anzeige der Frequenz, Negative Pulsweite in % und Zeitdauer
Negativ

Anzeige der Frequenz, Cycle Time und Positive Pulweite in %
cycle


Menu Beschreibung:

DCF77 menu
DCF77 parm Werte (default) Bedeutung
retur kein Verlassen der Menusteuerung
Licht ret menu eine Stufe zurück
aus Hintergrundbeleuchtung des Displays ausschalten
12,5% Hintergrundbeleuchtung des Displays 12,5%
25,0% Hintergrundbeleuchtung des Displays 25,0%
50,0% Hintergrundbeleuchtung des Displays 50,0%
99,9% Hintergrundbeleuchtung des Displays 99,9%
P LED ret menu eine Stufe zurück
aus Die LED für den DCF77 Impuls ist nicht aktiv
ein Die LED für den DCF77 Impuls ist aktiv
Sleep ret menu eine Stufe zurück
aus Sleep Modus aus, jede Minute wird das Zeitsignal ausgewertet
ein Sleep Modus ein, nur jede Stunde wird das Zeitsignal ausgewertet
Trace ret menu eine Stufe zurück
aus Zeitanzeige normal
ein Das 64 Bit Zeitsignalregister wird hexadezimal angezeigt

Frequencounter menu                                     
Frequenzcounter
 parm
Werte (default) Bedeutung
retur kein Verlassen der Menusteuerung
Modus retur menu eine Stufe zurück
F o.VT Frequenzmessung ohne Vorteiler 1:16
F m.VT Frequenzmessung mit Vorteiler 1:16
F auto Frequenzmessung, Vorteiler automatisch ein/aus
Drehz. Anzeige der Drehzahl in 1/min
Teiler ret menu eine Stufe zurück
1 Teiler = 1
2 Teiler = 2, für die Tachosignalauswertung, nur im Drez.Modus 
Cycle ret menu eine Stufe zurück
 1 s Messzyklus je 1 Sekunde
 2 s Messzyklus je 2 Sekunden
 4 s Messzyklus je 4 Sekunden
10 s Messzyklus je 10 Sekunden, Frequenz mit einer Nachkommastelle anzeigen
Licht ret menu eine Stufe zurück
aus Hintergrundbeleuchtung des Displays ausschalten
ein Hintergrundbeleuchtung des Displays einschalten
Trace ret menu eine stufe zurück
aus Anzeige Normal
ein Interne Zähler anzeigen
Pulse
retur
menu eine stufe zurück
Positiv
Pulsweite von positive bis negative Flanke
Negativ
Pulsweite von negative bis positive Flanke
Cycle
Cycle Time anzeigen

Wenn innerhalb von 10 Sekunden keine Auswahl getroffen wird, verschwindet die menu-Anzeige.

Empfang des DCF77 Signals mit einem handelsüblichen Empfänger (www.conrad.de). Der Aufbau wurde auf Lochrasterplatinen realisiert, für das 2 zeilige Display (2*16) wurde eine Ansteuerung über zwei 5 Bit shiftregister = 10 Bit gewählt, ursprünglich sollte die Hintergrundbeleuchtung auch darüber gesteuert werden, aber dann flackert diese, deshalb die Ansteuerung der Hintergrundbeleuchtung über einen eigenen Port.
Der Vorteiler wird mit einem Portausgang gesteuert.
Die Frequenzmessung sollte bis ca. 30Mhz gehen.
Die Pulsweitenmessung geht nur ohne Vorteiler, Verbesserung der Messung da neue Messtechnik mit eigenem Quarz.
  
Das Eingangssignal wird im  TTL Pegel erwartet, +5V und die Masse ist über 2 Buchsen abzugreifen, damit können beliebige Vorstufen betrieben werden. 

Hier die Innenansicht:
Innen

Die Schaltung:
Scahltung


Platine



Porterweiterung für das LCD-Display:
porterweiterung


Beispiel für einen optischer Sensor für die Drezahlmessung. Dazu wird auf dem zu messenden Objekt eine kleine hochreflektierende Folie aufgeklebt:
Sensor

Der Rohbau des Sensors:
Sensor

Der Quellcode des atmega168  in c für den WINAVR Compiler (ohne Gewähr und ohne Rücksicht auf Patente):
Verzeichnis abc
Verzeichnis dcf77_freq
Update: 16.2.2013             Reinhard Alfons Lidzba 2013       Kontakt