Forum: Mikrocontroller und Digitale Elektronik DCF Empfangsproblem


von Dominik G. (moondryl)


Lesenswert?

Hallo,
ich versuche gerade das DCF-Signal mit dem Empfänger von Pollin 
auszulesen. Allerdings scheint es doch etwas schwieriger zu sein als ich 
dachte. Ich versuche einfach nur das rohe Signal auszulesen, um erstmal 
eine Vorstellung davon zu bekommen.

An einen Arduino angeschlossen versuche ich es mit folgendem Code:

void setup() {
  pinMode(9, INPUT);
  Serial.begin(57600);
}


  int DCFValue = 0;


void loop() {
   DCFValua = digitalRead(9);
   Serial.println(DCFValue);
   delay(1000);
}

Gehe ich da etwas zu naiv an die Sache ran?

Es kommen bei mir nämlich nur Nullen an.

Angeschlossen habe ich den Empfänger folgendermaßen: Vcc ist klar. GND 
auch. PON geht auf Masse und Data auf Pin 9 des Arduinos.

Grüße!

von Wolfgang (Gast)


Lesenswert?

Dominik Gebhardt schrieb:
> Ich versuche einfach nur das rohe Signal auszulesen, um erstmal
> eine Vorstellung davon zu bekommen.

Bei Signalproblemen ist klassische Signalverfolgung von Stufe zu Stufe 
angesagt, in diesem Fall z.B. ein Oszi am Ausgang des 
Empfängerbausteins.

von Sauger (Gast)


Lesenswert?

Mahlzeit,

Dominik Gebhardt schrieb:
> Gehe ich da etwas zu naiv an die Sache ran?

ja. Nicht jeder hier im Forum nutzt einen Arduino. Kommentiere deine 
Quellen und poste diese im gesamten.

MfG

von Dominik G. (moondryl)


Lesenswert?

Hmm, ein Oszillator ist gerade nicht wirklich griffbereit. Werde es aber 
demnächst mal damit versuchen.

Was meinst du mit Quellen auskommentieren? Das ist eigener Code bzw. wie 
ich denke, wie es eigentlich funktionieren sollte, ein digitales Signal 
auszulesen.

Ein Pin wird als Input für externe Hardware gesetzt. Jede Sekunde wird 
geschaut, ob dort eine 0 oder eine 1 ankommt. Dieser Wert wird über 
einen Serial Monitor ausgegeben.

Oder habe ich dich jetzt falsch verstanden?

Danke schonmal für die Hinweise!

Grüße

von Sauger (Gast)


Lesenswert?

Mahlzeit,

Die DCF77 Signale liegen unterhalb von 1. Sekunde.

http://de.wikipedia.org/wiki/DCF77

Abschnitt "Zeitinformation"

MfG

von Wolfgang (Gast)


Lesenswert?

Dominik Gebhardt schrieb:
> Hmm, ein Oszillator ist gerade nicht wirklich griffbereit.

Wolfgang schrieb:
> ein Oszi am Ausgang des Empfängerbausteins.

Damit war auch mehr ein Oszilloskop gemeint ;-)
Sorry für das Kürzel.
Ein Oszillator nützt dir nur als Testsignal beim Prüfen von Verstärkern. 
Zum Glück sendet der DCF77 durchgehend und liefert dir ein passendes 
Signal.

von Peter D. (peda)


Lesenswert?

Häng erstmal nur ne LED an den Empfänger, dann siehst Du, ob Du 
überhaupt Empfang hast.
Und betreibe ihn mit ner Batterie (keine Störungen über das Netzteil).

Peter

von Wolfgang (Gast)


Lesenswert?

Dominik Gebhardt schrieb:
> Ein Pin wird als Input für externe Hardware gesetzt. Jede Sekunde wird
> geschaut, ob dort eine 0 oder eine 1 ankommt.

Da wirst du schon häufiger auf das Signal gucken müssen. Die 
Trägerabsenkungen haben eine Dauer von 100 bzw. 200 ms. Wenn du nicht 
immer einen konstanten Wert auslesen möchtest, mußt du das Signal also 
deutlich häufiger abtasten.

von Asko B. (dg2brs)


Lesenswert?

Hallo

Ich habe auch ein DCF-Modul von Pollin.
Zu Hause funktioniert das einwandfrei.
Selbst neben Monitor oder aehnlichen.
Nach ca 2min. synchronisiert sich das Teil.
Angeschlossen ist es am "Pollin-Spiel".
Ort ist hier am Rand von Berlin.

Nun hab ich mal spasshalber den kleinen
Testaufbau eingepackt und mit nach
Györ (Ungarn) genommen.
Dort war dann kein empfang mehr moeglich.
Die LED blinkt zwar, aber selbst nach
mehreren Stunden und antennendrehen
war keine synchronisation moeglich.

Das nur mal zu Info.

Gruss Asko.

von GroberKlotz (Gast)


Lesenswert?

Hallo Dominik
schalte doch erst mal an den Ausgang des Pollin-Moduls einen Transistor 
z.B BC547 mit einer LED im Kollektorkreis. Dann kannst Du bereits die 
unterschiedliche Dauer der Impulse  100/200ms und die Impulspause vor 
Sekunde 0 mit bloßem Auge erkenne. Der Ausgang des Moduls ist nur 
schwach, glaube mit ca. 5µ belastbar!
mfg GroberKlotz

von thomas (Gast)


Lesenswert?

Sieht mir aus, wie eine Funktion, die alle 1s den UART ausliest. Wenn 
ja, wie kommst du dann auf die Baudrate 57600? Abgesehen davon ist das 
DCF kein serieller Datenstrom mit Startbit und Stoppbit und so. 
Vielleicht interpretiere ich den Code auch falsch, aber wenn nicht, 
kannst du es so nicht machen...

von thomas (Gast)


Lesenswert?

Ah ok, du gibst den eingelesenen Wert nur über UART raus. Sorry. Falls 
das Modul einen open-Collector Ausgang hat, Ware ein pullup-Widerstand 
vllt ganz hilfreich falls du noch keinen hast...

von Sauger (Gast)


Lesenswert?

Moin,

thomas schrieb:
> Vielleicht interpretiere ich den Code auch falsch, aber wenn nicht,
> kannst du es so nicht machen...

deshalb meinte ich

Sauger schrieb:
> Kommentiere deine Quellen und poste diese im gesamten.

MfG

von skua (Gast)


Lesenswert?

PON muss erst mal eine Sekunde auf high Pegel und erst dann auf low.

Also etwa so.
1
int PowerOnPin = 13;
2
int DCFDataPin = 9;
3
4
void setup() {
5
  pinMode(PowerOnPin,OUTPUT);
6
  pinMode(DCFDataPin, INPUT);
7
8
  digitalWrite(PowerOnPin, HIGH);
9
  delay(1000);
10
  digitalWrite(PowerOnPin, LOW);
11
12
  Serial.begin(57600);
13
}
14
15
void loop() {
16
   Serial.println(digitalRead(DCFDataPin));
17
   delay(50);
18
}

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
Noch kein Account? Hier anmelden.