RGB LEDs and Matrix's need advice.

Hello i'm very new to electronics i got my arduino last month i have been looking at different chips like the TLC5940 and the standard shift register that adafruit sells. I've recently have been quite frustrated trying to figure out how to control RGB LEDs. I have looked at the Shift PWM library but alas it seems to be a complicated and well i can't figure it out on my own. I just got some TLC5916's in the mail but can't figure it out The closest I have been to getting a row of RGB leds is using the TLC5940 but alas the library i have been for the TLC5940 seems to not be straight forward for beginners. I'm not sure how to go about learning how to do this, I wanted to make my own row of RGB LEDs that were programmable to make patterns and such and eventually a programmable RGB matrix. both with some sort of control through my computer.

Does anyone have any tips or ideas on what I can do to accomplish this as a learning process and end up with a sweet project?
It does seem i'm kinda late to the arduino party, I can't seem to find any groups at my college or in my city that do arduino stuff, so i'm kinda lost.

Any Help or information is appreciated Thank you all for your time and knowledge.

1 Like

I think for simplicity, the preassembled neo-pixel is a very good option and the library works very well with most of the legit arduino boards. You can get them mounted on a disc-like surface, or straight up SMD to compact them down in whatever arrangement you want. If you're not doing commercial work, I think this is a good start, and yes, you're project will look sweet.

Browse for CancunManny, I drafted a 3 row x 10 column matrix with two TLC5940 for him, you can add some more more rows in parallel to make yours 8 x 10, or drop a couple columns to have 8x8.

Or get a mess of the WS2812 combined driver/LEDs chip as bosleymusic suggested, and send out 64 LEDs x 3 bytes every frame and have 256 levels of brightness control per LED.
Can have individual LEDs for broader spacing, or use the pre-fab LED strips & whatever spacing that provides.

Scroll down their page for other options they offer also.

WS2812.pdf (272 KB)

So I made a youtube video of what I have so far I show some of the problems and things i'm confused about as well.
Here is the video: - YouTube

Try swapping the LEDs over to different channels, if the dim LED moves then it is the LED that is faulty. I have had quite a few RGB LEDs from China and the red looks like your dim one, in about one in 30 LEDs. Just throw it away. I think these come from the reject bin and that is why they are so cheap.

If the channel stays dim when other LEDs are swapped into it, then it is either a wiring fault, faulty chip or your software.

Turns out it was a bad IC, also now the issue i have is with the library... I want to some how make it so i can control 3 channels (1 RGB LED each) with Hex codes but the library uses this to change brightness per channel Tlc.set(1, 4000) first number is channel 2nd it brightness . i'm not sure how to code it.

Hi, what do you mean by "hex codes"? Something like the colour codes used in html web pages? Give us some examples and a link to adescription. If the red, green and blue components are encoded in this hex code, it should be simple enough to write a small conversion function. Have a look at the <<, >> and & operators on the reference page.

Paul

I want to some how make it so i can control 3 channels (1 RGB LED each)

This is in effect three LEDs so wire one up to each channel, say red to Ch0 , green to Ch1 and blue to Ch2.
Then to control the colour you make three calls to Tlc.set()

Tlc.set(0, 4000)
Tlc.set(1, 4000)
Tlc.set(2, 0)

For say yellow.

Is there a Place that I can find the brightness value for diff colors in this format?

Suggest you google for "RGB to HLS".

TheCapn:
Is there a Place that I can find the brightness value for diff colors in this format?

No there are too many variables involved with the actual colour the LEDs give out, you are best trying it out and seeing.
Fix up three pots to allow you to write a sketch to allow you to use them to set the value of each LED.