Hey Leute,
ich bin grade dabei eine kleine Funkuhr zu basteln und habe mir dafür
ein DFC77-Modul von Pollin und eine LED-Matrix mit MAX7912-Chip besorgt.
Das ganze soll auf einem Arduino (Nano) laufen.
Dank der Library von Udo Klein
(https://blog.blinkenlight.net/experiments/dcf77/binary-clock/) habe ich
die Uhr soweit zum Laufen bekommen - jedenfalls funktioniert die
Zeitsynchronisation.
Für die LED verwende ich die LedControl-Library
(http://playground.arduino.cc/Main/LedControl) - auch das funktioniert
problemlos.
Allerdings stoße ich auf Probleme, sobald beides zusammen laufen soll.
Sobald ich die LED-Matrix initialisiere, empfange ich keinerlei Werte
mehr vom DCF-Modul.
Das DCF-Modul hängt am Eingang A5, die Matrix an D10-D12.
Sobald ich das Programm von Udo durch die entsprechenden Zeilen für die
Matrix erweitere, schweigt das DCF-Modul komplett:
1
#include"LedControl.h"
2
LedControllc=LedControl(12,11,10,1);
Nehme ich die Initialisierung des LED-Moduls wieder raus, empfange ich
wieder klare Signale vom DCF-Modul.
Hat jemand eine Idee, woran dies liegen könnte?
Patrick S. schrieb:> Hat jemand eine Idee, woran dies liegen könnte?
Überleg mal wie das ständig angesteuert wird!
Lauter steile Schaltflanken auf etlichen Leitungen, das ergibt ne menge
hochfrequenter Störungen.
Da hilft meist nur, die Antenne ab zu setzen (Forums suche nutzen). Die
Flankensteilheit zu verringern, bringt auch schon was.
Teo D. schrieb:> Da hilft meist nur, die Antenne ab zu setzen (Forums suche nutzen). Die> Flankensteilheit zu verringern, bringt auch schon was.
Das DCF-Module (inkl. Antenne) ist bereits 2 Meter von der restlichen
Schaltung entfernt.
> Lauter steile Schaltflanken auf etlichen Leitungen, das ergibt ne menge> hochfrequenter Störungen. [Rechtschreibung so im Original]
Das Problem kann durchaus woanders liegen.
Patrick S. schrieb:> Das DCF-Module (inkl. Antenne) ist bereits 2 Meter von der restlichen> Schaltung entfernt.
Dann schickt Du die Störungen eventuell über diesen Weg zur Antenne.
Zeig mal den Schaltungsteil, wie Du die Antenne angebunden hast.
Obs an der LedControl lib liegt? Einfach mal ohne angeschlossen LED
Modul testen!?
Patrick S. schrieb:> Das DCF-Module (inkl. Antenne) ist bereits 2 Meter von der restlichen> Schaltung entfernt.
Trotzdem kannst du über einen unzweckmäßigen Aufbau und das Kabel die
Störungen bis dort hin verschleppen.
Poste mal Detailfotos und die Schaltpläne der verwendeten Baugruppen.
Laß mal die LED-Ansteuerung aktiv, trenne aber die Stromversorgung der
LEDs. Dann weißt du, ob der Fehler von der Ansteuerungsroutine kommt
oder von den Schaltstörungen.
Patrick S. schrieb:> Hey Leute,>> Nehme ich die Initialisierung des LED-Moduls wieder raus, empfange ich> wieder klare Signale vom DCF-Modul.>> Hat jemand eine Idee, woran dies liegen könnte?
Die Erfahrung habe ich mit den DCF Modulen ebenfalls gemacht.
Die Lösung ist eigentlich ganz einfach: man synchronisiert seine eigene
Zeit mit der DCF Zeit nur etwa einmal am Tag. Bspw. zu einer Zeit, wo
vielleicht eh keiner die Anzeige benutzt. Dazu schaltet man einfach die
LEDs ab und verwendet das DCF Signal.
Zwischen den Zeitpunkten lässt man einfach die Zeit im uC hochzählen,
etwa per 1 Tick/s.
Danke für die zahlreichen Antworten.
Die Schaltung ist zur Zeit sehr einfach aufgebaut. Ich habe mal
versucht, den Schaltplan zu skizzieren.
@nachtmix: ein Foto habe ich leider aktuell nicht, die Schaltung läuft
aktuell auch noch über ein Breadboard.
@Teo: eine andere Lib habe ich bereits getestet, mit dem selben
Ergebnis.
@asdf: auch ohne aktive Stromversorgung der LEDs ist kein Empfang
möglich.
Wenn die LED's noch leuchten (weil nicht ausgeschaltet) aber das
LedControl nicht initialisiert wurde, funktioniert der Empfang. Alleine
die Initialisierung des LedControl (darin wird u.a. der spi-transfer
initiiert) sorgt dafür, dass der Empfang abbricht.
@Wilhelm M.: daran habe ich auch schon gedacht, wäre aber nicht die
schönste Lösung. Ich muss mal testen, ob ein Ausschalten der LEDs über
die Library etwas bringt.
Mir kam heute Morgen die Idee, das DCF-Modul mit einem separaten
Mikrocontroller auszustatten (ggf. direkt mit einer RTC) und nur die
ausgelesene Uhrzeit via I2C an den Arduino zu übermitteln.
Patrick S. schrieb:> @asdf: auch ohne aktive Stromversorgung der LEDs ist kein Empfang> möglich.> Wenn die LED's noch leuchten (weil nicht ausgeschaltet) aber das> LedControl nicht initialisiert wurde, funktioniert der Empfang. Alleine> die Initialisierung des LedControl (darin wird u.a. der spi-transfer> initiiert) sorgt dafür, dass der Empfang abbricht.
Dann scheint es doch ein Softwareproblem zu sein. Ich würde mir das
Timing mal anschauen (unter Berücksichtigung der Interrupts). Die dürfen
sich natürlich nicht stören. Marc sagte das auch schon.
Eine eigene Frage?
Dieser Thread ist über 9 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.