Funkuhr modul mit Arduino die Zeit anzeigen

Hallo @all,

ich habe ein Problem, wo ich eure Hilfe brauche! es geht darum das ich mir aus eine Uhr "Tech Line Funkwetterstation" mal aufgemacht habe da der LCD kapput wahr. Der auf bau der Uhr wahr sehr übersichtlich und ich habe schönne beute bekommen 1. Funkuhr modul 1. empfänger modul 2.feuchtigkeitssensoren 2.temperatursensoren und einen modul was ich nicht zuordnen kann da eigentlich alle variablen für eine wetterstation ja schon ausgegeben werden.

aber jetzt zu mein Problem ich habe mir das Funk uhr model dan mal angesehn und 4 kabel sind dran vcc, +pon, tco, gnd bisjetzt konnte ich nur einen werd aus lesen "00011110001111....." aberwie kann ich das zu eine uhrzeit machen z.B. 11:11 UHR??

und kann mir einer sagen was das andere modul sein könnte ?

Hier mal ein paar Infos über die codierung des DCF77 Zeitsignals: http://www.dcf77.de/kodierschema-des-dcf77-signals/ http://www.prog-link.com/dcf77/dcf77-5.html

danke MaFu für die Links

cool also kann ich auch mit so ein modul jahr monat tag auslesen ?

Vcc und Gnd sollten klar sein: Versorgungsspannung und Masse. Pon bedeutet PowerOn, sorgt also dafür, dass man das Empfangsmodul abschalten kann, um bspw. Energie zu sparen. Richtig spannend ist nur TCO: Timer Clock. Da kommt das DCF77-Signal raus. Wie das ganze kodiert, kann man im Wikipedia-Artikel nachlesen, ich bin mir sicher, dass es aber schon eine entsprechende Library für den DCFF77-Empfang gibt. Auf solch eine Library würde ich in dem Fall zurückgreifen. Kommt statt dessen doch nur Datenmüll heraus, so kann das Signal unter Umständen auch invertiert vorliegen, man müsste es also hardwareseitig oder softwareseitig umformen.

beim dem einen link steht was dabei das das signal erst dekodiert werden muss kann ich das mit dem arduino ?? ich habe jetzt mal ein test gemacht mit

void setup() { pinMode(7,INPUT); Serial.begin(9600); } void loop() { delay(100); Serial.print(digitalRead(7) ); } so das ich auch ein werd habe aber ich bekomme immer noch nur 1und 0 zwahr in einm bestimmten muster aber ich komme da nicht mehr weiter :'(

Wie gesagt, such dir eine entsprechende Library, wenn du die Auswertung nicht selbst programmieren willst bzw. kannst. Ich würde bei dem Thema auch nur auf fertige Funktionen zurückgreifen. Ich hoffe, dass dein Codeschnipsel nur zur Veranschaulichung dienen soll, das delay in der Hauptschleife ist ja unerträglich. ;)

kannst du mir den sagen wo ich die library dafür finde? also die codeschipsel sind tatsächlich nur als veranschaulichung gedacht. und das delay das ist da weil ich sonst zuviele 0 und 1 kommen und ich noch weniger damit anfangen kann

DCF77 Library: http://gonium.net/md/wp-content/uploads/2006/11//dcf77-arduino-0.1.tar.gz Beschreibung dazu: http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/

kannst du mir den sagen wo ich die library dafür finde?

Versuchs mal mit Google, Suchbegriff “arduino library dcf77”

Und schon findet man die von MaFu erwähnten Links.

ich habe die datei in meine library reingehtan aber leider bekomme ich das immer noch nicht hin auch TCO habe ich schon auf pin 7 wie da steht habe ich vieleicht das falsche auf den arduino hochgeladen ??

??? Was hast Du wo reingetan?

Die DCF77 Library gehört in das Libraries Verzeichnis der Arduino IDE. Dann kannst Du die Library-Funktionen mit Deinem Programm ansprechen.

die Serial_DCF77_Signal.pde habe ich geladen äh mit meinem Programm ansprechen ?? also müste ich da noch ein program selber schreiben ?

Library kopiert, Beispielcode in den Arduino geladen. Auch mal das Beispiel angesehen? Wie hast DU die Ausgabe realisiert? Schue ich mir den Code an, wird da noch nichts dargestellt, außer dass eine LED angesteuert wird:

#include <DCF77.h>

#define redPin 13


int DCF77Pin=7;
int blinkPin=13;
int seconds=0;
int previousSecond =0;
int minutes=0;
int hours=0;
DCF77 myDCF=DCF77(DCF77Pin);


void setup(void) {
  pinMode(blinkPin, OUTPUT);
}



void loop(void) {
  int DCFsignal = myDCF.scanSignal();
  if (DCFsignal) {
    digitalWrite(blinkPin, HIGH);
  } else {
    digitalWrite(blinkPin, LOW);
  }
  hours=myDCF.hh;
  minutes=myDCF.mm;
  seconds=myDCF.ss;
  if (seconds != previousSecond) 
    myDCF.serialDumpTime();
  delay(20);
  previousSecond = seconds;
}

Du müsstest jetzt entweder die serielle Schnittstelle bemühen oder aber die Werte auf einem Display ausgeben.

#include <DCF77.h>

#define redPin 13

int DCF77Pin=7;
int blinkPin=13;
int seconds=0;
int previousSecond =0;
int minutes=0;
int hours=0;
DCF77 myDCF=DCF77(DCF77Pin);

void setup(void) {
Serial.begin(9600);
pinMode(blinkPin, OUTPUT);
}

void loop(void) {
int DCFsignal = myDCF.scanSignal();
if (DCFsignal) {
digitalWrite(blinkPin, HIGH);
} else {
digitalWrite(blinkPin, LOW);
}
hours=myDCF.hh;
minutes=myDCF.mm;
seconds=myDCF.ss;
if (seconds != previousSecond)
myDCF.serialDumpTime();
delay(20);
previousSecond = seconds;
Serial.println(blinkPin);
}

jetzt bekomme ich immer 13 13 13 13 und dan ab und zu
Time: 0:0:0 Date: 0.0.0 und dan wider 13 13 13

Wundert dich das tatsächlich? Du definierst die Variable blinkPin im Code als Integer mit dem Wert 13 und gibst, anstatt die Stunden, Minuten und Sekunden auszugeben, eben blinkPin (13) aus...

so ganz wundert es mich nicht weil leider habe ich auch noch nicht so viel erfahrung ! aber warum bekomme ich immer

Time: 0:0:7 Date: 0.0.0 100000.. Time: 0:0:8 Date: 0.0.0

raus??

Es sieht schon ganz gut aus, finde ich. Doch scheinbar hast du keinen Empfang, das kann mehrere Minuten dauern. Die Sekunden zählen aber schon, von daher sollte die Verdrahtung richtig sein. Was sagt die LED auf dem Arduino-Board? Wenn sie leuchtet, hast du Empfang, leuchtet sie nicht, musst du wohl noch etwas bis zur Synchronisation warten oder deinen Standort ändern.

Dir ist klar, dass du bis zu 2 Minuten warten musst bis das Signal einmal komplett empfangen wurde?

also die led leuchtet so ca im sek. tackt

aber wenn kommt
Time: 0:0:1 Date: 0.0.0
kommt danach
Time: 0:0:0 Date: 0.0.0
und dan
Time: 0:0:1 Date: 0.0.0
ich bin mir unsicher ab ich das da richtig mache

also 2 min hab eich noch nicht gewartet mach ich dan mal