Constant Current Square Wave through LED

I am running a somewhat powerful LED, on the order of 3.5V 500mA, off of an ~11V battery using a constant current switched mode power supply from Ebay that uses the LM2596. What I need to do now is turn on and off the LED using an Arduino at a variable frequency of around 10 to 100 hz and 30% duty cycle, and have the current rise and fall times be under 5% of the period, which is 0.5ms at 100Hz. In other words, a square wave, not a sine wave. I have an Arduino Pro Mini in the project already that is outputting the correct pattern, but how do I amplify this?

I've thought of a couple of solutions, but none seem to be feasible.

• Switched mode power supply controllers with a PWM input seem to try to smooth out this input and give an even output current, the opposite of what I want.

• I could use a simple current limiting resistor with a transistor between it and the LED, but this is too much power dissapation (~5W) for a reasonably sized resistor, not to mention the variation in current with battery charge and LED temperature (and therefore voltage drop).

• I could have a switched mode power supply bring it down to maybe 4-5V and use a resistor and transistor after that, which would solve the heat and battery voltage problems but make the accuracy even more dependent on forward voltage.

• If I keep the constant current power supply and a transistor is put between the battery and power supply input, the inductor would keep the current from changing quickly enough.

• The most feasible solution I've thought of is to put a transistor between the power supply output and the LED, but can switched mode power supplies handle this kind of switching on their output? Would the power supply spike the voltage when the LED is disconnected to try to maintain the constant current? How well does the maximum voltage setting on those power supplies work?

I'm going to spin a custom board in the future, but right now I'm looking for a solution simple enough to implement on a protoboard.

• "As quick as possible" is not an engineering specification. Do you have some specific numbers for the switching time? Aug 6, 2014 at 23:00
• Maximum switching time is around 5%, so 0.5ms at 100hz. Aug 6, 2014 at 23:16

• Switched mode power supply controllers with a PWM input ...

Almost. Pin 5 of the LM2596 is an enable input; put the PWM through that.

• The problem is that the part will have to start up and get back into regulation every time you pulse. Depending on your requirements for dimming dynamic range and light quality, this may or may not be a problem. Also, the LM2596 regulates the output voltage rather than the output current, making it a poor choice for an LED driver! Aug 6, 2014 at 22:47
• So does the LM317T. And yet it's one of the components of choice for constant-current drivers. Ohm's law, it's the law! Aug 6, 2014 at 22:59
• Ohms law doesn't govern diodes, though. That's kind of the problem :-P Aug 6, 2014 at 23:46
• Indeed, but from the looks of the board I have, there is a separate control chip that reads the current using a shunt resistor and adjusts the voltage accordingly. Aug 6, 2014 at 23:54
• @user49628: Ohm says: "I = E/R" , so if I is constant, the supply will adjust the voltage across the load so that the current into the load is what it's supposed to be, no matter whether the load be a diode or a watermelon. Aug 7, 2014 at 0:14

Why not use 1 side of an SN754410 Quad Half H-Bridge and ToneAC on the Arduino to drive the LED ?

I am using this to drive 4 LED units, each 4.5V 54mA from my Arduino. My main power supply feeds a 7805 voltage regulator, and this supplies the Bridge. A diode on the output side drops the voltage to around 4.7V, and total current = 54 x 4 = 216mA.