WS2812B RGB LED strip with two different power supplies

Hi!
I've started a project with an Arduino UNO and a strip of WS2812B LEDs a while ago that it seemed really simple, but it got really complicated (for me at least) really fast. I apologize if my question is really dumb, but I don't know much about electronics and I couldn't find an exact answer to my question.

Hardware:

  • Arduino UNO
  • 2x power supply brick of 5V 8A (if it help, I've attached an image of it)
  • 3m strip of WS2812B (5V) LEDs with 60 LEDS/ m (180 LEDS in total)
  • 2x capacitor of 1000uF 10V

I've also attached the scheme of my circuit. Assume that those two power supplies are my power supplies bricks, the strip is as I described above and the Arduino is not powered by the USB, but powered by the power supply.

What I want is to connect one end of the strip + Arduino to one power supply, and the other end of the strip to the other supply.
Why two power supplies? Because I have 180 LEDs, assuming that each LED drains 20mAh at full brightness for each color (60mAh for the white color) => 180 LEDs x 60mAh = 10.8A.
I don't know exactly if I will ever light all the strip with white at full brightness, but I want to make sure that if I do that, I will not have any problems (not enough power, big voltage drops), so this is why I want to use two power supplies.

My questions are:

  1. Can I use two different power supplies for each end of the strip? (I know I can feed power to both ends of the strip from the same power supply, but I don't know if I can do this from two different power supplies)
  2. Is it safe to do this?
  3. Can I take some safety measures against possible issues (I would like to not burn down the house)?

power_supply.jpg

scheme.JPG

OK, well a couple of points here - actually quite a few!

The wisdom of connecting two power supplies in parallel is often questioned here - I am not sure; it may or may not work well. The obvious approach is to break the 5 V line in the middle of the strip but of course, keep the ground connected along with the data.

You show the 470 µF (more-or-less) capacitors connected across the power supplies. That is not functional. The power supplies already have capacitors on their outputs; the purpose of the capacitors is to buffer the voltage at the very start of the strips so that is the point at which they need to be connected. Similarly the series resistor needs to be connected there. If there is any significant distance between two sections of strip, there should arguably be another series resistor there.

But you do not only feed power to the ends of the strips. 50 LEDs draws about three Amps and considering how lightweight the strip foils are, you really need to feed power (that is, 5 V and ground) every 50 LEDs or so. At the minimum, if you break the 5 V in the middle, you should bring the power - bundled together with the strip itself - from each end to same section at the break point.

And speaking of bundling, the data wire should be bundled with the power, back to the Arduino. So the 5 V and ground come back to the Arduino from the beginning of the strip, not from the power supply.

The obvious approach is to break the 5 V line in the middle of the strip but of course, keep the ground connected along with the data.

I tried to avoid cutting the strip, but it seems that this is the best option so far.

The power supplies already have capacitors on their outputs

I really didn't know that.

And speaking of bundling, the data wire should be bundled with the power, back to the Arduino. So the 5 V and ground come back to the Arduino from the beginning of the strip, not from the power supply.

For the circuit, I tried to follow the Adafruit docs:


I assumed that, instead of powering the Arduino from the USB, I just have to wire it to the 5V of the power supply. Can you explain why I should have the 5V and GND coming from the strip and not from the power supply? (I think I didn't understand the reason and I'm really curious)

Thank you for your reply!

cydoxy:
I really didn't know that.

Withe few exceptions, a power supply must have a capacitor on its output to allow it to cope with sudden impulsive and transient demands for current. As a power supply, a battery is in effect the same as a large capacitor. But between the power supply and the LED strip the wiring has resistance and inductance which means a sudden demand for extra current - as happens as the LEDs switch on and off with PWM - will cause a drop on voltage which may affect other devices connected to the same power supply.

cydoxy:
For the circuit, I tried to follow the Adafruit docs:

That is a form of "schematic" - it says "connect this to that" but does not necessarily supply all the details of how you connect it.

cydoxy:
I assumed that, instead of powering the Arduino from the USB, I just have to wire it to the 5V of the power supply. Can you explain why I should have the 5V and GND coming from the strip and not from the power supply? (I think I didn't understand the reason and I'm really curious)

I mentioned above, that wiring has resistance and inductance so that the necessary fluctuations in the current cause voltage drops and also electromagnetic fields that can radiate from one part to another. An inductor consists of one or more open loops of wire, so to avoid allowing wiring to act as inductors, you keep the wires bunched together, supply and return, so that they cannot form open loops. Simple as that!

The only way you can avoid forming a loop between power and signal wires, is to have them all travel together and the order I described is one way they can do that. Alternatively, you can run the data wire along with the power wires from Arduino to the power supply and then back along the power to the LED strip, but this arrangement may make the path of the data wire longer, which you wish to avoid.