Go Down

Topic: Led drivers mbi 5026 mbi 5030 (Read 2323 times) previous topic - next topic

HitMan1902

Hi
Can you help me with this
I have a 16 rgb leds - its a 16*3=48 channels
I have 3 drivers MBI5026 (or and) MBI 5030 (16 channels ) = 48 channels
connecting all to arduino
And I have a problem with brightness of leds (i can only turn ON or OFF each channel)
! How can i make a brightness for each channel or for each color?
I planning make a big panel with 1000 RGB Leds.
I'm new in that topic/ i read about REXT, but cant understanding - how it connecting or how it programming

MarkT

You need to roll your own PWM to control the brightness.  This will involve repeatedly updating the LED drivers every millisecond or so.
[ I won't respond to messages, use the forum please ]

mowcius

Multiposting is bad for the soul.

HitMan1902

what about R-EXT?
or maybe i need mbi5030?

Kctess5

I'm not sure about the R-EXT ill have to look it up but I am familiar with driving LED matrices. I just made one directly driven off of the arduino duemilanove. It works great when I just have it on or off but if you want to adjust the brightness of each one it gets more tricky. I wrote the code to do 16 bit PWM in the code for each of my 64 leds and it works, trouble is, when your multiplexing and using bit bang PWM speed becomes an issue.

When I just have on and off to deal with I can handle it fine just by making a display function that displays a three dimensional array of 1s and 0s, the function takes about 1.5 milliseconds to run but each row of LEDs is only on for about 100 microseconds. Obviously this doesn't add up, the delay is caused by the code taking time to process. Usually the speed of the arduino isn't a problem but when you try to run things at extremely high speeds it is a problem. The problem becomes much more evident when you add PWM to the equation. Basically the way I went about it was by using almost the same code but instead of 1s and 0s I have 1 through 16. Basically I turn on the first row and choose all the LEDs I want and then do 16 iterations of that row. If the number in my array is less than the number of iterations its on it doesn't turn on that LED. This takes about twice as long to run and is at the very edge of the slowest I can run before you see flicker.

As you can see it is possible to do PWM in the code but it comes with problems, now if you add shift registers and 1000 LED's instead of 64 it is going to become very problematic. The way you get around this is to use a led driver that has integrated hardware PWM such as the tlc5940 (and use a arduino mega). The MBI5030 will work, I looked at the datasheet, but I dont know if I would suggest that one. I would use the tlc 5940 or similar just because people are more familiar with it and will be able to help you more, plus it has I think even better features than the one you suggested.

Good luck, I dont know if this helped at all but I would suggest you get a smaller multiplexed matrix working as you want it before you move up to the larger 1000 LED array, mainly because of the coding knowledge you will gain for working with that type of system. If you get it working post a video

MarkT

Quote
trouble is, when your multiplexing and using bit bang PWM speed becomes an issue.


Use the SPI hardware interface and direct port access for the latch/output enables and you will be fast enough I think.
[ I won't respond to messages, use the forum please ]

Grumpy_Mike

For 3000 LEDs (1000 RGB LEDs) ....... I think not, do the sums.

Go Up