gui / code optimierung

hallo!
also ich habe mit meinem arduino uno im prinzip eine zeitschaltuhr gebaut. die zeit läuft nur über delays, also sowas wie

pin high
warte 14 stunden
pin low
warte 10 stunden

das ganze funktioniert auch ganz gut, allerdings kommt mir die ganze geschichte sehr stümperhaft vor...

zunächst habe ich versucht einen DCF77 funkuhr empfänger anzubauen, damit ich das ganze mit richtigen uhrzeiten betreiben kann, leider hab ich das ding nicht zum laufen gekriegt und damit schon wieder aufgegeben.

jetzt ist meine nächste idee, dass ich ein gui baue wo ich die zeiten ändern kann, damit ich nicht immer ein neues programm raufziehen muss wenn ich die zeiten ändern will. ist das mit meinem jetzigen code überhaupt möglich? ich denk mal nicht, oder?

das ist jetzt eine sehr allgemeine frage, aber wie würde so etwas ablaufen, zb so?

arduino hat variable t (zb dauer die pin auf high sein soll)
arduino checkt in regelmässigen abständen ob über den serial ein geänderter wert für die variable übergeben wird und ändert diese ggf

das problem daran ist, dass es dann immer schwieriger wird den 24h rhythmus einzuhalten...

das klingt jetzt alles ein bischen verwirrend (bin ja auch blutiger anfänger), aber ich wäre über allgemeine tipps dankbar. also,

sollte ich erst das DCF77 zum laufen kriegen?
kriege ich auch ohne funkuhr einen gescheiten variablen 24h rhythmus hin?
gibt es ohne DCF77 alternativen zu diesen uneleganten delays?

vielleicht versteht ihr ja was ich meine^^.

gruss, unbezwingbart

Für Uhren im Allgemeinen und somit auch für Schaltuhren bieten sich sogenannte RTCs (Real Time Clock) an. Diese "zählen" unabhängig vom Mikrocontroller die Uhrzeit weiter und sind meist batteriegepuffert. Damit ist man auch nicht an die Empfangsqualität der DCF77-Empfänger gebunden.

Der DCF77 Empfänger ist kritisch. Ein PC stört ihn meist sehr zuverlässig. Ich bekam ihn nur mit reichlich Abstand vom PC und Arduino und in Bateriebetrieb zum laufen (Standort Bozen, hinter den Alpen, Abstand unter 500km vom Sender) Außerdem ist bei den meisten Empfängern der Ausgang hochohmig und darum ist ein Operationsverstärker als Impedanzwandler nachzuschalten ( einfach Signal vom DFC77 an + Eingang und Ausgang mit -Ringang verbinden. Der LM357 oder TL081 geht gut). Außerdem mußt Du bei den meisten DCF77 Empfängern ein Pin (enable) auf Masse legen. Die Dokumentation der verschiedenen DCF77 Empfänger ist auch dürftig.

Ich würde Dir ein RTC-Modul raten und ein LCD Display und 3 bis 4 Tasten.
So kannst Du die Ein-Ausschaltzeit mit Datum programmieren.

Denkanstoß: Eine Zeitschaltuhr könnte dir das Problem nicht auch lösen?

Grüße Uwe

DCF77 muss man auch decodieren !

http://www.dcf77.de/

DCF77 – Wikipedia

Da kommt nix von alleine an !

MfG