597

Some time ago I’ve installed in the roof over the terrace four LED spots. Unfortunately, the brightness of the four spots (2.8W each) was much too bright for us.

Note: in the updates you'll find a new schematic and PCB (V2.2), new versions of firmware and PC application

for the english version please scroll down...

Hallo, ich möchte euch hier gerne mein Projekt vorstellen.

Ich habe vor einiger Zeit auf der Terrasse 4 LED Spots in den Dachkasten eingebaut, leider mussten wir dann feststellen, dass die 4 Spots (je 2,8W) viel zu hell waren. Aus diesem Grund wurden die LED’s auch so gut wie nie angeschaltet (wer sitzt schon abends mit einer Sonnenbrille auf der Terrasse). Irgendwann kam mir dann die Idee, die LED’s zu dimmen (in der Anleitung steht zwar nicht dimmbar), aber da die LED‘s 12VDC benötigen sieht die Chance gar nicht so schlecht aus. Dann habe ich schnell das Steckboard raus gekramt und ein paar Bauteile zusammen gesucht. Anschließend habe ich eine Schaltung zusammen gesteckt. Ich habe mich beim Versuch für ein µC entschieden, da dies die schnellste Variante war, die LED’s mit PWM anzusteuern. Und siehe da die LED’s lassen sich doch dimmen. Während den Experimenten kam mir dann die Idee, die Schaltung so zu ändern das der Dämmerungsschalter die Schaltung mit 12VDC versorgt und die LED’s mit einem Tastgrad von 10% leuchten. Wenn dann ein Bewegungsmelder eine Bewegung erkennt wird (fast) stufenlos auf 50% hoch gedimmt und bei verlassen wieder zurück auf 10%. Beide Werte sind individuell über UART einstellbar und bei Versuchen hat sich herausgestellt das 10% und 50% optimale Werte bei unseren LED’s sind. Jetzt haben nicht nur die LED’s die optimale Helligkeit, es wird auch noch Energie gespart. Wie schon beschrieben, schaltet der Dämmerungsschalter die 230VAC für das Schaltnetzteil und die 12VDC versorgen jetzt die Schaltung und die LED’s. Die 12VDC wird dann auf 5VDC (IC2) für den Logikteil herunter geregelt. Der µC arbeitet mit einer Frequenz von 200kHz und erzeugt damit eine Frequenz von 150Hz für die PWM. Benutzt wird nur ein PWM Ausgang der die 4 Logik-Level MOSFET’s ansteuert (ein MOSFET pro Lampe). Das Programm wurde mit „mikroBasic PRO for PIC“ von „MikroElektronika“ entwickelt. Die 230VAC vom Bewegungsmelder werden galvanisch über den OK1 (Optokoppler 4N28) getrennt und auf einen Eingang vom µC gelegt.

 

Das Programm für den µC ist so klein, dass es mit der Demo-Software von MikroElektronika bearbeitet werden kann. Zusätzlich habe ich mit "Visual Basic Express" eine Software entwickelt mit der man über UART die Werte übermitteln kann.

 

Optimierungen:

Die Schaltung ist so ausgelegt, dass ich ein Großteil der vorhandenen Bauelemente verwenden konnte. Optimaler wäre sicherlich der Optokoppler PC814, anstelle vom verwendeten 4N28, dann hätte man sich die Diode D1 sparen können (siehe http://www.mikrocontroller.net/articles/230V). Für den verwendeten µC PIC16F628 hätte auch ein PIC12F gereicht bzw. wäre dieser Zeitgemäßer. Für die MOSFET T1 – T4 hätte man auch SMD Varianten nehmen können. Alles zusammen hätte für ein wesentlich kleineres LP-Layout geführt. Ich habe die Leiterplatte so entworfen, dass diese in eine Aufputz-Abzweigdose passt (in meinem Fall 85x85mm), aber beim klemmen habe ich gemerkt, dass ein paar mm mehr Luft besser gewesen wären.

 

_____________________________________

EDIT:

I would like to introduce my project here.
Some time ago, I’ve installed in the roof box over the terrace 4 Led spots (down lights). Unfortunately the brightness of the 4 spots (2.8W each) were much too bright for us.
Because of that, the LEDs were almost never turned on (who wants to sit with sunglasses in the evening on the terrace). Eventually, I got the idea to dim the LED's (the manual says they are not dimmable), but the LEDs need 12VDC for supply and this was a good sign for me. Then I quickly dug out the breadboard and searched for a few components.
After that I put the components together into a circuit. For the experiment, I decided to try it with a microcontroller, as this was the fastest way, to drive the LEDs with PWM. And see, the LEDs can be dimmed.
During the experiment I got the idea to modify the circuit.
I wanted the twilight switch to supply the circuit with 12VDC, so that the LED’s will shine with a duty cycle of 10%.
Then, if the motion detector detects someone the LED will be dimmed up to a duty cycle of 50%. After a few seconds they will be smoothly dimmed down back again to a duty cycle of 10%.
Both values can be set individually via UART.
 During the experiment I found out that 10% and 50% are optimum values for our LED's.
 Now, not only have the LEDs the right brightness, they will also save energy.
As described above, the twilight switch switches the 230VAC as a supply voltage for the switching power supply and the 12VDC at the output, supplies the circuit and the LED's.
The 12VDC is then adjusted down to 5VDC (IC2) for the logic part.
The microcontroller operates at a frequency of 200kHz, and thus generates a frequency of 150Hz for the PWM.
In use, is only one PWM output to drive the 4 logic level MOSFET (one MOSFET per lamp).
The program was developed with "mikroBASIC PRO for PIC" from "MikroElektronika".
The 230VAC from the motion detector are electrically isolated by the OC1 (optocoupler 4N28) and applied to an input of microcontroller.
The program for the microcontroller is so small that it can be edited with the demo software from MikroElektronika.
Additionally, I’ve developed a program with the help of "Visual Basic Express" with which you can transmit the values via UART.

 

_____________________________________

EDIT:

 

_____________________________________

EDIT 03/31/2015:

Hi i changed the firmware for the µC and i have a problem now.

I removed the "delays" (for dimming time) and added a simple addition for this function. This is working well, but i have a problem to setup the values via uart.

I'm sending a data string from the windows programm to the µC via uart and the µC receive the string but chronology the is wrong.

I don't understand why because i use a uart receive interrupt.

This is a example for the data string:

start_byte |  percent_low |  percent_high |  dim_up |  dim_dn |  end_byte

   250        |        10          |          50          |     10      |     20      |    200

The new windows program and µC firmware is added below.

I hope someone understand my problem and can help me.

with regards

 

 

 

EDIT 03/31/2015:

_____________________________________

 

µC project and Win Software added

µC project and Win Software added 03/31/2015