Uno application as an LED grow light controller

Hello:

I plan to put together an LED grow light consisting of 3W full-spectrum LEDs. Right now I have one-hundred or so of them and I was wondering what I could use an Arduino Uno for in controlling an array of them.

Obviously I plan to tie a RTC to the Uno for turning the lights on and off. The LEDs are advertised as three watts but when I drive them at not even these power levels (~3 volts at ~400 mA), they start getting warm in a hurry. I drive three of them in series with a 12V source through an IRF510 MOSFET, biasing the transistor with a variable resistor voltage divider and this can get the LEDs cooking very quickly (These are the LEDs that look purple but when I do a decidedly unscientific spectrum analysis of the light they put out with a compact disk used as a “reflection diffraction grating”, they have a lot of blue and red and have an advertised wavelength range from 380 to 840 nM). The whole thing is to be powered from a PC power supply, including cooling fans.

So the plan is to have these “on” for 12 hours per day (at least). I want to provide sufficient illumination for a 2’x2’ area, which calculates to about 216 LEDs, or 66, 3-element LEDs (each driven by 1 MOSFET).

The Arduino’s job is to turn everything on for an exact time every day and to:

  1. monitor the temperature of a sample of the LEDs and/or;
  2. monitor the currents (using a Hall effect ammeter) in each (or some) of the 3 LED strings. It’s job would also to control the LED currents by modulating the bias voltages on the FETs to keep everything relatively cool by turning fans on and off and reducing the LED power by controlling the FET biases.

Can anyone tell me if some problems I will run into using an Arduino Uno? Is the Uno up to the job of controlling up to 66 current elements as described or is there a better alternative (other than by buying an already-built light). My intent is to go easy on the LEDs by not letting them get too hot so they will last as long as possible, even if light output suffers a bit.

Thanks everyone!

The Uno will more than likely be able to do the job. Please draw a schematic how you think you will connect everything; a photo/scan of a hand drawn one will be OK.

The IRF520 not so; it’s not a logic level MOSFET.

Please provide a link to the (preferably datasheet of the) LEDs; it’s possible that they require a series resistor that you might have forgotten and hence they got hot.

Your application screams for PWM-fan's controlled by a temp. sensor me thinks.

Also i guess you'll need a relayboard to switch the transformers used to power the led's.

And of course smokedetectors or heatsensors for in case it all catches fire. If that happens the whole system should be shut down automatic and/or even sprinklers should start automatically.

It's best to make a drawing of all your led's first and develop (with help of this forum) the whole system so you only buy the parts once and don't need to change it all the time.

A neighbour here just placed a big tent in his garden with very strong purple light coming out of it, guess they are growleds as well but he is loosing loads of it by not using mirrors/reflecting material.

He uses a plastic tent which can easy get broken in a storm...make sure your system is very safe..

As far as the MOSFETs are concerned, I will be using driver transistors to bias the mosfets.....my main concern is how do I individually address (monitor the currents and control the bias of the mosfets) the 66 separate circuits to the one arduino?

All LEDs require heat sinking if on for more than just a few seconds.

Paul

The LEDs are advertised as three watts but when I drive them at not even these power levels (~3 volts at ~400 mA), they start getting warm in a hurry.

"High power" LEDs have to be heatsinked. They don't get as hot as an incandescent bulb, but the silicon chip can't take as much heat as an incandescent bub. (LED "light bulbs" from the hardware store have a heatsink and a built-in constant-current power supply.)

I drive three of them in series with a 12V source through an IRF510 MOSFET, biasing the transistor with a variable resistor

That's not a good way to drive an LED. There is no real "control" and the MOSFET will overheat too if it's turned partially-on.

LEDs should driven by a constant current supply. With "regular little" LEDs, the current is controlled/limited with a resistor. But, the resistor often dissipates more power than the LED so it's an inefficient way to drive high-power LED. (Plus, you need a power-resistor and sometimes a heatsink for the resistor.)

High power LEDs are driven with a [u]constant current power supply[/u] (not a normal constant voltage power supply). They are expensive but you can run multiple LEDs in series (depending on the power supply's voltage/power rating). If you get a dimmable constant-current supply (technically controlled current) you can turn the LED on or off with a low-current 10V signal (or dim it with 10V PWM).

.....my main concern is how do I individually address (monitor the currents and control the bias of the mosfets) the 66 separate circuits to the one arduino?

Why? You can use daisy chained [u]shift registers[/u] to address an almost unlimited number of LEDs. (But, that's only on/off, you can't dim with shift registers.)

but when I do a decidedly unscientific spectrum analysis

That information should be on the manufacturer's datasheet (if you buy from a good supplier/manufacturer).

....if I put a stable voltage on the MOSFET (gate to source) that should keep a constant current to the LEDs I believe...

I did not know about the shift register idea, thank you, I am still learning. So that can be the way to turn each one on and off and I can just calibrate the current with a potentiometer in the gate bias of each FET/LED string.

Also yes I see that there are better MOSFETs than the IRF510 that can use logic-level voltages to operate (bias) the FETs.....

Also can I not use two (or more) sets of shift registers so that each string of LEDs has multiple inputs for biasing and/or control?