DCf77 Funkuhr Empfänger am Arduino betreiben

Hallo

ich habe mal wieder ein kleine Problem. Eine einfach zu bediehnende Schaltuhr möchte ich das DCf77 Empangsmodul an einem Arduino benutzen. Ich habe auch schon eine passende Bibliothek gefunden und der Arduino bekommt auch Daten rein aber leider finde ich keinen Sketch der sich um die Dekodierung des Signal kümmert. Kann mir vieleicht jemand etwas auf die Sprünge helfen das währe nett.

Wie Du hast die passende Bibiothek gefunden, brauchst aber einen Sketch zum decodieren. Was macht denn dann die Bibiothek? Grüße Uwe

Hallo Uwe

danke für die Antwort.
Es ist diese Lib: https://nodeload.github.com/thijse/Arduino-Libraries/zipball/master das ist der Downloadlink

Ich habe mich falsch ausgedrückt es ist ein Beispielsketch dabei der anscheinend die interene Uhr synchronisiert.
Doch leider funktioniert dieser nicht . Es hagelt viele Fehlermeldungen
Es handelt sich um den Sketch:

/*
* InternalClockSync.pde
* example code illustrating time synced from a DCF77 receiver
* Thijs Elenbaas, 2012
* This example code is in the public domain.
This example shows how to fetch a DCF77 time and synchronize
the internal clock. In order for this example to give clear output,
make sure that you disable logging from the DCF library. You can
do this by commenting out #define VERBOSE_DEBUG 1 in Utils.cpp.
*/

#include "DCF77.h"
#include "Time.h"

#define DCF_PIN 2 // Connection pin to DCF 77 device
#define DCF_INTERRUPT 0 // Interrupt number associated with pin

time_t time;
DCF77 DCF = DCF77(DCF_PIN,DCF_INTERRUPT);


void setup() {
  Serial.begin(9600);
  DCF.Start();
  Serial.println("Waiting for DCF77 time ... ");
  Serial.println("It will take at least 2 minutes until a first update can be processed.");
}

void loop() {
  delay(1000);
  time_t DCFtime = DCF.getTime(); // Check if new DCF77 time is available
  if (DCFtime!=0)
  {
    Serial.println("Time is updated");
    setTime(DCFtime);
  }
  digitalClockDisplay();
}

void digitalClockDisplay(){
  // digital clock display of the time
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year());
  Serial.println();
}

void printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

wenn ich den kompiliere erhalte ich folgende Fehlermeldungen:

sketch_jul01a.cpp:13:18: error: Time.h: No such file or directory
sketch_jul01a:17: error: ‘time_t’ does not name a type
sketch_jul01a:18: error: no matching function for call to ‘DCF77::DCF77(int, int)’
E:\Arduino\Software\Windows\arduino-1.0.1\libraries\DCF77/DCF77.h:99: note: candidates are: DCF77::DCF77(unsigned char)
E:\Arduino\Software\Windows\arduino-1.0.1\libraries\DCF77/DCF77.h:71: note: DCF77::DCF77(const DCF77&)
sketch_jul01a.cpp: In function ‘void setup()’:
sketch_jul01a:23: error: ‘class DCF77’ has no member named ‘Start’
sketch_jul01a.cpp: In function ‘void loop()’:
sketch_jul01a:30: error: ‘time_t’ was not declared in this scope
sketch_jul01a:30: error: expected `;’ before ‘DCFtime’
sketch_jul01a:31: error: ‘DCFtime’ was not declared in this scope
sketch_jul01a:34: error: ‘setTime’ was not declared in this scope
sketch_jul01a.cpp: In function ‘void digitalClockDisplay()’:
sketch_jul01a:41: error: ‘hour’ was not declared in this scope
sketch_jul01a:42: error: ‘minute’ was not declared in this scope
sketch_jul01a:43: error: ‘second’ was not declared in this scope
sketch_jul01a:45: error: ‘day’ was not declared in this scope
sketch_jul01a:47: error: ‘month’ was not declared in this scope
sketch_jul01a:49: error: ‘year’ was not declared in this scope

ich habe mal versucht die Lib Time.h mittels include in einen leeren Sketch einzubinden.
Es wird dabei garnichts angezeigt. Hat dieser eventuell ein Problem mit der Arduino 1.0.1 IDE

Es scheint Dir die Time.h Bibiothek zu fehlen oder ist sie im falschen Ordner?

sketch_jul01a.cpp:13:18: error: Time.h: No such file or directory

Grüße Uwe

Die ist schon vorhanden über Libary importieren kann ich sie anwählen wenn ich sie dann importiere wird nichts angezeigt nicht einmal #include wenn ich sie bei der Sketchauswahl angezeigt bekomme dann müßte sie eigentlich da sein oder?

Hast Du sie auch im richtigen Verzeichnis? Hatte mal unter Windows das Problem daß eine Bibiothek 1 unterverzeicnis zu tiel gespeichert wa und die Beispiele gefunden wurden, die Bibiothek selbst aber nicht. Ist die Bibiothek unter .../libraries/Time/Time.h und nicht etwa unter .../libraries/Time/Time/Time.h ? Grüße Uwe

Sieht für mich auch so aus als ob die Time lib nicht gefunden wird!

Falls deine DCF77 Lib nicht funktioniert kannst du dir auch diese mal anschauen:
http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/index.html
Die tuts bei mir ganz gut.
Wenn Du natürlich Time nutzt, macht ja auch sinn, dann muss diese natürlich auch hier zu finden sein.

Hallo MueThoS

danke ich hab versucht die Datei dcf77-arduino-01.tar mittels Winrar zu öffnen leider meldet das Programm dass das Verzeichnis beschädigt sei.

Hallo UWE

jetzt hat das es geklappt es war tatsächlich das Time Verzeichis wie Du geschrieben hast.
Die Zeitsynchonisation geht zwar noch nicht aber das liegt vermutlich an dem schlechten DCF Signal da muß ich mal nach der Stromversorgung und sonstigen Störeinflüssen schauen .
Vielen Dank

Die Libraries, die ich bisher testete warten das Synchronisationbit ab und füllten dann ein Array mit den Daten Bits. Im schlimmsten Fall bekommst du also 2 min keine Uhrzeit. Dann heisst es Geduld haben. :wink:
Störquelle bei meinen Experimenten war die Hintergrundbeleuchtung meines TFTs. Der Kaltlichtkathodeninverter hat da ganz schöne Peeks im Signal erzeugt.