Home
EVG-Dimmer
LED-Licht
Casa Lucertola
Dimmer für EVG

Dimmersteuerung für Leuchtstoffröhren mit elektronisches Vorschaltgerät

Die Schaltung ist konstruiert für das Vorschaltgerät

QUICKTRONIC DE LUXE DIMMBAR HF2x58/230-240 DIM

von Osram. Man kann es in jedem größeren Elektrofachhandel, der Osram im Lieferprogramm hat, bestellen. Die Preise liegen zwischen 150 und 200 DM. Die Steuerung sollte aber mit allen EVG‘s funktionieren, die eine Ansteuerspannung von 1..10V brauchen.

Die Steuerung funktioniert nur in Zusammenarbeit mit einer Schaltuhr, da das EVG keinen Anschluß für eine Totalabschaltung hat. D.h. die Schaltuhr schaltet die Leuchten samt EVG und Dimmersteuerung morgens an und nachts wieder aus. In der eingeschalteten Zeit kann die Helligkeit zeitabhängig geregelt werden.

Beispiel:

dimmer2

Das Projekt besteht im wesentlichen aus drei Teilen:

1. Die Hardware. Ein Microcontroller der ein Rechtecksignal erzeugt, bei dem das Verhältnis zwischen High- und Low- Zeit variabel ist (das wird Pulsweitenmodulation PWM genannt) mit einem nachgeschalteten Gleichrichter.

2. Die Software für den Microcontroller.

3. Die Software für einen PC, mit der sich die Uhrzeiten für die Dimmersteuerung erfassen und zum Microcontroller senden lassen

Hardware

Das Herz der Schaltung ist ein Microcontroller vom Typ ATTiny2313 der Firma Atmel. Microcontroller sind im Prinzip kleine vollständige Computer in einem IC. Sie enthalten einen Prozessor, Programmspeicher (meist als PROM, EPROM oder EEPROM), Arbeitsspeicher (RAM) und Peripherie.

Der hier gewählte Baustein hat 2 KB Programmspeicher, 128 Byte RAM, 128 Byte EEPROM, einen seriellen Port (UART), Timer und diverse Ein- und Ausgangsleitungen. Um ihn einzusetzen, braucht man nur einen Quarz und drei Kondensatoren anzuschließen, mehr nicht. Der Programmspeicher ist als Flash-Speicher ausgeführt und läßt sich ein paar tausendmal neu programmieren. Im Baustein sind alle Komponenten enthalten, um ihn zu beschreiben, man braucht also kein hochkompliziertes und teures Programmiergerät (Mehr dazu später).

Die Software im Microcontroller erzeugt ein Rechtecksignal, bei dem sich bei gleichblei- bender Frequenz das Verhältnis zwischen High- und Lowabschnitten einstellen läßt (PWM).

dimmer1

Ein nachgeschalteter Gleichrichter wandelt das Rechtecksignal in eine Gleichspannung um. Hier verwende ich eine normale Einweggleichrichtung. Da diese durch die Kondensatorladekurve alles andere als linear wäre, ist ein Transistor nachgeschaltet. Dessen Verstärkungskennlinie bügelt die Gleichrichterkennlinie wieder halbwegs gerade. Man darf von solch einer simplen Schaltung keine Wunder erwarten, insbesondere von der Linearität und Temperaturstabilität. Für meine Zwecke ist sie jedoch völlig ausreichend. Die Ausgangsspannung des Transistors dient als Steuersignal für den Dimmer.

Damit man neue Uhrzeiten in den Microcontroller speichern kann, ist ein RS232-Anschluß vorgesehen. Die notwendige Spannungswandlung von +-12V auf 5V übernimmt ein MAX232. Dieser Teil der Schaltung (alles links der gestrichelten Linie) ist für die Funktion der Dimmersteuerung nicht relevant und kann auch als kleine separate Platine ausgeführt werden.

1 x  IC2             MAX232
1 x  IC1             ATTiny2313
1 x  Q1              Quarz 4 MHz
1 x  T1              BC237B
1 x  D1              1N4148
3 x  C1,C5,C7    4,7 µF / 16V
2 x  C2,C3         20-27pF (keramisch)
2 x  C4,C6         10 µF / 16V
2 x  C8,C9         100 nF (keramisch)
1 x  R1                Poti 47K
1 x  R2              47K
1 x  R3              10K
2 x  R4, R6        1K
1 x  R5              4,7K
Optional:
3 x R7,R8,R9   470
3 x LED            beliebig

Schaltplan zum Vergrössern anklicken

dimmerkl

Wird die Schaltung mit Netzteil auf einer Platine aufgebaut, die schmaler als 34 mm ist, kann sie mit im Leuchtbalken integriert werden. Nach außen ist dann nur noch der Netzanschluß und eine Buchse für das RS232-Kabel sichtbar.

Die Schaltung läßt sich einfach abgleichen, indem am PWM-Eingang des Gleichrichterteils 5V-Versorgungsspannung angelegt werden. Danach das Poti so einstellen, das am Ausgang 1V anliegt.

Software ATTiny2313


Der Microcontroller läßt sich mit wenig Aufwand programmieren. Das Programmiergerät besteht nur einem Stecker für den LPT-Anschluß des PC’s und ein paar Widerständen. Die zugehörige Schaltung und Programmiersoftware gibt es bei http://www.rowalt.de/mc/
Dort sind auch diverse nützliche Links zu finden.


Das Programm ist in Assembler geschrieben und kann als ‚Generic Hex Format – File‘
hier down-geladen werden. Wer den Quellcode möchte, kann mir eine Email schicken.


In jedem Fall sollten auch die EEPROM-Daten aus der Datei DIMMER.EEP.HEX programmiert  und die richtigen FUSES mit dem Programmiergerät gesetzt werden
Der Microcontroller hat einen internen RC-Oszillator, der mit 8 MHz läuft und einen internenTaktteiler durch 8. Beide sind als Defaultwert aktiviert. D.h. werden die Werte nicht geändert, läuft der Controller mit 1 MHz statt mit den 4 des Quarzes. Da der RC-Ozsillator nicht so recht genau ist, wird hier ein Quarz verwendet. Damit er benutzt wird, müssen die FUSES
auf folgenden Wert gesetzt werden:


CKSEL 3..0 = 1101 SUT1..0 = 11 CKDIV8=0

Das Programm nutzt zur Steuerung des PWM-Ausgangs Eckpunkte. Ein Eckpunkt besagt, zur Zeit X soll das Pulsweitenverhältnis Y erreicht sein. Die nötige Änderung vom momentanen Wert wird proportional umgerechnet und im Sekundenabstand angeglichen. So ergibt sich eine gradlinige Änderung der PWM von Eckpunkt zu Eckpunkt.
Die Angaben sind in Sekunden seit dem Start und in Helligkeit als Zahl von 0..255 (10%...100%). Als erster Wert wird 0 Sekunden und 0 für Helligkeit angenommen.

Beispiel:
7:00     Sekunden 0    Helligkeit 0 (10%)    nach dem Einschalten
7:30                 1800                255 (100%)    in der ersten halben Stunde auf 100%
10:00            10.800                255                 3 Stunden lang 100%
11:00            14.400                  85                  Helligkeit runter auf 40%
14:00            25.200                  85                  3 Stunden lang 40%
16:00            32.400                255                 wieder auf 100%
20:00            46.800                255                 4 Stunden lang 100%
21:00            50.400                    0                 Sonnenuntergang auf 10%
22:00            52.2000                                     auf 10% bleiben und in dieser Zeit abschalten

Die Daten im EEPROM werden als 4 Byte gespeichert:
1.Lowbyte Sekunden, 2. Midlebyte Sekunden, 3. Highbyte Sekunden, 4. Helligkeit

So können in 128 Byte maximal 32 Eckpunkte definiert werden. Wer die Umrechnerei nicht scheut und seine Zeiten selten bis nie ändern will, kann den ganzen RS232-Teil weglassen und die Werte gleich mit dem Programmiergerät ins EEPROM speichern.

Für einen Funktionstest sind die drei LED´s vorgesehen. Man braucht sie also nur, wenn die Schaltung nicht das macht, was sie soll:
LED 1 an PIN 12  blinkt im Sekundentakt (1 Sekunde an, 1 Sekunde aus)
LED 2 an PIN 13  blinkt im 256 Sekundentakt.
LED 3 an PIN 14  wechselt jedesmal, wenn ein Byte über die serielle Schnittstelle empfangen wurde

Wenn also die LED 1 nicht blinkt (man kann natürlich auch ein Meßgerät zum Testen nehmen), ist der Controller gar nicht angelaufen oder nicht programmiertt. Blinkt sie zu langsam, sind wahrscheinlich die Fuses nicht richtig gesetzt.
Mit einem Terminalprogramm (9600 Baud 8/1/n kein Handshake) und LED 3  kann man die Funktion des RS232-Teil testen. Sie muß blinken, wenn man Zeichen sendet.

Software für die Uhrzeiteingabe am PC

Die Win 98 / XP Software gestattet die Erfassung von 13 Eckwerten. Die Zeit wird als normale Uhrzeit eingegeben. Mit Hilfe der Startzeit wird alles in Sekunden umgerechnet und kann dann zum Microcontroller gesendet werden.

Die Übertragung der Daten hat folgendes Format:
0x0D, adresse, lowsec, midlesec, highsec, helligkeit, checksum

0x0D:          leitet die Sequenz ein (CR-Zeichen). Der Controller antwortet mit 0x06 (ACK)
adresse:     die Adresse im EEPROM. Erste Speicherstelle 0, die zweite 3, die dritte 7, 11,....
lowsec:      das Lowbyte der Zeitangabe in Sekunden
midlesec:    das mittlere Byte der Zeitangabe in Sekunden
highsec:     das Highbyte der Zeitangabe in Sekunden
helligkeit:  Helligkeitswert 0 (=10%) bis 255 (=100%)
checksum:  Lowbyte der Summe von adresse + lowsec + midlesec + highsec + helligkeit

wurde alles richtig empfangen und gespeichert, sendet der Microcontroller 0x06 (ACK).

Die Software benutzt COM 1 mit 9600 Baud, 8 Bit, 1 Stopbit, kein Parity, kein Handshake.


Das Programm kann die erfaßten Werte auf dem PC sichern. Es ist benötigt keine Installation, alle DLL’s sind eingebunden. Es wird einfach in ein Verzeichnis kopiert und kann über den Explorer oder Arbeitsplatz gestartet werden. Sollten bei der Ausführung Probleme auftreten, schickt mir bitte eine Mail. Die Software (315 KB) kann hier down-geladen werden.

Nur noch sicherheitshalber: Ich übernehme keine Haftung oder Verantwortung für das Funktionieren der Schaltung oder der Software. Wenn Ihr mit 230 V arbeitet, solltet Ihr wissen, was Ihr da tut. Die Spannung kann, insbesondere in Verbindung mit Wasser tödlich sein. Also Vorsicht !

Ein paar Leute haben nachgefragt, wo sie die Versorgungsspannung herbekommen. Am einfachsten nimmt man ein stabilisiertes 12V Steckernetzteil und hängt dort einen 5V Regler und einen 100µF Kondensator hinter. Schon sind beide Spnnungen verfügbar.

Viel Spaß beim Nachbauen.

[Home] [EVG-Dimmer] [LED-Licht]