DCF77 ist das Funkuhrsignal, mit dem sich unsere Uhren per Geisterhand automatisch auf die richtige Uhrzeit einstellen.
Um das Signal empfangen zu können, braucht man ein DCF77-Modul mit dazugehöriger Antenne. So ein Modul steckt in jedem Funkuhr-Wecker oder man kauft es beim Conrad.
Nun kann man das Signal mit einem AVR auswerten. Es wird jede Sekunde ein Impuls geschickt. Die Länge des Impulses bestimmt, ob eine 0 oder eine 1 gemeint ist. Ich habe die Impulslängen erst mal in einem Testprogramm mit dem Time-Overflow-Vektor gezählt und dann auf einem LCD-Display ausgegeben.
Wie man sieht, zählt mein Programm bei einem 0-Bit bis 3 oder 4 und bei einem 1-Bit bis 5 oder 6. Der Unterschied ist für die spätere Auswertung viel zu klein. Also habe ich die Timerfrequenz erhöht.
Wenn eine Sekunde lang kein Impuls gesendet wird, ist das der Anfang einer neuen Minute. Nun kann man die Sekunden hoch zählen und dabei Überprüfen, ob eine 0 oder 1 gesendet wurde. Wie darin nun die Zeit codiert ist, findet man gut erklärt auf
Wikipedia.
Es ist also gar nicht schwer die Uhrzeit aus dem Signal zu bekommen. Darum ist das auch ein super AVR-Projekt für Einsteiger!
Leider ist das Signal sehr störanfällig. Falls bei deinem Signal nur Schmarn oder gar nix raus kommt, ändere mal die Position der Antenne. Wenn man die Zeit erfolgreich empfangen hat, sollte man sein Programm noch erweitern, um das empfangene Signal zu überprüfen.
Daten - Bilder - Zeugs
Wer glaubt, das DCF77-Signal ist maximal für öde Wecker gut, der hat sich geirrt. Ich habe dafür eine andere Verwendung gefunden.
NEIN - der Counter ist nicht für mich! Dafür bin ich noch zu jung.
letzte Änderung: 19.12.2010