I’ve got a power problem with a 16 x 16 matrix of addressable RGB LEDs.

Front view

Circuit diagram example OP's note: this 4 x 4 array follows the same pattern as the 16 x 16 version in the photo.

First, an R3 Arduino Uno supplies the value of each LED. The LEDs are 5mm PL9823 (datasheet), run at 5V, and appear to draw 47.5mA at full white.

(Editor's note: notice that these aren't regular LEDs, they come with a controller that limits current and include a shift register in it - that knowledge will make the rest of question much easier to understand for some).

The Data Out of each LED is connected to the Data In of the next, thereby joining all 256 LEDs in series. The first Data In connects to a 150ohm resistor, then pin 6 on the Arduino. This is a PWM pin.

Back view, detail

None of the other LEDs have resistors, but I've seen a similar array done without them. This is because the resistors recommended by the manufacturer prevent the LEDs getting enough voltage for colour mixing, allowing only full red, green or blue.

They do, however, have a 100 nF capacitor each. This is a decoupling capacitor, with one lead attached to each power lead of the LED, thereby bridging the positive and negative terminals to supply more steady power as the light values change. The capacitors are mounted on the reverse side of the array. The VDD and GND leads of each LED are joined in parallel, in two separate grids. And of course, GND is tied back to the Arduino. USB powers the Arduino for now.

Power leads connected

If my maths is right, the combined current of 256 LEDs on full white at the same time should be 12.8A. I have a regulated PSU rated at 30V @ 3A. But the thing is, the current code for the Arduino is to drive only one light at a time, as a test. But the LEDs show no response when I switch the array on. I have the current turned up to maximum. I'm drawing 3A but no voltage.

Power supply before connection

Power supply after connection

With my multimeter, I was reading 200mV on some LEDs, sometimes, and 0mV at other points. I don't know what the difference could possibly be, the setup is pretty evenly balanced.

I removed one LED to test and it still works fine. In the beginning, I tested this whole arrangement but with a 9 x 5 array. Again, it worked fine. In this test I was drawing 1A even though the maths should dictate: (9 * 5) * 0.0475 = 2.14A?

9 x 5 test run

Could the power needs still be way too high for the power supply? My permanent solution was ultimately to locate a 5V @ 12.5A power supply, but I’d really like to be able to test my handiwork, to make sure it isn’t fried. Also I don't know if a 15A supply would be better, just in case, but I don't expect to ever have them all on, full white, at any point.

The goal is to be able to control each LED individually or in groups, using graphics libraries for Arduinos that generate geometric shapes and colour noise.

  • \$\begingroup\$ Can you provide a link to the LED datasheet? Your math seems right to me, you should poke around with a scope and see if the ucontroller signal is ok. Great handwork though, you could probably save all those 100n though. \$\endgroup\$ – Vladimir Cravero Apr 6 '15 at 16:54
  • 3
    \$\begingroup\$ If I saw 0.00V and 0.83A on my power supply I'd immediately think there's a dead short somewhere in my circuit ... \$\endgroup\$ – brhans Apr 6 '15 at 16:55
  • \$\begingroup\$ Here's the PL9823 datasheet. \$\endgroup\$ – Ricardo Apr 6 '15 at 17:40
  • \$\begingroup\$ The link to the datasheet beforehand and a schematic (maybe not all LEDs but of at least one LED) would have been helpful. If you look at Olin's answer you'll notice that he did not understand that the LEDs came with their own controller, as neither did I. These LEDs are suspiciously similar to regular RGB LEDs, and if one assumes so, then your question doesn't make much sense. There'll be a lot of headscratching on this one. \$\endgroup\$ – Ricardo Apr 6 '15 at 17:52
  • 1
    \$\begingroup\$ @Ricardo Thank you for taking the time attaching the datasheet on my behalf, I greatly appreciate the kindness. I absolutely see how this would be way too confusing without it, but as a novice it slipped my mind. Hopefully it, my basic schematic and my few other edits (in italics) will give a fuller picture. \$\endgroup\$ – Strings Apr 7 '15 at 17:14

It sure sounds like you've got a short from +5 to GND somewhere in that "smart LED" array. I don't think we can easily help you find it- you'll have to find it yourself. You can verify this with a multimeter set to ohms (with power off, of course).

I suggest giving it a good visual once-over, and if that fails to turn up anything (it's possible one of the LEDs is internally shorted, but less likely) then start cutting the 5V lines into groups and test the groups individually. Divide and conquer (or do a binary search if you prefer programming paradigms to political strategies).

I suggest disconnecting the Arduino during this testing- it can't help to have it connected, and it's possible you could damage something.

The (rather sketchy) LED datasheet is mute on the quiescent current draw, but I would expect a small current draw at 5V with no controller connected- perhaps some hundreds of mA or less.

  • \$\begingroup\$ It would be really sad if the OP would have to cut the power lines on such a well-crafted LED matrix. But +1 for sharing the clever method AND for suggesting using binary search for choosing the cutting points. \$\endgroup\$ – Ricardo Apr 6 '15 at 19:52
  • 1
    \$\begingroup\$ @Spehro Pefhany Thankyou for such a detailed answer, given how little information you had. It gives me a lot to go on. \$\endgroup\$ – Strings Apr 7 '15 at 17:15
  • \$\begingroup\$ There's another way- if you use a voltmeter on the lowest range and pass a few amperes you may be able to trace the current flow by following the voltage gradient. I've used that method to find shorted ceramic capacitors. \$\endgroup\$ – Spehro Pefhany Apr 7 '15 at 18:39

There is much confusion here, so a good answer is impossible. Here are a few issues:

The LEDs are 5mm PL9823, run at 5V

You didn't provide a link to a datasheet, but its quite unlikely that these LEDs are supposed to be driven to 5 V.

and appear to draw 47.5mA at full white.

They appear to draw 47.5 mA!!? Instead of guessing, READ THE DATASHEET. Are they supposed to draw that much? What is the maximum allowed sustained current and pulse current? You may possibly be overdriving the LEDs, especially if this current is sustained. There is no excuse for guessing and measuring when the datasheet tells you what you need to know. Measuring will only tell you what those particular units did on that day at that temperature and the other particular conditions that applied when you took the measurements.

The Data Out of each LED is connected to the Data In of the next

Huh? What? This makes no sense at all. LEDs are just diodes, and have no data in or data out leads. We do engineering here. We use schematics to communicate circuits, not hand waving.

The first Data In connects to a 150ohm resistor

It is unclear how these LEDs are wired, and therefore where exactly this resistor is in the circuit.

then pin 6 on the Arduino.

Seriously!? You expect us to look up your particular arduino to figure out what the function of pin 6 is? Get real.

None of the other LEDs have resistors, but I've seen a similar array done without them

So bad engineering is OK as long as someone else on the internet is also doing it!!?

They do, however, have a 100 nF capacitor each

I can't guess what you think that is supposed to accomplish, even if I knew how that capacitor is hooked up.

If my maths is right, the combined current of 256 LEDs on full white at the same time should be 12.8A.

First, it's "math", not "maths". You have 16 x 16 = 256 LEDs, and you have said each draws 47.5 mA. 256(47.5 mA) = 12.2 A. I don't know where you got 12.8 A from, but it's close enough for the purpose. This would be the total current required to light all the LEDs at the same time if they are connected in parallel.

Such a matrix of LEDs is usually multiplexed, so that maybe a row at a time is on. Usually you drive the LEDs with more current for a short amount of time, but you have to check the datasheet to see how much pulsed current each LED can tolerate. A factor of 16 over the full sustained current would be unusual, especially for white LEDs.

Even with 16x16 matrix drive, you need 32 control lines, 16 X and 16 Y. You probably have to look at other multiplexing schemes if you want full average brightness from the LEDs.

I have the current turned up to maximum. I'm drawing 3A but no voltage

This is exactly what you'd expect the power supply to do when it's output is shorted.

With my multimeter, I was reading 200mV on some LEDs, sometimes, and 0mV at other points. I don't know what the difference could possibly be

Neither can anyone else since you haven't explained how the LEDs are connected.

I tested this whole arrangement but with a 9 x 5 array

What arrangement? Referring to something that you never defined does nothing useful.

Overall, you need to explain how things are hooked up, what you are doing, and what you expect the result to be. Until then, the only thing to do is to close this question.

  • \$\begingroup\$ Here's the PL9823 datasheet. I got confused too about the LED not needing current limiting and drawing that much current. But by looking at the datasheet I noticed that the device is the RGB LED plus a controller that handles the current and has a chainable shift register as well. That makes things a little clearer, but I agree that this info should have been provided beforehand. \$\endgroup\$ – Ricardo Apr 6 '15 at 17:44
  • 3
    \$\begingroup\$ I agree that the question isn't the clearest one I've seen around here, mainly to its lack of datasheet (although it is easy to get to the datasheet by googling the part number) and schematic (no excuse for that), and for the LEDs used being deceitfully similar to a regular LED, but your answer isn't helpful at all. I'll have to downvote it. Sorry. \$\endgroup\$ – Ricardo Apr 6 '15 at 17:56
  • \$\begingroup\$ @Ricardo: I would rather say it is helpful (as guidance how to fix the question) but not an answer. Since Stack Exchange doesn't allow this type of content in a comment, it has to be submitted as an answer anyway. \$\endgroup\$ – Ben Voigt Apr 6 '15 at 18:10
  • 2
    \$\begingroup\$ @Ricardo: I actually agree with you. There was too much detail about what exactly is wrong with the question to address in a comment, and I also wanted to explain a bit about multiplexing, maximum peak and sustained current, and why the power supply is showing 0 V. And yes, I did vote to close this mess and others should too. If the OP fixes things in time then we can proceed. Otherwise it will get closed and forgotten, as it should be in its current state. \$\endgroup\$ – Olin Lathrop Apr 6 '15 at 19:39
  • 1
    \$\begingroup\$ @Ricardo Thankyou for moderating the confusion. I didn't expect this quick a response. This is my first question here and I'm largely self-taught so even apparently basic etiquette like supplying the datasheet can be overlooked. It's difficult to remember the information needs of the outsider without practice. But thanks for the warm welcome and making me want to stay on this forum. \$\endgroup\$ – Strings Apr 7 '15 at 17:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.