Wenn man es Abends etwas gemütlicher haben möchte, ist es doch ein schönes Extra, wenn man die Belichtung dimmen kann. Dies geht leider nicht mit Relays, die können nur an und aus. Wir brauchen hier also etwas anderes. Hello MOSFET.
Die Grundlagen
(Wir beziehen uns in diesem Tutorial nur auf Gleichstrom über PWM)
Um die Helligkeit von LEDs oder anderen Gleichstrom-Lampen zu dimmen, passiert dies über die Spannung. Umso mehr Spannung wir anlegen, um so heller wird die Lampe. Wir müssen die Spannung also regeln. Dies kann man über ein pulsweitenmoduliertes Signal machen.
Wie der Name schon sagt, pulsen wir also die Spannung mit einer Rechteckkurve auf die Leuchtmittel. Wir schalten die Lampe also sehr schnell an und aus. Je länger die Lampe zwischen den Pulsen dabei an bleibt, desto heller leuchtet sie. Wir bilden durch diese Verschiebungen eine Effektivspannung, die dann die Lampe auf die gewünschte Helligkeit bringt.
Wie schnell muss das ganze passieren? Um eine für das Auge nicht flackernde Beleuchtung zuhaben, sollte die Frequenz dabei über 100Hz liegen. Auf unserem Dimmy ist die Frequenz auf 200Hz eingestellt. Sie sollte aber nicht höher als 500Hz sein. Wir reden hier also von einem extrem schnellen an und ausschalten der LEDs. Deswegen können wir dies auch nicht über rein Relay machen. Ein Relay würde diese Geschwindigkeit nicht schaffen und nach kurzer Zeit defekt sein. Deswegen kommen hier jetzt Transistoren zum Einsatz.
Transistoren? Die Bauteile, welche in zu Milliarden auf modernen CPUs zum Einsatz kommen, sind ganz weit heruntergebrochen digitale Relays.
Legt man an de "Basis" des Transistors eine bestimmte Spannung an, wird eine Verbindung zwischen Emitter und Collector erzeugt und der Strom kann fließen. Der große Vorteil hierbei ist, dass wir keine Mechanik dafür benötigen und der Schaltvorgang sehr schnell passieren kann. Perfekt also für die Steuerung unserer Lichter über PWM. Hier habe ich euch eigentlich schon einen Mosfet beschrieben. Also einen "Feldeffekttransistor". Bei einem normalen Transistor muss ein Strom auf der Basis fließen können. Mosfets eigenen sich für hohe Ströme und nicht ganz so schnelle Schaltungen. Die Frequenz von CPUs ist dann doch viel höher als bei unserer PWM, deswegen werden dort eher normale Transistoren verwendet.
Soviel zu den Grundlagen.
Wie funktioniert nun unser DIMMY
Unser Dimmy nutzt für die Erzeugung der PWM einen extra Chip, den pca9685. Dieser Chip wird viel zur Steuerung von Servos benutzt, da diese auch über PWM Signale gesteuert werden. Dieser Chip kommuniziert über den I2C Bus mit einem ESP8266. (Wemos D1). Auf diesem läuft Tasmota in einer angepassten Version. Unser PekawayMOTA. Prinzipell handelt sich um ein normales Tasmota bei dem wir den Driver für den PCA9685 aktiviert haben. Damit können wir nun den PWM-Chip über die Driver15 Kommandos ansprechen.
https://tasmota.github.io/docs/PCA9685/
Über diese Befehle könnet ihr nun also direkt den PCA9685 ansprechen aus der Tasmota Konsole.
Wir wollen dies jedoch aus unserem System machen. Deswegen verwenden wir wieder MQTT und haben pekaway.local als Broker direkt vor eingestellt in PekawayMOTA.
Kurzzusammen gefasst: VanPI -> MQTT zu Tasmota -> i2c zu PCA9685 -> PWM Mosfet -> LED.
Unser PekawayMota könnt ihr direkt über unseren Webinstaller (Chrome) flashen.
Wie könntet ihr euch selber einen Dimmer bauen?
Sehr einfach würde dies mit einem Esp8266/Esp32 Board gehen. Dabei ist es egal ob Wemos, NodeMCU oder ähnliches. Darauf flasht ihr einfach direkt Tasmota über den Online flasher (Chrome) https://tasmota.github.io/install/ dann wie immer die normale Verbindung in euer WLAN.
In der Modul Config von Tasmota könnt ihr einen oder mehre PWM Pins setzen.
Nachdem ihr das ganze gemacht habt, erscheint nun auch schon im Frontend ein Slider zum Dimmen.
Jetzt haben wir also schon ein Gerät im Netzwerk, welches uns die PWM erzeugt. Nun brauchen wir also nur noch einen Mosfet, um die eigentliche Spannung auf den LEDs zu dimmen. Dafür gibt es auf den gängigen Marketplaces aber eine große Anzahl an fertigen kleinen Modulen, welche ihr verwenden könnt.
Zum Beispiel hier:
https://eckstein-shop.de/Pololu-Big-MOSFET-Slide-Switch-with-Reverse-Voltage-Protection-MP
Selbstverständlich könnt ihr Tasmota, dann wieder über MQTT an eure beliebige Steuerung anbinden und die LEDs dimmen.