Elektor
12/98
Bei dem Begriff Dimmer dürften die mei-
sten Menschen an den bekannten Dreh-
knopf denken, der statt des Lichtschal-
ters in die UP-Dose eingebaut wird. Bei
diesem Projekt haben wir es jedoch mit
einem ganz anderen Kaliber zu tun: Die
Handvoll Standardbauteile ist einem
Mikrocontroller mit einem ausgesuch-
ten Programm und einer PC-Software
gewichen. Das Resultat ist ein Dimmer
für 8...32 Lasten beziehungsweise Last-
gruppen, der mit einer Windows-Soft-
ware vom PC aus gesteuert werden
kann. Dabei ist die Schaltung so lei-
stungsfähig, daß sie ohne weiteres für
eine Bühne oder ein kleines Theater ein-
gesetzt werden kann. Daneben kann der
PC-Dimmer auch gebraucht werden zur
Beleuchtung von Volieren, Aquarien,
zum automatischen Ein- und Ausschal-
Dimmer und andere
Lampensteuerungen
sind seit jeher ein wich-
tiges Thema für Elektor.
Meistens handelt es
sich dabei um Bauvor-
schläge mit einigen
wenigen Standardkom-
ponenten. Diesmal aller-
dings stellen wir einen
äußerst leistungsfähigen
Dimmer vor, der über
eine PC-Schnittstelle bis
zu 32 ohmsche oder
induktive Lasten unab-
hängig von einander
steuern kann.
16
Windows-Software
von G. Janssen
PC-gesteuerter
32-Kanal -Dimmer
Luxus-Regler für ohmsche
und induktive Lasten
COMPUTER & PERIPHERIE
ten von Lampen in Wohnhäusern (eine
sogenannte Einbrecherscheuche).
Da die Schaltung mit induktiven
Lasten genau so gut umgehen kann
wie mit ohmschen, ist der Anschluß
von Halogenlampen, Motoren oder
Transformatoren überhaupt kein Pro-
blem. Der Dimmer ist in Module auf-
geteilt, von denen jedes acht Kanäle
steuert. Durch den modularen Aufbau
kann die Schaltung dem spezifischen
Einsatz angepaßt werden. Insgesamt
lassen sich vier Module an einen PC
anschließen, also insgesamt 32 Lasten
beziehungsweise Gruppen von Lasten
unabhängig voneinander regeln.
A
U S G A N G S P U N K T E
Am Anfang der Entwicklung einer
elektronischen Schaltung steht die
Festlegung der Eigenschaften, die das
Gerät aufweisen soll. Wichtig war
dabei ein “offener” Ansatz, der nicht
von einer fertigen und unveränderba-
ren Software ausgeht, sondern jedem
Programmierer auf Grundlage der
Informationen in diesem Artikel und
eines gewissen Softwareangebots
erlaubt, ein speziell auf die spezifi-
schen Erfordernisse zugeschnittenes
Programm zu entwickeln. Gleichfalls
wird denjenigen, die sich nicht so gut
oder gar nicht mit Software-Entwick-
lung auskennen, eine Software für ein
elektronisches “Mischpult” für 32
(Licht-) Kanäle zur Verfügung gestellt,
die unter Windows 95 läuft.
Die Kommunikation zwischen PC und
Dimmer verläuft über die RS232-
Schnittstelle und nutzt ein deutliches
und kompaktes Protokoll, auf das es
noch einzugehen gilt. Mit den Befeh-
len, die der PC zum Dimmer schickt,
17
Elektor
12/98
Besuchen Sie unsere Homepage:
http://www.elektor.de
S202S11
IC4
CNY65
IC3
2
3
4
1
1A25 T
F1
K3
K4
(MISO)PB6
(MOSI)PB5
(AIN1)PB1
(AIN0)PB0
PD2(INT0)
PD3(INT1)
(SCK)PB7
(OCI)PB3
PD0(RxD)
PD1(TxD)
PD6(ICP)
PD4(T0)
PD5(T1)
XTAL1
XTAL2
RESET
S2313
AT90
IC1
PB4
PB2
20
10
19
18
17
16
15
14
13
12
11
5
4
1
2
3
6
7
8
9
R8
390
Ω
R9
390
Ω
R10
390
Ω
R7
390
Ω
R11
390
Ω
R12
390
Ω
R13
390
Ω
R14
390
Ω
K2
ISP
S1
X1
8MHz
C1
22p
C2
22p
S202S11
IC5
1A25 T
F2
K5
S202S11
IC6
1A25 T
F3
K6
S202S11
IC7
1A25 T
F4
K7
S202S11
IC8
1A25 T
F5
K8
S202S11
IC9
1A25 T
F6
K9
S202S11
IC10
1A25 T
F7
K10
S202S11
IC11
1A25 T
F8
K11
C6
100n
C3
100n
C4
10
µ
10V
C5
10n
R6
10k
R5
1k
R4
10k
R1
10k
R17
56k
1W
R16
1M
R15
10k
R3
100k
R2
100k
T1
BC547B
T2
BC547B
D1
D2
1N4001
L1
10A
C7
470n
X2
9V
TR1
1VA5
B1
B80C1500
C8
470
µ
25V
C9
100n
C10
100n
7805
IC2
TxD
RS232
CH8
CH7
CH6
CH5
CH4
CH3
CH2
CH1
980076 - 11
5V
5V
5V
5V
5V
5V
5V
O N D I P
1
2
3
4
S1
K1
1
2
3
4
5
6
7
8
9
1
Bild 1. Der 32-Kanal-Dimmer
besteht aus maximal vier
Modulen.
Technische Daten
æ Dimmen von acht unabhängigen Kanälen pro Modul
æ Maximal vier Module an einer seriellen Schnittstelle
æ Geeignet für ohmsche und induktive Lasten
æ Schaltet netzsynchron
æ Pro Kanal 275 W Belastung möglich
æ Einfaches Protokoll
æ Vier voreingestellte Regelkurven
æ Einfach zu programmieren
æ Batch-Verarbeitung möglich
æ Mit Windows-95-Software für 32 Kanäle
æ Software komplett mit Quellkodes
wird immer ein Endwert einer Einstel-
lung angegeben sowie die Zeit, in der
die Änderung vollzogen werden soll
(Fade-Zeit). Daß der Dimmvorgang
netzsynchron abläuft, versteht sich bei
einer solchen Schaltung von selbst. Der
Controller auf der Dimmerplatine spei-
chert den eingestellten maximalen
Wert, die Fade-Zeit und den aktuellen
Wert jedes einzelnen Kanals. Der PC
schickt einen neuen Satz von Parame-
tern nur dann zum Dimmer, wenn
Änderungen anliegen. So passieren
relativ wenige Informationen die seri-
elle Leitung zwischen PC und Dimmer.
R
E A L I S A T I O N
Die Schaltung des Dim-
mers in Bild 1 verrät
recht wenig von der
Funktionsweise der
Schaltung. Zentrale des Dimmers ist
natürlich der Mikrocontroller, ein
AT90S2313 von Atmel. Der Controller
ist direkt mit der TxD-Leitung des PCs
verbunden und steuert über die
Anschlüsse PB0...PB7 acht Optotriacs
(IC4...IC11) vom Typ S202S11. Die
Optotriacs verbinden eine Leitung der
Netzwechselspannung mit der jewei-
ligen Ausgangsklemme, wenn die ent-
sprechende Portleitung des Controllers
die interne LED über einen Reihen-
widerstand von 390 Ω auf Massepo-
tential legt. An der Netzspannungs-
seite ist jeder Optotriac durch eine
träge Glassicherung von 1,25 A
geschützt. Dies bedeutet, daß Lasten
von maximal 275 W geregelt werden
können. Da die Optotriacs integrierte
Snubber-Netzwerke besitzen, ist es
18
Elektor
12/98
(C) ELEKTOR
980076-1
B1
C1
C2
C3
C4
C5
C6
C7
C8
C9
C10
D1
D2
F1
F2
F3
F4
F5
F6
F7
F8
H1
H2
H3
H4
IC1
IC2
IC3
IC4
IC5
IC6
IC7
IC8
IC9
IC10
IC11
K2
K3
K4
K5
K6
K7
K8
K9
K10
K11
L1
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
R16
R17
S1
T1
T2
TR1
X1
1.25AT
1.25AT
1.25AT
1.25AT
1.25AT
1.25AT
1.25AT
1.25AT
~
CH2
CH3
CH4
CH5
CH6
CH7
CH8
CH1
~
T
TXD
980076-1
(C) ELEKTOR
980076-1
2
Bild 2. Das Platinenlayout für ein acht-
kanaliges Modul entspricht den Sicher-
heitsvorschriften beim Umgang mit
Netzspannung.
auch leicht möglich, induktive Lasten
zu dimmen.
Neben den Optotriacs ist auch ein
gewöhnlicher Optokoppler in der
Schaltung zu finden. Er wird zur
Detektion des Nulldurchgangs einge-
setzt, damit der Controller synchroni-
siert werden kann. Der Detektor ist
direkt mit der Netzspannung ver-
bunden, da hinter dem Trafo Phasen-
verschiebungen auftreten, die Meß-
fehler verursachen. Der Synchronisa-
tionsimpuls wird von Transistor T2
gepuffert und an den Eingang PD3
(INT1) gelegt. Um die korrekte
Arbeitsweise zu garantieren, ist eine
frequenzstabile Netzspannung not-
wendig. Der Betrieb des Dimmers
beispielsweise an einer Notstromver-
sorgung ist nicht möglich.
S
E L B S T
P
R O G R A M M I E R E N
Da der Controller im Prinzip in der
Schaltung programmierbar ist (in cir-
cuit programmable), findet sich auch
ein spezielles ISP-Interface (K2), das die
Controlleranschlüsse RESET, SCK,
GND, MISO, MOSI und VCC nach
außen führt. Im Elektor-Service ist des-
halb neben einem fertig programmier-
ten Controller auch eine Diskette mit
dem Quellkode des Controllerpro-
gramms erhältlich. Wie und mit wel-
chen Mitteln man einen Atmel-Con-
troller programmiert, wird in den Arti-
keln zum Heinzelmännchen (Elektor
12/97) ausführlich beschrieben.
Einige Anschlüsse des Controllers sind
über DIP-Schalter mit Masse verbun-
den. Hier lassen sich einige Optionen
einstellen, über die im Kasten Optiona-
les noch zu sprechen sein wird. Das
serielle Interface ist besonders einfach
aufgebaut. Eine einfache Transistor-
stufe mit einigen Widerständen setzt
den (unter Umständen) symmetri-
schen RS232-Pegel in TTL um und
macht damit den sonst üblichen Pegel-
wandler MAX232 überflüssig. Wenn
man ein eigenes Programm schreibt,
kann es nötig sein, auch noch andere
als die TxD-Leitung der RS232-Verbin-
dung zum Controller zu führen.
Über den Rest der Schaltung läßt sich
relativ wenig berichten. Die Span-
nungsversorgung ist klassisch mit
einem 5-V-Festspannungsregler aufge-
baut, der Oszillator mit C1, C2 und X1
liefert einen Takt von 8 MHz. Das
Modul besitzt acht Ausgangskanäle,
die verfügbare Windows-95-Software
kann gleichzeitig vier dieser Module
steuern.
B
A U H E R R E N M O D E L L
Da die Schaltung mit der Netzspan-
nung arbeitet, ist ein den Sicherheits-
vorschriften genügendes Platinenlay-
out wie in Bild 2 unabdingbar. Dank
der Leistungsfähigkeit der Soft- und
Hardware (man stelle sich nur einmal
einen diskreten Aufbau von Triacs mit
Snubber-Netzwerken und galvani-
scher Trennung vor) ist die Platine sehr
kompakt.
Der Aufbau ist nicht besonders kom-
pliziert, wenn man für den Controller
eine Fassung verwendet und nur die
vorgeschriebenen Bauteile verwendet.
Insbesondere gilt dies für das Entstör-
netzwerk mit dem X2-Kondensator C7
und der Entstörspule L1, einem Sie-
mens-Fertigprodukt, die aus zwei par-
allelen und an den Enden getwisteten
Windungen um den Ringkern besteht.
Die “getwisteten” Enden werden aus-
einandergedreht und auf eine Länge
von ungefähr 10 mm gekürzt. Dann
kratzt man mit einem Messerchen den
Lack von den Drahtenden, verzinnt
sie, steckt sie durch die Platinenboh-
rungen und knickt sie um. Es ist wich-
tig, daß die Drahtenden nicht punkt-
förmig, sondern über eine gewisse
Länge auf der Platine verlötet werden,
um eine optimale elektrische Verbin-
dung zu garantieren. Bei Strömen bis
zu 10 A durch die Spule sollte dies ver-
ständlich sein. Bild 3 schließlich zeigt
das Resultat der Bemühungen.
Wer einen fix und fertig programmier-
ten Controller verwendet, kann jetzt
19
Elektor
12/98
Besuchen Sie unsere Homepage:
http://www.elektor.de
Stückliste
Widerstände:
R1,R4,R6,R15 = 10 k
R2,R3 = 100 k
R5 = 1 k
R7...R14 = 390
Ω
R16 = 1 M
R17 = 56 k/1 W, 400 V
Kondensatoren:
C1,C22 = 22 p keramisch
C3,C6,C9,C10 = 100 n keramisch
C4 = 10
µ/10 V stehend
CD5 = 10 n keramisch
C7 = 470 n/250 V~, Klasse X2
C8 = 470
µ/25 V stehend
Spule:
L1 = 10-A-Entstörspule (Siemens
T60405M6108X2)
Halbleiter:
B1 = B80CD1500, rechteckiges
Modell
D1 = LED rot, high eff.
D2 = 1N4001
T1,T2 = BC547B
IC1 = AT90S2313 (EPS 986524-1)
IC2 = 7805
IC3 = CNY65
IC4...IC11 = S202S11 (Sharp)
Außerdem:
X1 = Quarz 8 MHz
S1 = 4facher DIP-Schalter
K1 = 9poliger Sub-D-Verbinder,
female
K” = 1
⋅6poliger Pfostenverbinder
K3...K11 = 2polige Platinenan-
schlußklemme, RM7,5
Tr1 = Netztrafo 9V/1VA5 (Block
W1109)
F1...F8 = Platinensicherungshalter
mit Sicherung 1,25 A träge
Gehäuse Bopla EG2050L
Platine: EPS 980076-1
Diskette mit Windows-Software und
Quellkode: EPS 986025-1
Diskette mit Controller-Quellcode:
EPS 986033-1
Programmierter Controller EPS
986524-1
Bild 3. Der aufge-
baute Prototyp eines
Dimmer-Moduls.
schon loslegen.
Der AT90S2313
wird in die Fas-
sung gesteckt und (nach einer gründ-
lichen Sichtkontrolle der Lötarbeiten)
die Platine berührsicher in einem
Kunststoffgehäuse untergebracht. Da
Sie es immerhin mit Netzspannung zu
tun haben, sollten Sie der Sicherheits-
seite in diesem Heft Aufmerksamkeit
schenken. Ziehen
Sie immer zuerst
den Netzstecker,
bevor Sie an der Schaltung arbeiten
wollen.
Nachdem die Windows-Software (nur
95/98) installiert und die Dimmer-
Schaltung über ein RS232-Kabel Kon-
takt mit dem PC aufgenommen hat, ist
die Schaltung betriebsbereit. Das Pro-
gramm läßt sich intuitiv bedienen,
wie der Screendump in Bild 4
beweist. Die Software kann man
modifizieren, da sie nicht nur
kompiliert, sondern auch im
Quellkode (Delphi-Format) ange-
liefert wird.
H
E I N Z E L M Ä N N C H E N
I M
E
I N S A T Z
Auch der Mikrocontroller läßt sich
in Eigenregie programmieren.
Dazu ist eine weitere Diskette mit
der Controller-Software (Quell-
kode und ROM-Datei) erhältlich.
Zur Programmierung benutzt
man das Programmieradapter für
Heinzelmännchen (Elektor 12/97),
zwischen dessen 10poligen Pfo-
stenverbinder und dem 6poligen
ISP-Anschluß auf der Dimmerpla-
tine man ein Kabel anbringt. Beim
Start des dazugehörenden Pro-
gramms wird der Aufrufkode /8515
hinzugefügt, so daß das Heinzelmänn-
chen dem AT90S2313 einen doppelt so
großen Speicherbereich reserviert, als
dies bei der Einstellung für einen
1200er-Controller der Fall wäre. Der
8515-Controller besitzt (zur Zeit) den
größten Speicher der ganzen AVR-
Familie.
(980076)rg
20
Elektor
12/98
Interessantester Aspekt der Schaltung ist zweifellos die
Software. Leider ist der diesem Artikel zur Verfügung ste-
hende Raum so beschränkt, daß wir nicht auf alle Details
eingehen können.
Das Programm besteht hauptsächlich aus zwei Interrupt-
Routinen. Die Routine SYNC synchronisiert den Phasen-
modulator mit dem Nulldurchgang der Netzspannung. Der
Phasenmodulator-Zähler läuft von 0 bis 249, ein Peri-
odenhälften-Zähler kennt die Zustände 0 und 0xff. Der
erste Zähler überstreicht eine Periodenhälfte, der zweite
gibt an, welcher Periodenteil gerade aktuell ist. Die Timer-
Interruptroutine erhöht bei jedem Aufruf den Zähler des
Phasenmodulators. Nach jedem Abschluß eines Zählzy-
klus wird der Periodenhälften-Zähler invertiert.
Die Synchronisations-Interruptroutine kontrolliert, ob der
Zähler des Phasenmodulators synchron in der Phase der
Netzspannung gleichläuft. Tritt eine Phasenverschiebung
auf, erhöht oder verringert (je nach Lage der Dinge) die
Synchronisationsroutine den Zähler um eine Einheit, so
daß die Phasenverschiebung in einer kurzen Zeitspanne
abgebaut wird.
Im RAM ist für jeden Kanal Platz für alle relevanten Infor-
mationen reserviert, und zwar
3 Bytes für die Fade-Zeit
3 Bytes für den Fade-Zähler
1 Byte für den Endwert
1 Byte für die Stufengröße und
1 Byte für den Phasenmodulator.
Außerdem sind fünf Bytes vorgesehen, um einen kom-
pletten RS232-Rahmen speichern zu können.
Die Fade-Zeit wird in Einheiten von 10 ms ausgedrückt.
Der Endwert läuft von 0 bis 127 und wird von der Software
verdoppelt. Im Programmspeicher sind vier Tabellen mit
jeweils 256 Referenzwerten zu finden. Diese Werte sind so
zusammengestellt, daß sie ein spezifisches Regelverhal-
ten zur Folge haben.
Über die RS232-Schnittstelle werden neue Daten an der
entsprechenden Stelle des Speicher abgelegt. Der
momentane Inhalt des Phasenmodulators wird erhöht
beziehungsweise verringert, bis der Endwert erreicht ist.
Die Geschwindigkeit, mit der dies passiert, wird von der
eingestellten Fade-Zeit vorgegeben. Der Fade-Wert wird
im Fade-Zähler gesetzt und danach alle 10 ms der Zähler-
inhalt verringert/erhöht, bis er gleich Eins ist. Anschließend
wird die Einstellung des Phasenmodulators in einem
Zyklus gleichzeitig angepaßt und der Fade-Wert von
neuem in den Zähler gesetzt. Der Vorgang wiederholt sich,
bis der Endwert erreicht ist.
Ist die Fade-Einstellung gleich Null, wird die Einstellung
des Phasenmodulators direkt mit dem Endwert begli-
chen. All diese Routinen werden durch einen Timer-Inter-
rupt initiiert.
Aufbau der Software
Bild 4. Mit der Windows-Soft-
ware können maximal 32
(Licht-) Kanäle komfortabel
gesteuert werden.
4
Besuchen Sie unsere Homepage:
http://www.elektor.de
21
Elektor
12/98
Optionales
Mit den Schaltern S1-1 und S1-2 wird die Kurve festgelegt, nach der der Controller den Zündwinkel bestimmt. Es sind vier
Kurven vorgegeben, so daß für jede Anwendung eine ideale Einstellung gefunden werden sollte.
S1-1
S1-2
an
an
Kurve 1
an
aus
Kurve 2
aus
an
Kurve 3
aus
aus
Kurve 4
Kurve 1: Ansteuerung proportional zur
gemittelten Spannung
Kurve 2: Ansteuerung proportional zur
Leistung
Kurve 3: Leicht logarithmische Ansteue-
rung proportional zur Leistung (
β =
5).
Kurve 4: Logarithmische Ansteuerung
proportional zur Leistung (
β = 25).
Die Kurven sind in Bild A zu sehen. Auf der
vertikalen Achse ist der relative Wert, auf
der horizontalen Achse der Zündwinkel
angegeben. Für die meisten Anwender
dürften die Aussteuerungskurven in Bild B
informativer sein. Hier ist die Stellung des
“Bildschirm-Schiebereglers” gegen die
Aussteuerung eingetragen. Die beiden
linearen Kurven für die abgegebene Lei-
stung und abgegebene Spannung sind
identisch, darunter sind die beiden expo-
nentiellen zu sehen.
Die Schalter S1-3 und S1-4 stellen die
Adresse des Moduls ein:
S1-3
S1-4
Adresse
an
an
Kanal 1...8
aus
an
Kanal 9...16
an
aus
Kanal 17...24
aus
aus
Kanal 25...32
Die Schaltung verwendet ein Protokoll, das eine einfache
Ansteuerung erlaubt. Das Datenformat über die serielle
Schnittstelle lautet
9600 Baud
1 Startbit
1 Stoppbit
Keine Parität
Ein Frame umfaßt fünf Bytes, die wie folgt aufgebaut sind:
Byte 1
1
A4
A3
A2
A1
A0
S1
S0
Byte 2
0
T20
T19
T18
T17
T16
T15
T14
Byte 3
0
T13
T12
T11
T10
T9
T8
T7
Byte 4
0
T6
T5
T4
T3
T2
T1
T0
Byte 5
0
D6
D5
D4
D3
D2
D1
D0
Dabei sind:
A:
Kanaladresse
S:
Schrittgröße
T
Zeit pro Schritt
D
Endwert
Bit b7 ist beim ersten Byte Eins, um den Frame-Beginn zu
markieren, bei allen anderen Bytes ist b7 = 0.
Tritt beim Empfang innerhalb eines Frames ein Fehler auf,
so wird das gesamte Frame gelöscht und auf den Beginn
eines neuen Frames gewartet (b7 = 1).
Bei einer Auflösung mit Schrittgröße gleich Eins ist eine
Regelzeit von 255
⋅ 10 ms = 2,55 s nötig. Wird eine kür-
zere Fadezeit eingestellt, so entsteht ein Fehler von maxi-
mal 1,27 s. Die PC-Software korrigiert aus diesem Grund
bei Fade-Zeiten kleiner als 2,55 Sekunden (auf 2, 3 oder
4). Dadurch wird der Fehler immer kleiner als 15 %.
Protokollarisches
A
B