Navigation
Eine Dimmerschaltung:

In diesem Tutorial werden wir uns eine sehr komfortable Dimmerschaltung bauen. Mit dieser könnt ihr dann eure (ohmschen) Lasten wie z.B. normale Glühlampen oder die weit verbreiteten Halogen-Stehlampen beliebig in der Helligkeit regeln. Natürlich ist auch eine vollautomatische und frei programmierbare Zeitschaltuhr damit kein Problem mehr. Aber bevor wir zu den Software-Details kommen, schauen wir uns doch erst einmal die Hardware und die dahinter steckende Theorie an.

Es gibt verschiedene Möglichkeiten, eine Lampe zu dimmen. Die trivialste wäre sicherlich ein einfacher regelbarer Vorwiderstand (ein Poti), an dem die nicht "benötigte" Spannung abfällt. Der Nachteil hierbei ist aber ganz klar, dass stets ziemlich viel Leistung verbraten (und bezahlt) wird, auch wenn man ja eigentlich nur einen Widerstand erwärmt.

Viel eleganter ist das Prinzip der Phasenanschnittsteuerung. Um dies zu verstehen, schauen wir uns einmal die Spannung an, die aus einer normalen Steckdose kommt (in der Skizze gestrichelt dargestellt):


Man erkennt, dass es sich um eine Sinusspannung (Frequenz 50Hz, Scheitelspannung 325V, Effektivwert 230V) handelt. Der Effektivwert berechnet sich hierbei aus der Wurzel aus dem Integral über eine Periode über das Quadrat des Spannungsverlaufes:


Wir können den Effektivwert einer Spannung (und damit die Helligkeit einer angeschlossenen Lampe) also ganz einfach ändern, indem wir ihren zeitlichen Verlauf manipulieren. Hier kommt nun die Phasenanschnittsteuerung in's Spiel. In der obigen Skizze erkennt man, dass wir unsere Spannung nicht konstant an die Lampe anlegen, sondern erst ab einem gewissen Zeitpunkt x (kleiner 10ms). Somit liegt innerhalb einer Periode also eine gewisse Zeit gar keine Spannung am Verbraucher und erst ab x wird die Lampe mit Strom versorgt. Es ist nun gut zu erkennen, dass die Lampe also im zeitlichen Mittel genau mit der Energie versorgt wird, die der grünen Fläche entspricht. Wählt man x nun groß (maximal 10ms), so leuchtet die Lampe überhaupt nicht. Wählt man x klein (minimal 0ms), so leuchtet die Lampe maximal hell, da ja unsere "ungebremste" Wechselspannung anliegt.

Nun benötigen wir also irgendeine Schaltung, die fähig ist, eine solche Phasenanschnittsteuerung zu realisieren. Ich habe mich für folgende Variante entschieden:


Im Vergleich zu den letzten Kapiteln fällt erst mal auf, dass ich mir jetzt endlich ein Layout-Programm (Target3001) zugelegt habe und meine Schaltpläne nicht mehr mit Word erstellen muss ... ;-) Zur Funktionsweise: Rechts sieht man den 230V-Anschluss mit dem Verbraucher (z.B. Lampe). Das Kernelement ist der Triac TIC216, welcher galvanisch getrennt vom MSP430 gezündet wird. Zur Trennung benutze ich einen Optokoppler MOC3023 (es muss hier ein MOC3023 sein und nicht der MOC3020, da der MOC3023 nur 4mA Triggerstrom benötigt -- also gerade so viel, wie der MSP430 noch ohne zusätzliche Treiberstufen liefern kann). Der MOC3023 ist streng genommen ein Optotriac, welcher für unsere Anwendung perfekt geeignet ist. Er erhält seinen Zündimpuls (MSP-IN) über den Pin 49 (Port P5.5) vom MSP430, überträgt diesen auf seine Sekundärseite und zündet dadurch den Last-Triac TIC226. Wie wir eben gelernt haben, hängt es also nur davon ab, wann wir den Triac zünden, um so die Helligkeit der angeschlossenen Lampe anzupassen.

Theoretisch gesehen brauchen wir nur zu wissen, wann die Spannung einen Nulldurchgang hat. Dann warten wir 0 bis 10 Millisekunden und schicken anschließend vom MSP430 einen kurzen Impuls heraus, der den Triac zündet. Da sich ein Triac aber im Nulldurchgang der Spannung selber wieder löscht, muss das ganze natürlich fortlaufend geschehen (100 mal pro Sekunde), denn sonst würde unsere Lampe ja nur wenige Millisekunden (bis zum nächsten Nulldurchgang) leuchten. Wo bekommen wir aber das Wissen über den Nulldurchgang her? Hier gibt es mehrere verschiedene Möglichkeiten. Ich habe eine Variante gewählt, bei der ich mit meiner Wechselspannung (12 Volt) aus dem Trafo, der meine gesamte Platine versorgt, direkt an einen Optokoppler 6N138 gehe (die Diode vor dem 6N138 ist nur als Schutz der internen Diode vor der negativen Halbwelle der Wechselspannung gedacht -- die verträgt der Optokoppler nämlich nicht):


Auf seiner Sekundärseite hat der 6N138 noch einen 1k-Pullup gegen VCC, damit wir immer definierte Pegel haben. Der Optokoppler schaltet ab einer Spannung von ca. 1,3 Volt auf der Primärseite VO komplett auf GND durch, ansonsten sperrt er vollständig. Somit wird die 50Hz-Sinusspannung des Netzes in eine saubere 50Hz-Rechteckspannung übersetzt. Auf dem Oszilloskop sehen beide Spannungen dann so aus:


Ja, dieses grausam unrunde Signal ist wirklich die "Sinus"-Spannung, die aus meinem 1,99-Euro-Billigtrafo rauskommt. :-) Man erkennt auf dem Bild leider nicht ganz so gut, dass der Optokoppler wirklich erst durchschaltet, wenn die Sinusspannung ca. 1,3 Volt erreicht hat und auf der fallenden Flanke auch bei 1,3 Volt wieder sperrt. Daher ist die low-Zeit des Rechtecksignals nicht ganz so lange wie die high-Zeit, was uns aber völlig egal ist, da wir später auf Flanken triggern werden. Die Rechteckspannung (RECT-OUT) habe ich nämlich direkt an den Pin 16 (Port P1.4) des MSP430 angeschlossen. Nun können wir z.B. ganz einfach auf fallende Flanken triggern, anschließend 0 bis 10 Millisekunden warten und dann den Zündimpuls auf Pin 49 heraus geben. Wie wir das alles im Detail lösen, lesen wir auf der nächsten Seite.