Netzsynchroner Langzeittimer      

von Hubert Freisinger, OE3FHA                       
 
                      Elektronik-Labor  Bastelecke  Projekte  Mikrocontoller                         


 
Siehe auch: Lanzeittimer für Ladegeräte

Mit Toleranzen zu leben hat man im langen Leben eines Technikers gelernt, Abweichungen über ein gewisses Maß müssen beseitigt werden. In Europa haben wir das Glück mit sehr genauem 50Hz Netzwechselstrom versorgt zu werden. Trotz der Komplexität des europäischen Netzverbundes sind die EVU's bestrebt, über längere Zeit, mit langsamen Frequenzkorrekturen eine gute Synchronität zu gewährleisten.

Warum nun die 50Hz als Zeitbasis? Ein externer Quarzgenerator ist gut jedoch benötigt er Strom und wandert über lange Zeit ebenfalls. Ich will mit einem Minimalaufwand an Bauteilen und verbrauchter Energie ein Maximum an Erfolg. Noch ist die Sicherheit des Netzes so gut das ohne "Notstromversorgung" und Quarzgenerator dies zu bewerkstelligen ist. Dar Timer selbst benötigt unter einer KW/h im Jahr!

Was hat sich geändert: Wait ist lt. Datenblatt in BASCOM mit seinem Parameter nicht definiert, mein Versuch hohe Raten einzugeben war, wie wir jetzt wissen, ein Schlag ins Wasser. Also machte ich die Lösung mit Zeitschleifen. die sind jedoch sehr schwer zu kalibrieren und müssen für jeden Prozessor aus Toleranz-Gründen neu angepasst werden. So hatte ich die Idee den Tiny13 mit den vorhandenen 50Hz zu synchronisieren. Dazu musste das Signal einem Port zugeführt werden der die Zeitschleife genau um 20 Millisekunden verzögert. Die Schleife selbst benötigt ca. 160µs und wird mit einem Wait um 13ms verzögert, damit steigt die Portabfrage bei einer positiven Halbwelle ein und wartet auf fallende Flanke. Diese 13ms können variiert werden, dürfen jedoch auf keinen Fall kürzer als 11ms+Schleifenlaufzeit und länger als 18ms+Schleifenlaufzeit sein, es verändert sich aber etwas die Zeit zum synchronisieren nach der Inbetriebnahme. Der Rest ist warten auf eine Freigabe nach 20ms für den nächsten Zyklus.




Dazu habe ich mit dem Spannungsteiler R6, R7 (2:1) klare Verhältnisse am PORTB.2 / Pin7 geschaffen. Die Grätzbrücke wird nach C1/0,1µF einseitig gegen GND angezapft und liefert wie das Oszilloskop zeigt einen guten Rechteck mit +6,2 und -0,8V in der Spitze, das Ergebnis aus Zenerspannung 5,1V und Si-Dioden Schwellwert der Grätzbrücke. Das ist auch der Grund warum niedervoltige Dioden wie 1N4148 oder 1N4001 problemlos zum Einsatz kommen können. Mit dem Spannungsteiler wird die Spannung für den µC auf erträgliche +4V und -0,5V herabgesetzt welche lt. Datenblatt ohne Problem verarbeitbar sind (siehe Oszi-Bild des Rechteck vor dem Spannungsteiler).

 

Es muss nun nur mehr der richtige Schleifenwert Z mit dem Taschenrechner errechnet und in den Schleifen eingesetzt werden. Als Grundgerüst dient folgende Tabelle.

Richtwerte für Variable Z und das Vielfache von 20 Millisekunden:

Z =               1 entspricht  20 Millisekunden
Z =             50 entspricht    1 Sekunde (50Hz)
Z =        3 000 entspricht    1 Minute
Z =    180 000 entspricht    1 Stunde
Z = 4 320 000 entspricht    1 Tag

Max. Wert für Z = 4 294 967 295 = DWORD, entspricht 23 860,92942Stunden oder 994,2 Tagen.

Beispiel:

Z = 186 154 entspricht 1 Stunde, 2 Minuten, 3 Sekunden und 80 Millisekunden.


Dowbload: TimerNetzsynchron.zip

'Angedacht für Ladegeräte die eine eigenständige Ladekontrolle haben, oder
'für wiederkehrende Erhaltungsladung mit Dauerstrom auf Zeit
'
'Ein Quarz-Takt ist nicht erforderlich da mit der Netzfrequenz = 50 Hz
'synchronisiert wird. Ab Start des Timers wird die einprogrammierte Zeit mit der
'Netzfrequenz konstant gehalten, diese wird bekanntlich von den EVU's über längere
'Zeit wieder exakt auf 50 Hz Synchronität gebracht.



'Angaben für den Kompiler
'------------------------

'Prozessor
$regfile = "attiny13.dat"

'intern Takt 1,2 MHz
$crystal = 1200000

$hwstack = 10
$swstack = 15
$framesize = 10

Dim Z As Dword

'conf Port's B auf Eingabe=0, Ausgabe=1
Ddrb = &B0001_1000

'Strom sparen
Stop Adc 'Switch off ADC
Stop Ac 'Switch off the power to the Analog Comparator
Reset Acsr. Acbg 'Disable Analog Comparator Bandgap Select

'Programmschleife
'----------------
Netz_ein:

Z = 0 'Zähler auf 0
Portb.4 = 0 'Grüne LED aus
Portb.3 = 1 'SSR und rote Led ein

Schleife_ein:

Z = Z + 1 'Zähler um 20ms erhöhen

Do
Loop Until Pinb.2 = 0 'weiter bei neg. Halbwelle

Waitms 13 'warten auf pos. Halbwelle

If Z = 1440000 Then Goto Netz_aus '1440000 = 8H ein

Goto Schleife_ein




Netz_aus:

Z = 0 'Zähler auf 0
Portb.3 = 0 'SSR und rote Led aus
Portb.4 = 1 'Grüne LED ein

Schleife_aus:

Z = Z + 1 'Zähler um 20ms erhöhen

Do
Loop Until Pinb.2 = 0 'weiter bei neg. Halbwelle

Waitms 13 'warten auf pos. Halbwelle

If Z = 192960000 Then Goto Netz_ein '192960000 = 44T/16H aus

Goto Schleife_aus

Zu beachten ist immer dass die Einschaltzeit von der Gesamtzeit für ein korrektes Ergebnis abgezogen werden muss. Also in meinem Fall 45 Tage beinhalten 8 Stunden aktiv und 44 Tage 16 Stunden warten. Wird jetzt der Timer um 12:00 Uhr Mittag in Betrieb genommen so wird er (ohne Stromausfall) 45 Tage später um 12:00 Uhr wieder aktiv. Ganz kurze Sromausfälle (EVU Umschaltvorgänge) sollte der Siebkondensator abfangen.

Eine Bemerkung noch zum SSR:

die meisten SSR haben intern einen sog. Snubber-Kondensator, dieser liegt über dem Triac und kann ein kurzes periodisches anspringen eines Schaltnetzteil verursachen. Der Ladekondensator eines sparsamen Schaltnetzteil lädt sich netzseitig über diesen Snubber-Kondensator langsam auf bis der Wandlertransistor durchschaltet um nach entladen des Elkos gleich wieder zu sperren. Grundsätzlich verursacht dieses periodische Pumpen kein Problem. Wem das nicht gefällt der muss auf ein gutes altes Relais umsteigen, natürlich mit der Konsequenz eines erhöhten Stromverbrauch auch in der Ruhephase, der Kondensator C1 muss größer werden. Bei Trafonetzteilen tritt aufgrund der Grundlast des Trafos dieser Effekt nicht auf.

Jetzt sollte dem Bau eines Langzeit-Timer, der fast keinen Eigenverbrauch hat, nichts mehr im Wege stehen.


Als kleine Hilfestellung für Leute die das nachbauen wollen die FUSE-Bit für 2 Programmer. Im Prinzip der Auslieferzustand, doch für einwandfreies "RESET" sollte BODLEVEL auf 2,7V eingestellt werden.





Erweiterung: Blinkanzeige

Der Langzeittimer funktioniert einwandfrei, doch ein wenig unsicher ist man doch nach vielen Tagen Wartezeit, läuft er noch oder hängt er schon. Daher habe ich nochmals etwas Gehirnschmalz eingebracht (neudeutsch Brainstorming) um hier etwas Abhilfe zu schaffen. An der Schaltung selbst hat sich nichts geändert.

Um in der wochenlangen Wartezeit eine Info zu haben habe ich in die Warteschleife "Netz ausgeschaltet" eine Blinkfunktion der grünen LED implementiert, somit zeigt ein kurzer Seitenblick, das Teil läuft noch.

Da ich ein SSR ohne "zerro cross" Steuerung verwende, diese auch nur einmal am Start des Timers notwendig ist, habe ich am Beginn des Programm eine Synchronisation eingebaut so dass im Nulldurchgang geschaltet wird (Einschaltstromstoß). Später ist das nicht notwendig weil durch den Programmablauf ein Schalten im Nulldurchgang gegeben ist.

Zu guter letzt habe ich am Start des Programm ein 10maliges kurzes Blinken der Grünen LED eingebaut (Dauer 4sek) um zu sehen ob der µC richtig angelaufen ist (RESET).

Im "Netz eingeschaltet" Teil hat sich nichts verändert da aus Stromverbrauchgründen (es wird gespart wo es nur geht C1/0,1µF liefert ca. 7,1mA) die rote Led in Serie mit dem SSR liegt und hier zu blinken wäre äußerst kontraproduktiv. Die Ladezeit ist auch je nach Dauer noch überschaubar und danach blinkt es ohnehin wieder grün.

Damit ist für mich das Thema abgeschlossen denn bei mir fuktioniert das Teil wie es soll. Die Akkus bei mir sind durch eigene Ladekontroller geschützt (LiIo Akkus werden eigenständig abgeschaltet, NiMh Akkus werden mit -delta peek überwacht und trickeln noch einige Zeit bist der Langzeittimer ausschaltet) und ich brauche nicht mehr ans rechtzeitige Nachladen denken. Viel Erfolg beim Nachbau.

Download: TimerNetzsynchron2.zip


Elektronik-Labor  Bastelecke  Projekte  Mikrocontoller