DCF-77 Receiver

Hallo

I write test code:

// constants won't change. They're used here to
// set pin numbers:
const int DCF77Pin = 8; // the number of the DCF777 pin
const int ledPin = 10; // the number of the LED pin

// variables will change:
int DCF77State = 0; // variable for reading the DCF77 signall
int i = 0; // Secondes of tHe minutes
int DCF77State_anders = 0 ; // Hat sich der Zustand geändert ?

unsigned long t1 = 0; // Zeit beginn
unsigned long t2 = 0 ; // Zeit Ende
int tH = 0 ; // delta Zeit HIGH
int tL = 0 ; // delta Zeit LOW
int t = 0 ; // delta Zeit

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the DCF77Pin pin as an input:
pinMode(DCF77Pin, INPUT);
Serial.begin(9600);
}

void loop(){
// read the state of the DCF77Pin value:
DCF77State = digitalRead(DCF77Pin);

// check if the DCF77Pin is HIGH or Low.
// if it is, the buttonState is HIGH:
if (DCF77State == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
// cHecH if DCF77Pin State Has cHanged?
// was it LOW tHan go tHis way
if (DCF77State_anders != HIGH) {
// calculate tHe time for tHe last state
t2 = millis();
t = t2-t1;
t1= millis();
// last state was a LOW State
tL = t;
// know is tHe HigH state
DCF77State_anders = HIGH;

Serial.print("DCF77State:");
Serial.print(DCF77State);
Serial.print(" t:");
Serial.print(t);
Serial.print(" tH:");
Serial.print(tH);
Serial.print(" tL:");
Serial.print(tL);
Serial.print(" Summe:");
Serial.print(tL+tH);

// is tHis tHe beginning of an new minute?
if ((tL+tH)>=1800)
{
// Serial.print(" OOO");
i=1;
}
Serial.print(" i:");
Serial.print(i++);
// is tHe Information a we got a HIGH or LOW Bit?
if (tH >= 150)
Serial.println(" HIGH");
else
Serial.println(" LOW:");
// wait a liddle time
delay(20);
}

}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
if (DCF77State_anders != LOW)
{
t2 = millis();
t = t2-t1;
t1= millis();
tH = t;
DCF77State_anders = LOW;

Serial.print("DCF77State:");
Serial.print(DCF77State);
Serial.print(" t:");
Serial.print(t);
Serial.print(" tH:");
Serial.print(tH);
Serial.print(" tL:");
Serial.print(tL);
Serial.print(" Summe:");
Serial.print(tL+tH);
Serial.print(" i:");
Serial.println(i);
// if ((tL+tH)>=1800)
// {
// Serial.println(" OOO");
// i=0;
// }
// else Serial.println(" ");
delay(20);

}
}

delay(20);

}

THis is tHe output to tHe setial line:

DCF77State:0 t:136 tH:136 tL:886 Summe:1022 i:62
DCF77State:1 t:868 tH:136 tL:868 Summe:1004 i:62 Low:
DCF77State:0 t:159 tH:159 tL:868 Summe:1027 i:63
DCF77State:1 t:1845 tH:159 tL:1845 Summe:2004 i:1 HIGH
DCF77State:0 t:181 tH:181 tL:1845 Summe:2026 i:2
.....
.....
DCF77State:0 t:243 tH:243 tL:888 Summe:1131 i:20
DCF77State:1 t:742 tH:243 tL:742 Summe:985 i:20 HIGH
DCF77State:0 t:137 tH:137 tL:742 Summe:879 i:21
DCF77State:1 t:867 tH:137 tL:867 Summe:1004 i:21 Low:
DCF77State:0 t:222 tH:222 tL:867 Summe:1089 i:22
DCF77State:1 t:775 tH:222 tL:775 Summe:997 i:22 HIGH
DCF77State:0 t:221 tH:221 tL:775 Summe:996 i:23
DCF77State:1 t:783 tH:221 tL:783 Summe:1004 i:23 HIGH
DCF77State:0 t:222 tH:222 tL:783 Summe:1005 i:24
DCF77State:1 t:784 tH:222 tL:784 Summe:1006 i:24 HIGH
DCF77State:0 t:201 tH:201 tL:784 Summe:985 i:25
DCF77State:1 t:804 tH:201 tL:804 Summe:1005 i:25 HIGH
DCF77State:0 t:117 tH:117 tL:804 Summe:921 i:26
DCF77State:1 t:879 tH:117 tL:879 Summe:996 i:26 Low:
DCF77State:0 t:368 tH:368 tL:879 Summe:1247 i:27
DCF77State:1 t:616 tH:368 tL:616 Summe:984 i:27 HIGH
DCF77State:0 t:116 tH:116 tL:616 Summe:732 i:28
DCF77State:1 t:888 tH:116 tL:888 Summe:1004 i:28 Low:
DCF77State:0 t:138 tH:138 tL:888 Summe:1026 i:29
DCF77State:1 t:881 tH:138 tL:881 Summe:1019 i:29 Low:
DCF77State:0 t:117 tH:117 tL:881 Summe:998 i:30
DCF77State:1 t:867 tH:117 tL:867 Summe:984 i:30 Low:
DCF77State:0 t:242 tH:242 tL:867 Summe:1109 i:31
DCF77State:1 t:763 tH:242 tL:763 Summe:1005 i:31 HIGH
DCF77State:0 t:222 tH:222 tL:763 Summe:985 i:32
DCF77State:1 t:783 tH:222 tL:783 Summe:1005 i:32 HIGH
DCF77State:0 t:138 tH:138 tL:783 Summe:921 i:33
DCF77State:1 t:858 tH:138 tL:858 Summe:996 i:33 Low:
DCF77State:0 t:137 tH:137 tL:858 Summe:995 i:34
DCF77State:1 t:867 tH:137 tL:867 Summe:1004 i:34 Low:
DCF77State:0 t:117 tH:117 tL:867 Summe:984 i:35
DCF77State:1 t:867 tH:117 tL:867 Summe:984 i:35 Low:
DCF77State:0 t:242 tH:242 tL:867 Summe:1109 i:36
DCF77State:1 t:763 tH:242 tL:763 Summe:1005 i:36 HIGH
DCF77State:0 t:222 tH:222 tL:763 Summe:985 i:37
DCF77State:1 t:796 tH:222 tL:796 Summe:1018 i:37 HIGH
DCF77State:0 t:201 tH:201 tL:796 Summe:997 i:38
DCF77State:1 t:783 tH:201 tL:783 Summe:984 i:38 HIGH
DCF77State:0 t:221 tH:221 tL:783 Summe:1004 i:39
DCF77State:1 t:784 tH:221 tL:784 Summe:1005 i:39 HIGH
DCF77State:0 t:222 tH:222 tL:784 Summe:1006 i:40
DCF77State:1 t:775 tH:222 tL:775 Summe:997 i:40 HIGH
DCF77State:0 t:116 tH:116 tL:775 Summe:891 i:41
DCF77State:1 t:888 tH:116 tL:888 Summe:1004 i:41 Low:
DCF77State:0 t:117 tH:117 tL:888 Summe:1005 i:42
DCF77State:1 t:889 tH:117 tL:889 Summe:1006 i:42 Low:
DCF77State:0 t:222 tH:222 tL:889 Summe:1111 i:43
DCF77State:1 t:763 tH:222 tL:763 Summe:985 i:43 HIGH
DCF77State:0 t:221 tH:221 tL:763 Summe:984 i:44
DCF77State:1 t:773 tH:221 tL:773 Summe:994 i:44 HIGH
DCF77State:0 t:200 tH:200 tL:773 Summe:973 i:45
DCF77State:1 t:804 tH:200 tL:804 Summe:1004 i:45 HIGH
DCF77State:0 t:222 tH:222 tL:804 Summe:1026 i:46
DCF77State:1 t:784 tH:222 tL:784 Summe:1006 i:46 HIGH
DCF77State:0 t:222 tH:222 tL:784 Summe:1006 i:47
DCF77State:1 t:784 tH:222 tL:784 Summe:1006 i:47 HIGH
DCF77State:0 t:138 tH:138 tL:784 Summe:922 i:48
DCF77State:1 t:857 tH:138 tL:857 Summe:995 i:48 Low:
DCF77State:0 t:116 tH:116 tL:857 Summe:973 i:49
DCF77State:1 t:888 tH:116 tL:888 Summe:1004 i:49 Low:
DCF77State:0 t:96 tH:96 tL:888 Summe:984 i:50
DCF77State:1 t:907 tH:96 tL:907 Summe:1003 i:50 Low:
DCF77State:0 t:221 tH:221 tL:907 Summe:1128 i:51
DCF77State:1 t:784 tH:221 tL:784 Summe:1005 i:51 HIGH
DCF77State:0 t:222 tH:222 tL:784 Summe:1006 i:52
DCF77State:1 t:763 tH:222 tL:763 Summe:985 i:52 HIGH
DCF77State:0 t:137 tH:137 tL:763 Summe:900 i:53
DCF77State:1 t:858 tH:137 tL:858 Summe:995 i:53 Low:
DCF77State:0 t:137 tH:137 tL:858 Summe:995 i:54
DCF77State:1 t:888 tH:137 tL:888 Summe:1025 i:54 Low:
DCF77State:0 t:222 tH:222 tL:888 Summe:1110 i:55
DCF77State:1 t:763 tH:222 tL:763 Summe:985 i:55 HIGH
DCF77State:0 t:137 tH:137 tL:763 Summe:900 i:56
DCF77State:1 t:867 tH:137 tL:867 Summe:1004 i:56 Low:
DCF77State:0 t:138 tH:138 tL:867 Summe:1005 i:57
DCF77State:1 t:859 tH:138 tL:859 Summe:997 i:57 Low:

I want to Have code witH interrupt funktionality. So I Have to use tHe otHer code and tHe CONRAD Receiver?

Or is tHere a problem in the Signal LOW and HIGH cHanged. So I need a transistor and 2 Resistors to change a LOW in a HIGH?

Or is tHere an otHer Problem?

MaiK

Hallo,

I bougHt tHe Receiver from www.reicHelt.de "DCF77 MODUL".

I tryed the code from:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1231336382

but notHing Happend.

So I write tHe posted test code.

I want to use code witH interrupt funktionality. So I Have to use tHe otHer code and tHe CONRAD Receiver?

Or is tHere a problem in the Signal LOW and HIGH cHanged. So I need a transistor and 2 Resistors to change a LOW in a HIGH?

Or is tHere an otHer Problem?

MaiK

Use the following tutorial with the Conrad Receiver.

http://www.rudiniemeijer.nl/wordpress/?p=516

Yes, I know, but my Netherland speeking ist not so good.

I try to fix the problem with my receiver.

I read in the reference the only Pin 1 and 2 are able to handle with external interrupts. I connect my receiver with pin 8. May this is the Problem.

Maik