Schema Verbindung DCF77-Modul von ELV und Arduino UNO

Arduino UNO Digital-PIN Nr. 2 gem. Beispielcode.
Arduino UNO 3.3 Volt Power-PIN und Arduino UNO GND.
Erklärung verbindungen auf dem Breadboard:
SIGNAL-Leitung vom DCF77-Modul von ELV wird über eine sogenannte Open Collector Verbindung mit dem Arduino UNO am PIN 2 verbunden.
Das heisst der PIN 2 wird nicht direkt mit dem SIGNAL-PIN vom DCF77-Modul verbunden, sondern es wird eine Verbindung zum 3.3 Volt-Strom über einen 10K Ohm Widerstand dazwischen gesetzt.
DCF77-Modul von ELV
+ PIN wird direkt mit 3.3 Volt verbunden.
GND PIN wird direkt mit GND verbunden.
SIG-PIN (SIGNAL) wird über den Open Collector Teil verbunden.

Zwischen GND und SIGNAL sollte ein 10nF Keramik Kondensator gelötet werden um Störsignale aus der Stromquelle zu korrigieren.
Ich habe dies auf der Rückseite gemacht, damit die PIN's über die Dupont-Kabel verbunden werden können.

Beispielcode DCF77 Zeit auslesen mit Arduino UNO

Hinweis
Wenn man nach 20 Minuten immer noch keine Zeit erhalten hat, kann dies am Empfang innerhalb vom Gebäude liegen.
In diesem Fall mal den Standort wechseln und es erneut versuchen.
Ich hatte entweder nach 3 Minuten eine Zeit erhalten oder nie...
Ein Zip mit dem Sketch und den Bibliotheken wie es bei mir funktioniert hat, ist unten am Beispielcode angehängt.

//Beispielcode um Arduino UNO mit DCF77 Modul von ELV zu verbinden und Zeit auszulesen.
//Mutationen durch slaps313 - 2018
//DCF77.h und TimeLib.h wurden ohne Anpassungen verwendet.
//DCF77 Bibliothek wurde von hier erhalten: http://thijs.elenbaas.net/downloads/?did=1
//TimeLib.h Bibliothek wurde von hier erhalten: https://github.com/PaulStoffregen/Time
//Die Sketch-Vorlage wurde von hier geladen (hier werden auch andere Module behandelt): https://www.issb.de/mw/index.php/Test_elektronischer_Funkuhren-Module_(DCF77)_am_Mikroconcroller

#include "DCF77.h" //Alle DCF77 Funktionen laufen ueber diese Bibliothek.
#include "TimeLib.h" //Time.h hat bei mir nie funktioniert, habe TimeLib.h eingebunden, dann gehts.

#define DCF_PIN 2 // Verbindung zum DCF77 Arduino UNO PIN
#define DCF_INTERRUPT 0 // Interrupt number associated with pin
#define PIN_LED 13 // Status von der Verbindung an LED-PIN 13

//time_t time;
// DCF77 DCF = DCF77(DCF_PIN, DCF_INTERRUPT); // Dieser Eintrag sollte für andere Module aktiviert werden...
// für das DCF-Modul von ELV muss das Signal invertiert werden, deshalb so:
DCF77 DCF = DCF77(DCF_PIN, DCF_INTERRUPT, false);
// wurde ein gueltiges Signal gefunden
bool g_bDCFTimeFound = false;

void setup()
{
pinMode(PIN_LED, OUTPUT);
Serial.begin(9600);
DCF.Start();
Serial.println("Warte auf DCF77 Zeit... ");
Serial.println("Es dauert in den meisten faellen mindestens 2 Minuten bis die Zeit aktualisiert wird.");
}

void loop()
{
// delay(950);
// das Signal wird nur alle 5 Sekunden abgefragt
delay(5000);

digitalWrite(PIN_LED, HIGH);
delay(50);
digitalWrite(PIN_LED, LOW);

time_t DCFtime = DCF.getTime(); // Check if new DCF77 time is available
if (DCFtime != 0)
{
Serial.println("Aktuelle Zeit wurde empfangen!");
setTime(DCFtime);
g_bDCFTimeFound = true;

}

// die Uhrzeit wurde gesetzt, also LED nach kurzer Zeit ein
if (g_bDCFTimeFound)
{
delay(50);
digitalWrite(PIN_LED, HIGH);
}
digitalClockDisplay();
}

void digitalClockDisplay()
{
// Anzeigen der Zeit
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)
{
// Kleines Skript um bei Minuten und Sekunden eine 0 vornean zu stellen
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}


Sketch mit TimeLib und DCF77 Bibliotheken herunterladen: DCF77_Sketch_mit_Bibliotheken.zip