LED Control Via Arduino - Advice Required - Page 1
Forum section: electronics / general

author: Harsh Chandola
author_rank: Contributor
timestamp: December 19, 2016, 05:04:21 am
content: Hi,So I'm designing a system where LED's brightness would be controlled and could be also switched between Warm white LEDs and Cold White LEDs.Further more controls would be added to it like wifi connectivity and bluetooth connectivity, but for now I'm just designing a switchable and dimmable LED system.So I realized I have to use a constant voltage driver instead of constant current driver, what i want to ask is whether the design schematic I have attached seems right or not?Since LED's dimming would be controlled through PWM I understand using constant current driver will cause problems hence using constant Voltage driver.Will this design work?

author: Kremmen
author_rank: Super Contributor
timestamp: December 19, 2016, 09:46:06 am
content: If you feel comfortable working with line voltages then by all means take a look at Supertex (now Microchip) HV9910B led driver.It can take up to 450VDC input voltage, drives constant current (defined via a sense resistor), dimmable either by analog voltage or external pwm signal.Minimal external components too. I have had good luck applying this chip and will do so again.

author: Harsh Chandola
author_rank: Contributor
timestamp: December 19, 2016, 11:02:47 am
content: Quote from: Kremmen on December 19, 2016, 09:46:06 ambut since i am using pwm signal from arduino to vary brightness which is achieved by changing the amount of current fed to the LEDs wouldn't it make the driver misbehave as there's not going to be any constant current any longer once I start varying the dutycyle?

author: Buriedcode
author_rank: Super Contributor
timestamp: December 19, 2016, 05:01:08 pm
content: Don't power your arduino via a resistor divider. It *may* work but your Arduino requires >10mA, probably more and a resistor divider will use more power.You can control most constant current drivers with PWM but as you rightly pointed out, switching LED's across a constant voltage supply (with suitable current limiting resistor) is much easier.The 'AC' in your schematic, I'm assuming is mains voltage.Why don't you buy 12V LED strings (which are grouped by 3 white LEDs in series, and a series resistor) then you can use the same supply for your Arduino, as your LED's, and use MOSFETs for PWM dimming?If you're mixing the 'warm' and 'cool' LED's, then it sounds like you're making your own LED strings here, with alternating warm/cool, in which case the paralleled '3 LEDs in series' can make wiring more awkward, but makes driving easier, and 12V supplies are ubiquitous.

author: Kremmen
author_rank: Super Contributor
timestamp: December 19, 2016, 06:44:37 pm
content: Quote from: Harsh Chandola on December 19, 2016, 11:02:47 amNo. The driver is made to be controlled using an external pwm signal. Google the data sheet and all will be clear.

author: Harsh Chandola
author_rank: Contributor
timestamp: December 21, 2016, 03:55:41 am
content: No. The driver is made to be controlled using an external pwm signal. Google the data sheet and all will be clear.Are you sure? my supervisor told me the driver might behave differently if I cascade dimming via pwm with constant current driver.

author: Kremmen
author_rank: Super Contributor
timestamp: December 22, 2016, 07:52:09 am
content: Why ask such questions when the answer is right in front of your eyes. Googling "HV9910B" as i suggested immediately brings up the data sheet:http://ww1.microchip.com/downloads/en/DeviceDoc/20005344A.pdfThere, on the first page it says _twice_ that the chip includes a pwm dimming feature. Quoting:"...without the need for an external low voltage supply. HV9910B includes a PWM-dimming input that can accept an external control signal with a duty ratio of 0 - 100% and a frequency of up to a few kilohertz. It also includes a 0- 250mV linear dimming input which can be used for linear dimming of the LED current. HV9910B is ideally suited for buck LED drivers. Since the HV9910B operates in open loop current mode control, the controller achieves good output current regulation without the need for any loop compensation. PWM dimming response is limited only by the rate of rise and fall of the inductor current, enabling very fast rise and fall times. HV9910B requires only three external components, ..."

author: Seekonk
author_rank: Super Contributor
timestamp: December 22, 2016, 10:07:26 am
content: Back to the OP's question. Just what is your personal preference when using a LED? I never operate a LED close to the max current limit. That may not make sense to some, if it says you can do it why not. A LED becomes less efficient the more current goes through it. Increases of 30% can be obtained. If it is physically possible, just use more LED. This will give more diffuse light and spread out the heat to a larger area. If the end product is more light this makes sense. Operating at a lower power basically eliminates concerns about thermal run away and makes voltage drive a perfectly fine solution.

author: Harsh Chandola
author_rank: Contributor
timestamp: December 22, 2016, 10:11:46 am
content: Quote from: Kremmen on December 22, 2016, 07:52:09 amAm sorry, yeah this driver looks great. thank u so much

author: Harsh Chandola
author_rank: Contributor
timestamp: December 22, 2016, 10:14:34 am
content: Quote from: Seekonk on December 22, 2016, 10:07:26 amWell I do prefer to stay a bit under the max rating of an LED . efficiency is not an issue at the moment for me hence my preference.

author: taustin
author_rank: Contributor
timestamp: December 28, 2016, 05:48:24 pm
content: To drive the FETs you may want to look into a FET driver, such as the Maxim MAX17600 series. There are many other drivers that will do the trick as well.The drivers switch the FET on and off much faster than the Arduino is able to. While this may not seem like much, it can make a difference in how much power the FET dissipates and how much heat is generated and how efficient the overall design is.Good Luck!