The BEST way to control white stair lights?

Hello everyone.

I have been thinking for a while about a stair lighting project. SEQUA® Automatische LED-Treppenbeleuchtung (Sensorgesteuert) - Automatic LED stair-light controller - YouTube I essentially want to make this except with LED strips going across the entire step instead of plain LEDs on the side since I have shoes on the stairs. I also have to cut down on the wires because I will not be able to rip open the wall and patch it back up, so I was thinking of using ethernet wire and power over ethernet, using maybe four wires for power.

For control, I was thinking about having using 1 or 2-bit shift registers on each stair since there is already code written to PWM shift registers. I have 14 stairs, and this would make it so that the number of wires running up the stairs remains constant, as opposed to just running a pair of wires to each LED strip, which would quickly become a cabling horror. This would take what, one wire for clock and one for data?

For power, I figured I could use MOSFETs. Should I bother buying the high current (30A) ones if all I need to control is a max of 2W per step? I also heard that logic signals have to be "buffered" along distances. Do I need to make a buffer circuit?

Is this the best way to go about this project?

Here is someone a bit ahead of you LED stairs: the chips are talking | NovoKane.

What are your LED's power requirements? You mention MOSFET so I am thinking that they are higher then the shift register can handle. So you would not need a buffer unless you are locating the mosfet out near the LED. Speaking of MOSFETs... I think you really want a high power constant current driver, as high powered LEDs + resistors are not a good combination since the LED changes as it ages.

Cheers!
Andrew

Darn. I would need a constant current driver on each stair? How easy is that to create? Is it simple enough to create with just a current mirror or do I have to buy something?

I recently had 50 PCBs built of a simple 4 channel constant current driver using just a few components; an opamp, a darlington transistor and a few passives. It has 4 inputs (one per channel) that you connect to the Arduino; if you set the Arduino pin mode to "input" (high impedence) the circuit is "on", if you pull it low (pinmode output, set to 0) the circuit is "off", and if you set high (pinmode output, set to 1) the circuit is no longer constant current; it becomes a normal darlington current "amplifier" (so don't do that with LEDs!).

I'd be happy to share the schematics (you can breadboard it pretty easily) and/or sell you some PCBs, kits or assembled (it does use some SMT so its a good project to cut your teeth on SMT assembly if you want).

You need to give the board a voltage just above what is required for the LED (so generally 4-5v -- the closer it is the more efficient the circuit), and it moderates the voltage to provide a constant current source.

Andrew

@Andrew

Sure, I'd love to see your circuit and PCB design. Right now I know I need a constant current circuit, but there seem to be many ways of building one including this one: instructables.com and I don't really know how to quantify the advantages and disadvantages of each. That link I provided does have a pretty simple circuit though. PWM-able too if you look down in the comments for where to hook it up.

That circuit is alright, the main problem with it is that all the current has to go through the resistor at the bottom, meaning it has to be high wattage. Depending on the type of FET you use you might not be able to run it at voltages lower than 10V. It is not very stable with temperature. More complex circuits can over come these limitations.

@Grumpy_mike: Feel free to poke holes in this design as well! Of course all designs are a trade off between price and performance. If you have a link to a design that does not require a current sense resistor then I'd love to see it as all designs that I've seen use them.

Don't be scared of all the connectors on the top. The real circuit is in the middle row, and consists of (left to right):
1 pot that lets you pick the current
1 opamp
1 resistor (R13) that just stops drawing too much from the opamp
1 connector (T1) Where you would pull down to turn off the circuit (i.e. PWM)
1 darlington to burn away the extra voltage
1 resistor (RSENSE1) that senses the current (you can use very low values, .1 to 1 ohm for example so heat dissipation is not such an issue with this resistor)

And on the far right SV1 is where you hook up the LED.

In short, the opamp uses feedback to equalize the voltage across RSENSE1 and the pot.

The PCB is essentially 4 of these, but certain parts (namely the opamp) are quad so its just one chip...

If you have a link to a design that does not require a current sense resistor then I'd love to see it as all designs that I've seen use them.

No I didn't say that, what I said was that the current in that design was DETERMINED by the value of the current sensing resistor. In that design you posted it is not, and therefore better.

@grumpy_mike: I understand what you are saying now. R3 is forced to drop approximately the activation voltage of the BJT, or .7 volts. This is pretty high compared to a < 1 ohm resistor, especially at low high brightness LED currents of about 100 to 200mA (i.e < 1 amp). And if you want the circuit to be variable current, R3 it would have to be the pot. So now you have to find a high wattage pot! Not pretty in that it provides basically no physical design advantage over the LED + resistor combination (by "physical" I am not including the constant-current property which is sort of a design feature).

@orangeLearner: Anyway, you can buy the opamp pretty cheaply at digikey http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=MCP6044-E/P-ND or I have a PCB that uses the SMT version that I can send you assembled or not. PM me if interested...

You don't need a variable high power pot, just put a 10k pot across the high power sense resistor..

I use a ready to use product from Poland is very good. Look it is film with this one: