Hallo, ich habe mir das DCF77 Modul von ELV geholt, nachdem ich bei einem schlecht verarbeitetem von ebay immer wieder Probleme mit dem Empfang hatte. Das neue Modul hat meistens ziemlich guten Empfang allerdings hat es mit keiner Library funktioniert, die ich probiert habe. Es kommt mir so vor als wäre das Signal von dem neuen Modul invertiert zu dem alten. Das Modul soll an einem Arduino Uno laufen und eine Nixie Uhr auf dem neuesten Stand halten. Die Nixie Uhr läuft auch schon mit einem RTC. Das ist das Modul https://www.elv.de/dcf-empfangsmodul-dcf-2.html Das ist die Library, die ich versuche zu verwenden http://thijs.elenbaas.net/downloads/ Hat noch wer das ELV Modul an einem Arduino und hat eine passende Library oder weiß was an der oben genannten Lib geändert werden muss? Ich habe selber schon ein bisschen an der Lib rum gespielt, aber da ich nur Hobby mäßig überhaupt was mit Etechnik und Informatik zu tun habe, lief das bis jetzt nicht so gut. Das Signal habe ich übrigens mit einem Beispiel Code von der gennanten Lib getestet: #define BLINKPIN 13 #define DCF77PIN 2 int prevSensorValue=0; void setup() { Serial.begin(9600); pinMode(DCF77PIN, INPUT); pinMode(13, OUTPUT); Serial.println("0ms 100ms 200ms 300ms 400ms 500ms 600ms 700ms 800ms 900ms 1000ms 1100ms 1200ms"); } void loop() { int sensorValue = digitalRead(DCF77PIN); **if (sensorValue==1 && prevSensorValue==0) { Serial.println(""); } digitalWrite(BLINKPIN, sensorValue); Serial.print(sensorValue); prevSensorValue = sensorValue; delay(10); } Bei mir sind die Zyklen aber nicht 1 Sekunde lang sondern schwanken gut 100 ms darum, ausser ich tausche in ** die 1 mit der 0. Dann kommt sowas raus: 111111111111111111111111111111111111111111111111111111111111111111111111 1111111100000000000000000000 Bei ihm sind die 1 und 0 dann allerdings vertauscht. http://thijs.elenbaas.net/2012/04/arduino-dcf77-radio-clock-receiver-signal/
Ich habe nicht geschaut was der AM Receiver liefert, aber ein NPN am Ausgang lässt auf invertiertes Signal schliessen. Sonst mach mal ein LED ran mit 10k Pullup (Opencollector) dann solltest du das schnell sehen. Grüsse, René
Ole schrieb: > es mit keiner Library funktioniert, die ich probiert habe. Was hat des Empfangsmodul mit der Library zu tun? Das Teil hat einen ordentlichen Takt auszugeben, alle Sekunde mit 0,1 oder 0,2 Sekunden Länge - kann man mit einer LED testen. > Es kommt mir so vor als wäre das Signal > von dem neuen Modul invertiert zu dem alten. Au man, ein Arduino aus dem Bilderbuch, Library kopieren, Shields aufstecken und keinerlei Denkvermögen. Du hast zwei Module, da kann man binnen weniger Minuten gucken, ob das Signal andersherum ist.
Die Signalinvertierung ist in der Lib von Thijs vorgesehen. Rufe einfach das DCF77 Objekt auf mit DCF77 DCF = DCF77(DCF77PIN, 0, LOW); LOW sorgt für die Invertierung, (HIGH oder weglassen = nicht-invertiert)
Der Typische Arduino User scheint neuerdings nicht nur auf Grundlagen zu verzichten, sondern auch noch auf das Lesen der Dokumentation. Sowohl in der Beschreibung der Library als auch in der Beschreibung ddes Funkmoduls wird auf die eventuell vorhandene Invertierung mitsamt Lösungsvorschlag hingewiesen!
Manfred schrieb: > Au man, ein Arduino aus dem Bilderbuch, Library kopieren, Shields > aufstecken und keinerlei Denkvermögen. Gibts für das Denken denn noch kein Denkshield mit passender Libary? Dann würde ich reklamieren und zuückschicken. :-)
René H. schrieb: > Ich habe nicht geschaut was der AM Receiver liefert, aber ein NPN > am > Ausgang lässt auf invertiertes Signal schliessen. Sonst mach mal ein LED > ran mit 10k Pullup (Opencollector) dann solltest du das schnell sehen. > > Grüsse, > René Hab die LED jetzt von GND auf den Signal Ausgang gelegt, und die blinkt schön im Sekundentakt mit 0.1-0.2s Pause. Das bestätigt jetzt, dass das Signal invertiert ist oder? Auch gast schrieb: > Signal invertieren, dann klappt's Ich habe auch schon versucht das Signal Hardware mässig zu invertieren, aber da ich nur begrenzte Materialien zur Verfügung habe und nicht weiss welche Sachen äquivalent zueinander sind lief auch das nicht so erfolgreich. Außerdem fände ich eine Software Lösung attraktiver und ist wahrscheinlich auch einfacher. Manfred schrieb: > Ole schrieb: >> es mit keiner Library funktioniert, die ich probiert habe. > > Was hat des Empfangsmodul mit der Library zu tun? Das Teil hat einen > ordentlichen Takt auszugeben, alle Sekunde mit 0,1 oder 0,2 Sekunden > Länge - kann man mit einer LED testen. > >> Es kommt mir so vor als wäre das Signal >> von dem neuen Modul invertiert zu dem alten. > > Au man, ein Arduino aus dem Bilderbuch, Library kopieren, Shields > aufstecken und keinerlei Denkvermögen. Du hast zwei Module, da kann man > binnen weniger Minuten gucken, ob das Signal andersherum ist. Das Teil gibt einen ordentlichen Takt aus aber den kriege ich leider nicht ausgewertet. Ich bin mir ziemlich sicher, dass das Signal invertiert ist nur leider hilft mir das nicht. Harry D. schrieb: > Die Signalinvertierung ist in der Lib von Thijs vorgesehen. > Rufe einfach das DCF77 Objekt auf mit > > DCF77 DCF = DCF77(DCF77PIN, 0, LOW); > > LOW sorgt für die Invertierung, (HIGH oder weglassen = nicht-invertiert) Habe ich grade probiert, funktioniert leider auch nicht aber danke. Ich finde es sehr schwer nach zu vollziehen was die Library macht/ woran es denn grade scheitert. Ich hatte 1 Semester Informatik und bei Eclipse konnte man da wenigstens ein bisschen mit dem Debugger verstehen was grade passiert, aber sowas geht bei Libraries nicht oder? Stefan U. schrieb: > Der Typische Arduino User scheint neuerdings nicht nur auf > Grundlagen zu > verzichten, sondern auch noch auf das Lesen der Dokumentation. > > Sowohl in der Beschreibung der Library als auch in der Beschreibung ddes > Funkmoduls wird auf die eventuell vorhandene Invertierung mitsamt > Lösungsvorschlag hingewiesen! Ich habe weder in der Beschreibung der Library noch in der von dem Funkmodul irgendetwas dazu gefunden, vielleicht habe ich aber auch einfach nicht genau verstanden was genau da stand. Also wenn du mir zeigen könntest, was ich nochmal lesen sollte, sehr gerne. Sind Arduinos und deren User der running Gag der Microcontroller Gemeinde, weil Arduinos einen einfachen Einstieg bieten und viele dann mit Halbwissen hier rum rennen oder was geht hier ab? Ich hatte leider nur ein Semester Informatik und 1 Semester Elektrotechnik, aber wenn ich alles studieren und verstehen wollte, was mich interessiert würde ich die Uni wahrscheinlich nicht wieder verlassen.
Ob das Signal invertiert ist kommt darauf an, was du denn für die normale Polarität hälst. Beide Varianten sind nämlich üblich. > Sind Arduinos und deren User der running Gag der Microcontroller Gemeinde Ja, das liegt an den auffälligen fragen, die sie hier immer wieder stellen. > Ich habe weder in der Beschreibung der Library noch in der von dem > Funkmodul irgendetwas dazu gefunden, Zur Library hat jemand weiter oben etwas geschrieben. Ich wiederhole nochmal: > Die Signalinvertierung ist in der Lib von Thijs vorgesehen. > Rufe einfach das DCF77 Objekt auf mit > DCF77 DCF = DCF77(DCF77PIN, 0, LOW); > LOW sorgt für die Invertierung, (HIGH oder weglassen = nicht-invertiert) In der aktuellen Beschreibung von ELV steht tatsächlich nichts mehr drin. Ich hatte vor etwa 15 Monaten eins gekauft, da war die Doku noch doppelt so umfangreich. Das Modul ist immer noch das selbe, nur nicht die Doku dazu. Wie ärgerlich.
Ole schrieb: > Sind Arduinos und deren User der running Gag der Microcontroller > Gemeinde, weil Arduinos einen einfachen Einstieg bieten und viele dann > mit Halbwissen hier rum rennen oder was geht hier ab? Hier sind mehrere Arduino-Anwender im Forum und werden nicht belästert. Der einfache Einstieg ist eine gute Sache, übel sind die Anwender, die unwillig sind, eigene Grundlagen zu erarbeiten. Ich habe in meinen Aufbauten viel Zeit mit Fehlersuche verbracht, war aber meistens schneller am Ziel, als hier irgendwelche Problemchen zu posten. > Ich hatte leider nur ein Semester Informatik > und 1 Semester Elektrotechnik, aber wenn ich > alles studieren und verstehen wollte, was mich interessiert würde ich > die Uni wahrscheinlich nicht wieder verlassen. Na hoffentlich hast Du die Uni verlassen und einen Weg eingeschlagen, der sich mehr auf die Hände fokussiert. Bei Dir vermisse ich eine logische Vorgehensweise. Du hast Eingangs eine simples Programm gepostet, wo per serial.print die Bits ausgegeben werden. Das DCF-Protokoll aka Datenmuster lässt sich im Internet klaglos finden. Ein Datenmuster "11111111111111111111111111111111111111111111111111111111111111111111111 1 1111111100000000000000000000" ist ganz sicher unsinnig, also stimmt bereits vorne beim Empfang etwas nicht.
Er tastet das Signal ab, die Serial Ausgabe zeigt den Pegel nur Zeit bezogen an. Die Ausgabe deutet darauf hin das dass Signal invertiert werden muss. Die eins muss 100ms bzw 200ms vorhanden sein. Der Abstand zwischen der ersten 1 sollte genau 1sec. Viele Empfänger verschleißen den Impuls so das dieser nicht mehr wirklich 100ms,200ms oder 1000ms ist. Deswegen lässt sich auch hier ein gewisses Fenster einstellen.
1 | #define DCFRejectionTime 700 // Pulse-to-Pulse rejection time.
|
2 | #define DCFRejectPulseWidth 50 // Minimal pulse width
|
3 | #define DCFSplitTime 180 // Specifications distinguishes pulse width 100 ms and 200 ms. In practice we see 130 ms and 230
|
4 | #define DCFSyncTime 1500 // Specifications defines 2000 ms pulse for end of sequence
|
vermutlich passt das zu seinen Empfänger nicht mehr ganz so gut womit die Auswertung nicht mehr funktioniert. Anhand der Serial Ausgabe kann man ungefähr abschätzen ob diese Parameter passen. Wie immer mit vorgefertigten Code man muss sich damit beschäftigen und auch das Prinzip verstehen ;) und wenn dir das gelungen ist kannst du durch mit zählen das Signal sogar auswerten.
:
Bearbeitet durch User
Hallo, weil der DCF-Empfängers einen Open-Collector-Ausgang hat braucht man eine Versorgungsspannung. Ändere deshalb bitte im Programm die Zeile: pinMode(DCF77PIN, INPUT); in pinMode(DCF77PIN, INPUT_PULLUP); ab. Gruß Hansi
Harry D. schrieb: > Die Signalinvertierung ist in der Lib von Thijs vorgesehen. > Rufe einfach das DCF77 Objekt auf mit > > DCF77 DCF = DCF77(DCF77PIN, 0, LOW); > > LOW sorgt für die Invertierung, (HIGH oder weglassen = nicht-invertiert) Hat jetzt doch noch funktioniert. Vielen vielen Dank dafür. Woher wusstest du das denn? Weil ich hab das echt nirgendwo gesehen.
ab und zu in den Quelltext solcher Librarys schauen. Hier speziell: DCF77.h am Ende, hinter public:
Ole schrieb: > Hallo, > ich habe mir das DCF77 Modul von ELV geholt, nachdem ich bei einem > schlecht verarbeitetem von ebay immer wieder Probleme mit dem Empfang > hatte. Das neue Modul hat meistens ziemlich guten Empfang allerdings hat > es mit keiner Library funktioniert, die ich probiert habe. Es kommt mir > so vor als wäre das Signal von dem neuen Modul invertiert zu dem alten. > Das Modul soll an einem Arduino Uno laufen und eine Nixie Uhr auf dem > neuesten Stand halten. Die Nixie Uhr läuft auch schon mit einem RTC. > Hi Ole, vergesse mal bitte ganz schnell was hier geschrieben wurde so von wegen Library suchen oder umschreiben. Auch wenn du dein Problem schon selbst gelöst hast und eine Lösung geboten wurde, hier noch eine Lösung. Ich bin mit Sicherheit KEIN Programmierer. Ehrlich gesagt kenne ich mich in dieser Materie auch keineswegs großartig aus. Aber ich hatte das gleiche Problem wie du. Aus lauter Verzweiflung habe ich mir sogar noch ein Modul von Conrad geholt, der hat zwei Ausgänge, einen mit invertiertem und einen ohne invertiertem Signal. Ich hatte ein einfaches Sketch, habe zuerst den ELV Empfänger dran und nichts kam raus außer Signale.... Conrad Modul dran und das Ding ging, sehr seltsam..... Nimm einfach den angehängten Sketch, dieser wurde schon so umgeschrieben dass damit ein ELV Modul läuft. Der Witz an diesem Sketch ist folgender Eintrag: DCF77 DCF = DCF77(DCF_PIN, DCF_INTERRUPT, false); // false wird gesetzt bei invertiertem Signal ,z.B ELV-Modul. Conrad hat invertiertes und nicht invertiertes Signal. Nicht invertiertes Signal wird mit true aktiviert. Ganz einfach, true und false. Das hat mich Stunden an Nerven gekostet. Ich hab diesen Sketch mit beiden Modulen getestet, sogar das Conrad Modul mit und ohne invertiertem Signal, jeweils dementsprechend abgeändert. Was auch wichtig beim ELV Modul ist: Mindestens ein 10k PullUp Widerstand, besser noch 20k. Auch beim Conrad Modul, ich habe aktuell bei beiden Modulen 20k und einen 100nF Kerko zwischen Signal und GND! Den Rest des Sketches musst du deinem Programm halt dementsprechend anpassen.
:
Bearbeitet durch User
Jörg R. schrieb: > Was auch wichtig beim ELV Modul ist: Mindestens ein 10k PullUp > Widerstand, besser noch 20k. Auch beim Conrad Modul, ich habe aktuell > bei beiden Modulen 20k und einen 100nF Kerko zwischen Signal und GND! Das Datenblatt vom DCF-2 (ELV) sagt 1k bis 500k, der verbaute BC848 darf max. 200mA. Demnach bezieht sich der 1k wohl auf 15V UB +25% Sicherheit. Also sind 10 oder 20k eine gute Wahl, es sei denn die Stromversorgung erfolgt per Akku oder Batterie, dann wird man sicher noch etwas höher gehen wollen. Der letzte Satz ist etwas missverständlich: gemeint ist sicher 20k zwischen Signal und UB, Kerko zwischen Signal und GND. Frage hierzu: Ist das 1Hz Signal Deiner Erfahrung nach so schlecht, dass es hier eines Kondensators bedarf? (Wobei ein Tau von 2ms beim DCF ja nicht stört) Gruß Dominik
Ole schrieb: [..] > Sind Arduinos und deren User der running Gag der Microcontroller > Gemeinde, weil Arduinos einen einfachen Einstieg bieten und viele dann > mit Halbwissen hier rum rennen oder was geht hier ab? Die Leute haben ein Problem mit dummen und faulen Leuten, da scheint es in der Arduino-Ecke Einige zu geben. > Ich hatte leider > nur ein Semester Informatik und 1 Semester Elektrotechnik, aber wenn ich > alles studieren und verstehen wollte, was mich interessiert würde ich > die Uni wahrscheinlich nicht wieder verlassen. Nee..ne? Ein Semester Informatik und ein Semester Elektrotechnik...nur? Was hast Du studiert? Die Studentenkneipe oder die Weiber? Für dich scheint der Fall klar zu sein, Du brauchst entweder ein Negator-Shield oder einen Negator-Sketch..oder wie das heißt... Gruß, Holm
Beitrag #6235025 wurde von einem Moderator gelöscht.
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.