I want to dim my ceiling LED light. I disassembled it, and it turns out that this is a led strip with many leds in serial. Its power supply is a 40V 450mA one, and I have built a circuit that could dim it with PWM from a microcontroller. Unfortunately a very slow flickering can be seen when I decrease the duty cycle under a threshold, and above this threshold it is just lighting with the same brightness.
For me it seems that the LED has a capacitor that stops the PWM from being effective if the duty cycle is high enough, and if it is lower, it starts to discharge, and when it discharges under the forward voltage of this LED strip, it slowly charges up again until the LEDs light up again.
The circuit I am driving the LED with is:
I have tried this with other lamps and it worked well.
I try to drive it with an ESP using the WLED firmware. It runs with an 1 kHz frequency in theory.
I probed the voltage between the source and the drain because I have the lamp built in the ceiling, and I have the negative side of the lamp and the negative side of the power supply wired down to my desk, but I think it shows the symptoms well, just when the drain-source voltage is low, the lamp will be high.
And also my scope is a cheapish USB one but the better ones are expensive for me and my use cases, sorry if the pictures are bad.
When duty cicle is high:
When it is off (It oscilates a bit because it picks up the mains voltage, but it is not that much):
And here is when the weird flickering happens:
My question is: I have 11 of this lamp, and I want to dim them individually. How could I dim these in a way so that the components would not cost too much?
I don't want to modify the lamps, as I rent this place and I don't own them.
Thank you very much.
Edit:
The problem might be that my power supply is actually a current source. It is ambiguous for me if it is or not, but I uploaded it according to the comments.