Pages: [1]   Go Down
Author Topic: Funkuhr DCF77  (Read 1679 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So ich hab jetzt meine Funkuhr getestet: http://www.machzin.de/portfolio/funkuhr-mit-arduino-und-dem-dcf-77-modul/ nun will ich das Teil auf eine Platine löten. Wie ich den Controller mit Minimalausstattung draufkriege weiß ich schon (Quarz, Kondensatoren, etc). Nun noch ein paar Fragen:

LEDs hab ich mir diese geholt: http://www.ebay.de/itm/260881373590?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_3655wt_906 , die haben 12 Pins und da ich ja die Analogen Eingänge des Atmega 328 auch als Digital Ein-/Ausgänge nutzen kann, brauch ich ja keine Porterweiterung, bzw. Schieberegister (wenn ich nur die Uhrzeit anzeigen lassen will)?
Mit welcher Frequenz steuert man die LEDs an (Multiplexing)?
Woher bekomme ich 3,3 Volt für das DCF77 Modul? Spannungsteiler?

mfg knuppel
« Last Edit: November 08, 2012, 03:14:07 pm by komika » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 235
Posts: 20230
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sie 3,3V bekommst Du vom Arduino vom PIN 3,3V. bist Du sicher daß das DCF-Modul nicht mit 5V funktioniert?

Die Pinbelegung des Displays:
http://www.aplomb.nl/Niels_skn/7-Segment_QRD%20Niels.pdf Seite 35 Display 410561X. Laut dieser Beschreibung hat das Modul keine Doppelpunkte in der Mitte. Das kannst Du aber mit einem Multimeter kontrollieren.

Du kannst das Display mit dem Arduino ansteuern, Du brauchst aber 4 PNP- Transistoren (oder einen A2981) um die Anoden des Displays treiben zu können (den Gesamtstrom von 7 Segmenten kann Arduino nicht bringen).

Leider kann ich Dir keinen MAX7219 raten da dieser ein Display mit gemeinsamer Kathode braucht.

Ich rate Dir eine RTC. Der Empfang des DCF-Signals ist alles andere als einfach, sicher und unterbrechungsfrei. Oft durch Störungen hast Du keinen Empfang. Da kannst Du die Zeit aus dem RTC holen und bei DCF-Empfang die RTC synchronisieren.

Die 4 Stellen mußt Du multiplexen. Die Wiederholzeit sollte über 30Hz besser 60Hz liegen damit sie nicht flimmern)

Grüße Uwe


 
« Last Edit: November 03, 2012, 07:11:32 pm by uwefed » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Datenblatt des DCF77 sagt 3,3 Volt. Die 3,3 Volt hab ich am Arduino Board, wenn der Controller aber auf ne Platine kommt hab ich keine 3,3 V mehr.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 235
Posts: 20230
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Diese Kleinigkeit ist mir entfallen.

Ein Spannungsteiler mit 2 Widerständen ist eine schlechte Idee, weil die Spannung abhängig vom Strom ist und der Strom, den eine Schaltung braucht, nicht konstant ist.

Du brauchst einen Spannungsstabilisator, am besten eine Low-Dropout-Version.
Willst Du einen im SMD Gehäuße?

Grüße Uwe
 
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

SMD Gehäuse: Kommt drauf an ob man ihn schön löten kann, bzw. ob es keine andere alternative gibt.
Logged

0
Offline Offline
Faraday Member
**
Karma: 19
Posts: 3420
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Für die paar Mikroampere die das DCF Modul zieht würde ich einen Widerstand und eine 3.3V Zenerdiode nehmen. Im Vergleich zu den LEDs ist der zusätzliche Stromverbrauch zu vernachlässigen. Falls Du 5V hast, dann müssen am Widerstand 1.78 abfallen, für 1mA also 1.78 kOhm. Da Du aber eher weniger brauchst --> 2kOhm + 3.3V Zenerdiode und gut.
Logged

Check out my experiments http://blog.blinkenlight.net

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dankeschön für den Hinweis!
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Noch mal eine Frage. Ich hab folgenden Code verwendet:

Code:
/*
 * InternalClockSync.pde
 * example code illustrating time synced from a DCF77 receiver
 * Thijs Elenbaas, 2012
 * This example code is in the public domain.
 
  This example shows how to fetch a DCF77 time and synchronize
  the internal clock. In order for this example to give clear output,
  make sure that you disable logging  from the DCF library. You can
  do this by commenting out   #define VERBOSE_DEBUG 1   in Utils.cpp.
 */

#include "DCF77.h"
#include "Time.h"
int hours;
int minutes;
int digits;

 

#define DCF_PIN 13          // 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);
}

Wie kann ich den Minuten und Stunden eine Variable zuweisen?

Bei den Stunden müsste es ja so gehen:

stunden=hours();

aber wie geht das bei den Minuten?
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 235
Posts: 20230
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

minuten=(minute(); geht nicht?
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leider nein, hab ich schon probiert.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 235
Posts: 20230
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leider nein, hab ich schon probiert.
Und wie geht es nicht? Fehlermeldung oder kein vernünftiger Wert?
Grüße Uwe
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es wird eine null ausgegeben.

Bin mir jetzt grad nicht sicher...
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry, hab den Link oben aktualisiert:

http://www.machzin.de/portfolio/funkuhr-mit-arduino-und-dem-dcf-77-modul/
Logged

Pages: [1]   Go Up
Jump to: