Electronic – arduino – How to drive high power LED and Arduino by the same power source

arduinoledmicrocontrollerpower supply

I am building a plant light consisted of 24 high power LEDs (Cree ML-E) and an Arduino Uno. I would like to power the LEDs and the Arduino by the same power source. Since creating circuits for dealing with household power requires quite a lot of experience and also can be potentially dangerous, I decided to go for a commercially available AC-DC power supply similar to the ones for laptop, such as this (TRANSFORMER DESK TOP 24V 60W).

Coming with computer science background, here are some problems I would need advice for:

  1. The fundamental problem: can these LEDs and the Arduino share the same power supply?

  2. I suppose the power supply should have output voltage high than 12v, which is the maximum that an Arduino can take. How do I lower the voltage to the safe range of 7-12v?

  3. The forward voltage for the Cree ML-E is 3.2v, therefore the wiring I can think of is first to create three series of LEDs, 8 in each. Then connect these three series in parallel. Is this a proper way of wiring or I was wrong?

  4. I found there are LED drivers ready for use out of box, such as this (POWER SUPPLY LED 36W 700MA). Is it a good idea to use it to mainly power the LED and "fork" another power source from it for the Arduino?

Note: The Arduino is for the sensors placed at the same spot as the plant light

Best Answer

You have asked a bunch of questions there which all have straightforward answers, but it's a bit much to try to cover them all in detail this space, but let me give some suggestions.

LED light for plant?

First, before proceeding, are you sure that LED light, which usually has a very narrow spectrum (or a few narrow lines), will be suited to plant light? I don't know about this, but it would be worth verifying before going to effort.

How to power and control LEDs

Next, you need a few clues about how to power and control LEDs.

You don't mention what the role of the Arduino will be -- will it be to turn the LEDs on and off, or do you want it to produce gradations of light intensity?

a) If on/off, you'll want an arduino shield that provides a relay or power-transistor which can switch an appropriate amount of current, which I'll get to below.

b) If gradations, you'll need a shield that can control the current in increments. Or, a popular alternative is an output controller that pulses the light very rapidly, controlling the overall light by the ratio of on to off time. This is referred to as "Pulse Width Modulation" or PWM. Again the PWM output switch element (transistor) needs to be rated for at least the amount of current you supply to your LEDs.

Edit: Arduinos usually have some outputs that are referred to as "analog outputs" but are actually PWM, so this capability is built in to the Arduino -- though you would still need to provide an external transistor to handle the current of the LEDs -- see examples online.

Supplying electricity to LEDs.

This is the mildly tricky part. LEDs are specified with a typical voltage and current number. For Cree ML-E: 3.2V at 150mA. So you might think "I'll hook eight of those up to 24 volts, and that'll be about right". Unfortunately, it's not so simple. LEDs have a characteristic whereby if you supply a little less than the nominal voltage, and they pass very little current and produce little light. A little more than the nominal voltage and they pass a great deal of current, and probably burn out.

So you don't want to supply a fixed voltage direct to an LED. Instead, you provide a supply which regulates the current. You'll notice that the LED supply you linked to is described as a constant current source. But you don't need to be that fancy. Instead, you can use a supply with a voltage higher than that needed by the LEDs, and put a resistor in series. Example:

Supply: 5V LED: requires 3.2V, 0.15A Voltage difference: 1.8V Resistor: I = V/R So R = V/I, = 1.8/0.15 = 12 ohms. (And FWIW, P = I * V = 0.15 * 1.8 = 0.27 W, so choose a half watt or better physical size of resistor.)

Yes, you can put a bunch of LEDs in series, so for your example 6 x 3.2 or 7 x 3.2 would be possibilities, and still have some voltage drop left between the LED requirements and the 24 V supply. (You will need to factor in that whatever is switching the LEDs, such as a transistor, will also add some voltage drop to the chain.)

Generally, it is a bad idea to attach LEDs (or chains of LEDs) directly in parallel, because the actual voltage for the nominal current may vary from one LED to another, and from one chain to another. So multiple LED chains should each have their own series resistor.

Power for Arduino

Transforming 24V for use with Arduino: The easy answer here is a 7805 voltage regulator which is super easy to use. There are zillions of references for this on the web, so I'll not elaborate. Couple of things to attend to:

a) 24V -> 5V is a relatively large drop for the 7805, so you will need to attach it to a heat sink.

b) The switching of the LEDs will cause sharp changes in the demands on the supply, so err on the side of using relatively large capacitors with the 7805, and parallel them with smaller caps to help with the high-frequency aspect of the sharp switching. This thread is representative. Capacitor Sizes for 7805 Regulator.

[Edit] I'd neglected to note that the original question asked about Arduino with 7-12V power input, which is because Arduino Uno has a voltage regulator that handles the power from the Power In jack. The Uno can run on 5V from USB (when no power is supplied at the Power In jack), but if you are supplying power to the jack, then as the questioner mentioned, that will need to be 7V or higher. So a reasonable solution would be a 7808 or 7809 to obtain 8 or 9V from 24V.