Hallo erstmals und zwar ich habe mir einen Dcf Empfänger vom Conrad geholt und habe ihn an meinen Arduino Uno an Pin 12 angeschlossen. Ich habe einen externen Pull Out Resistor mit 10kOhm angeschlossen. Wenn ich mit dem Multimeter messe bekomme ich nur eine Spannung von 0,06 V am Dcf ausgang und der Dcf Empfänger hängt an 5V. Doch er funktioniert nicht ich habe bereits alles versucht doch ich bekomme kein richtiges Signal. Eine Wetterstation mit Dcf Empfänger bekommt am gleichen Standort innerhalb von 1 Minute ein Signal. Hier der Sketch: #include "DCF77.h" #include "Time.h" #define DCF_PIN 12 // 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); }
Lass den ganzen DCF-Code erstmal weg, haenge eine LED an einen Ausgang und lasse dir den Zustand an Pin 12 mit der LED anzeigen. Die sollte dann im Sekundentakt blinken, dann weisst du, dass der Empfaenger funktioniert.
@lala Es ist das Beispielprogramm InternalClockSync von der DCF77 Library @dietrich1 ein Pull Out Widerstand ist ein 10kOhm Widerstand vom Dcf Ausgangsignal zum 5V Signal
Felix Stockinger schrieb: > ein Pull Out Widerstand ist ein 10kOhm Widerstand vom Dcf Ausgangsignal > zum 5V Signal Das Tier heisst Pull Up...
Mal abgesehen von meinem Vorschlag von oben: Hast du mal sowohl den normalen als auch den invertierten Ausgang des Moduls ausprobiert? Da man deinen Code ja nicht kennt, kann man ja nicht sagen, welche der beiden Moeglichkeiten er erwartet.
Du kannst zum Test den Empfänger mit Pull-Up nur an +5V hängen (ohne µC). Dann müssten an den Ausgängen Spannungsschwankungen im Sekundenraster zu sehen sein. Je nach Reaktionsgeschwindigkeit des Multimeters können diese "Zuckungen" allerdings auch gering sein. Dann zum Test den Ort und die Ausrichtung ändern - vielleicht bist Du in einem Funkloch oder hast Störquellen in der näheren Umgebung. Gruß Dietrich
betreibe den empfänger einige meter(2m?) vom controller entfernt. beim nachbarn geht das nur wenn genügend abstand zur uhr besteht.
Dietrich L. schrieb: >> Pull Out Resistor > > Was ist das? Das ist der, den man vor Wut aus der Schaltung reißt, wenn sie nicht funktioniert!
Felix Stockinger schrieb: > habe ihn an meinen Arduino Uno an Pin 12 angeschlossen. > ... > > Eine Wetterstation mit Dcf Empfänger bekommt am gleichen Standort > innerhalb von 1 Minute ein Signal. > > Hier der Sketch: > > > #include "DCF77.h" > #include "Time.h" > > #define DCF_PIN 12 // Connection pin to DCF 77 device > #define DCF_INTERRUPT 0 // Interrupt number associated with pin Mal völlig abgesehen vom fehlenden Signal des DCF-Receivers: Das Programm kann so mit diesen defines und am Pin D12 grundsätzlich und überhaupt nicht funktionieren. Grund: Der Pin Digital 12 ist am Arduino UNO überhaupt nicht interruptfähig! Der Arduino UNO hat überhaupt nur zwei Pins, die interruptfähig sind. Digital 2 kann Interrupt 0 auslösen Digital 3 kann Interrupt 1 auslösen Die einzigen Möglichkeiten zur Verwendung dieser Library sind also beim einem Uno-Board der Anschluß des Datenausgangs des DCF-Moduls an Pin D2 oder D3. Die passenden defines wären bei Verwendung von Eingang D2: #define DCF_PIN 2 // Connection pin to DCF 77 device #define DCF_INTERRUPT 0 // Interrupt number associated with pin Oder an Pin D3: #define DCF_PIN 3 // Connection pin to DCF 77 device #define DCF_INTERRUPT 1 // Interrupt number associated with pin Alles andere geht grundsätzlich nicht. Hallelujah, warum sagt ihm das denn keiner? Im übrigen kenne ich diese Library. Na ja. Den frühesten Zeit-Fix bekommt diese Library nicht nach zwei, sondern nach drei Minuten. Bei einwandfreiem Signal nach 3 bis 4 Minuten. Und wenn Du testest und noch ein Problem mit der Signalqualität vom DCF-Modul hast, dann versuche auch bitte nicht gleich eine Zeit zu bekommen, sondern versuche erstmal das Beispielprogramm "DCFPulseLength"! Solange Du mit dem Testprogramm DCFPulseLength keine stabilen Pulslängen angezeigt bekommst, mit einer Gesamtdauer von ca. 1 Sekunde, aufgeteilt in Pulse von ca. 100 und 900 msec ("Low") oder 200 und 800 msec ("High"), hast Du auch keine Chance auf ein Funktionieren des Zeitempfangs. Wenn Du das Programm laufen läßt, schließe am Arduino ein 2 bis 3 m langes USB-Kabel an und bewege den Arduino mit der DCF-Antenne mindestens 2 m von allen Störquellen weg, als da wären (unvollständige Aufzählung): - Monitore (Röhren wie LCD) - Computer - Energiesparlampen und Leuchtstofflampen - Schaltnetzteile Ohne exakten Sekundentakt am DCF-Modul kannst Du keine DCF-Zeitsignale empfangen. Und das Testprogramm DCFPulseLength zeigt Dir genau an, was für Impulse da von Deinem DCF-Modul empfangen werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.