DCF Modul von Pollin

Hallo,
ich bin neu hier. Mein Name ist Nic und ich bin noch gaaaanz am Anfang. :slight_smile:

Ich habe schon diverse sachen getestet und hinbekommen. Das meiste durch lesen und Probieren.

Was mich aber beinahe um den Verstand bringt ist das b***e DCF1 Modul von Pollin.
Angeschlossen wie beschrieben. Nun, ich bekomme kein Signal, nix rein gar nix.
Hab schon etliche Sketches probiert.
Den PON anschluss auf GND, nix gebracht.
Den PON anschluß mit der Kondensator und Wiederstand schaltung, auch nix.
Durch die ganze Wohnung gerannt ...... nix.
Nen zweiten probiert, auch nix.

Hab ihn auch schon über eine Stunde suchen lassen.
Evtl kann mir hier einer weiterhelfen.
Danke und gute Nacht

Nic

Monitor und PC stören effektiv den DCF-Empfang.
Hast Du es mal in 2m Abstand versucht?
Grüße Uwe

Hallo, nicht ganz 2m. Laptop auf dem Boden. DCF am Fenster richtung Norden und horizontal liegend. Ich habe eine Funkuhr mitten in der Kellerwohnung, die hat immer guten Empfang.

Gruß Nic

Moin,
Betriebsspannung 1,2...3,3 V-

versuche mal eine Batterie als Spannungsquelle für die Funkuhr.

Gruss
Kurti

Lies dir mal folgenden Thread durch, der wird dir sicher helfen.

http://forum.arduino.cc/index.php?topic=263373.0

Gruß

Und diesen Tröt: http://forum.arduino.cc/index.php?topic=270457.0
Da habe ich ebenfalls mit dem Pollin Modul gekämpft!
Welche DCF77 Lib verwendest du?
Es gibt mehrere Stolperfallen:

  • Fremdeinkopplungen z.B. durch störende Schaltnetzteile
  • vergessene Signalinvertierung für das Pollinmodul
  • zu große Frequenzabweichung des Arduino, wenn kein Quarz verbaut wurde
  • Compiler liefert Müll - das war bei Udos Riesencode bei mir der Fall

Das mußt du nacheinander abklopfen und einkreisen. Den von mir verlinkten Thread kannst du dafür prima abarbeiten. Wenn der von Udo compilierte Code bei dir läuft, ist Abhilfe mit Hausmitteln qasi unmöglich.
Ich habe das DCF Modul in der Schublade verschwinden lassen und werde wohl die Zeit von GPS nutzen.

Gruß Gerald

nix_mehr_frei:
Ich habe das DCF Modul in der Schublade verschwinden lassen und werde wohl die Zeit von GPS nutzen.

Seh ich auch so. Nen GPS-Modul (da reicht das billigste, die können das alle) kostet weniger als der ganze DCF-Zauber-und funktioniert. 8)
Auch das auslesen ist weit einfacher, weil man nicht lange rumdecodieren muss, sondern nur noch die Zeitzone (und evtl. Sommerzeit) korrigieren braucht. Die Uhrzeit kann z.b. die TinyGps ganz bequem decodieren.
Einzig der Empfang kann ein Problem werden, wenn man bissel unter der Erde wohnt (ich wohne unterm Dach, das GPS steht auf dem Arbeitstisch, getrennt durch ne Wand, 4m von sämtlichen Fenstern weg, aber dennoch hab ich nach ner halben Stunde immer nen Fix).
Zusammen mit ner gescheiten RTC reicht ja "alle paar Tage mal Empfang" auch aus.

OneUp2:
Hab ihn auch schon über eine Stunde suchen lassen.

Es ist Quatsch zu versuchen, eine Zeit decodieren zu wollen, wenn Du überhaupt nicht weißt, wie gut oder wie schlecht Dein empfangenes Signal ist.

Lade Dir zum Testen des Signals diesen Test-Sketch:

/*
 * DCFPulseLength.ino - DCF77 debug Example
 * Thijs Elenbaas, 2012
 * This example code is in the public domain.
 
  This simple example shows the pulse-to-pulse time and pulse lengths
  coming from the DCF decoder.
  
  Notice that will the DCF specification says that pulses should be either
  100 or 200 ms, we notice longer pulse lengths. This is likely due to to
  the hardware of the decoder. For optimal distinction between long and 
  short pulses in the DCF library, set the parameter 
  #define DCFSplitTime in DCF77.h to (Tlongpulse+Tlongpulse)/2  
*/
 
#define BLINKPIN 13
#define DCF77PIN 2

int flankUp = 0;
int flankDown = 0;
int PreviousflankUp;
bool Up = false;

void setup() {
  Serial.begin(9600);
  pinMode(DCF77PIN, INPUT);
  pinMode(BLINKPIN, OUTPUT);
}

void loop() {
  int sensorValue = digitalRead(DCF77PIN);
    if (sensorValue) {
      if (!Up) {
        flankUp=millis();
        Up = true;
        digitalWrite(BLINKPIN, HIGH);
      }
    } else {
      if (Up) {
        flankDown=millis();
        Serial.print("Cycle: ");
        Serial.print(flankUp-PreviousflankUp);
        Serial.print(" Pulse :");
        Serial.println(flankDown - flankUp);
        PreviousflankUp = flankUp;
        Up = false;
 digitalWrite(BLINKPIN, LOW);
      }              
    }
  
}

Wenn Du keine sauberen Impulse von 1000 ms Dauer bekommst, mußt Du suchen, wo der Fehler liegt.

Langwelle dringt zwar durch alles durch, so dass die Antenne nicht wie bei GPS am Fenster liegen braucht wie bei GPS, sondern bei DCF ist der Empfang mitten im Raum genau so gut wie am Fenster, aber Langwellen werden durch alles gestört, was elektromagnetische Abstrahlungen verursacht, zum Beispiel:

  • Computer
  • Fernseher
  • Monitore
  • Schaltnetzteile
  • Leuchtstoffröhren
  • Energiesparlampen
  • und alles was selbst funkt: jedes Handy, Smartphone oder WLAN-fähiges Gerät
    Mindestabstand zu all diesen: Zwei Meter oder mehr

Auch der 16 MHz Arduino-Controller erzeugt im Nahfeld bereits einen Störnebel, so dass Du das GPS-Modul am besten einige Zentimeter entfernt vom Arduino-Board anordnest und die DCF-Antenne möglichst weit vom Atmega-Controller anordnest.

+------------+         +-----------+
| Atmega     |---------| DCF-Modul |-------------|||||||||||||||||
+------------+         +-----------+               DCF-Anntenne

Und bevor Du anfangen kannst, eine Zeit aus dem Signal zu decodieren, brauchst Du erstmal ein stabiles 1-Sekunden-Signal.

Wenn Du das nicht hast, suche in zwei Meter Umkreis um die DCF-Antenne, woher die Störungen kommen!

Das tolle am DCF77 Protokoll ist, dass es so langsam ist, dass man auch schon mit einem Multimeter oder einer LED debuggen kann. Also einfach mal am Datenausgang des Moduls mit einer LED oder einem Multimeter (vorsicht, billige Multimeter sind oft erschreckend langsam) schauen, ob irgendwas empfangen wird. Und nicht gleich auf das Modul schimpfen, ich habe auch das von Polin, und für meine schreckliche Empfangssituation kann das Modul auch nichts. Die Frage ist ja, wo empfängst Du nichts? Mit einem Testsketch, den Du irgendwoher kopiert hast? Da kann der Fehler überall liegen. Schau erstmal, ob Hardwaremäßig wirklich was aus dem Modul heraus kommt, wenn ja, dann teste mit dem Sketch von Jurs. Wenn das alle gut aussieht, poste Deinen Sketch, der nichts empfängt, vieleicht ist da ja irgendwo der Wurm drin. Zeichne auch mal einen Schaltplan, und stelle den online, da kann aj auch der Wrum drin sein.

Grüße,

Sven

Guten Abend.

Sehr schön, viele antworten. Ich werde mich dransetzten und alles der Reihe nach probieren. Auch das zweite Modul. Ich werde auch nach und nach Ergebnisse hier posten.
Danke schon mal an alle.
Eins hab ich noch. Was ist wenn die LED an PIN 13 dauerleuchtet? Normal müsste sie doch im Sekundentakt blinken? Der Arduino Mega selber blinkt im Sekundentakt. Hmmmmmm.

Gruß Nic

Eins hab ich noch. Was ist wenn die LED an PIN 13 dauerleuchtet? Normal müsste sie doch im Sekundentakt blinken? Der Arduino Mega selber blinkt im Sekundentakt. Hmmmmmm.

Ein nagelneuer Original-Arduino hat zusammen mit dem Bootloader einen Blink-Sketch drauf.

Ein anderer Sketch, der nichts mit Pin13 macht, setzt diesen als Input. Verbinde Pin13 über irgendeinen großen Widerstand mit GND und die LED ist aus.