7x7 RGB LED matrix

Hi! Is it possible to drive 7x7 RGB LED matrix with arduino? I think i'm going to need external power to nano v3 :slight_smile:
I'm looking for pwm shift register(With 49?????? WTF!)
Or something i can use controlling Matrix. I chek google, but i didn't found anything(with 5min searching...)
I hope you can help.

Since each RGB LED has 3 LEDs, you need to drive 21 x 21.

Look into the MAX7219.

Hi, by far the easiest way would be to use ws2812b leds. Just wire them up in a chain with one connection to the Arduino and use the Neopixel or FastLed libraries.

You will also need a 5V power supply with at least 3A current. You can power the arduino with this power supply also.

Paul

ieee488:
Since each RGB LED has 3 LEDs, you need to drive 21 x 21.

No, that is 7 by 21.

ieee488:
Look into the MAX7219.

You can use MAX7219s but let's look into it. RGB LEDs are sets of three, so in one direction you can only use six of the eight drive lines - anodes if common cathode, or cathodes if common anode. So each MAX7219 can drive two by eight, or 16 RGB LEDs (and the red will be brighter than the other two colours, no individual PWM available). Three MAX7219s can drive 48 RGB LEDs. Oops! He needs 49! :astonished:

PaulRB:
Hi, by far the easiest way would be to use ws2812b LEDs.

WS28xx LEDs have built-in PWM, so this is probably the most practical approach.

Paul__B:
You can use MAX7219s but let's look into it. RGB LEDs are sets of three, so in one direction you can only use six of the eight drive lines - anodes if common cathode, or cathodes if common anode. So each MAX7219 can drive two by eight, or 16 RGB LEDs (and the red will be brighter than the other two colours, no individual PWM available). Three MAX7219s can drive 48 RGB LEDs. Oops! He needs 49! :astonished:
WS28xx LEDs have built-in PWM, so this is probably the most practical approach.

He didn't say he wanted to use an LED strip.

I took him at his word that he wanted 7 x 7 individual RGB LEDs.

Are you using Common Anode or Common Cathode RGB LEDs?
If Common Anode, can use a 74HC595 shift register controlling 7 P-channel MOSFETs (or PNP transistors) to supply 21 x .02A = 420mA of current to 1 of 7 rows of 7 RGB LEDs, with two WS2803 chips controlling the 256-level PWM to the 21 cathodes. Control the multiplexing of the rows in software:
Send out 8 x 21 bytes for the PWM level, enable a P-channel MOSFET to light up a row, hold it for 4mS, turn off the P-channel MOSFET, go to the next row.
Send out the data using SPI.transfer() at 8 MHZ clock rate.

//time for an update?
row = row+1;
if (row == 7){row = 0;}
for (x=0; x<21; x=x+1){
SPI.transfer(dataArray[(row*7)+x]); // array of 147 bytes, so 0-21, 22-42, 43-62, etc.
}

WS2803 does not have a chip select. If there are other SPI devices in your system, you can fake a chip select function by using an AND gate and a high level signal for WS2803 chip select - thus clock to the WS2803 will not toggle unless the chips select is High.

Can also use TLC5940, needs more control signals, and 50% more data as it’s 12-bit per LED.

WS2803-preliminary-En.pdf (437 KB)

The only place I know to buy WS2803 is ebay, there's a supplier in Niagara Falls.

ieee488:
He didn't say he wanted to use an LED strip.

I took him at his word that he wanted 7 x 7 individual RGB LEDs.

I don't think anyone was suggesting strips. (Paul__B meant each rgb led is 3 leds in a single component, not 3 on a strip).

ws2812b leds are available on individual tiny pcbs or 5mm thru-hole leds or 8mm thru-hole leds as well as strips with 30, 60 or 144 leds per metre.

PaulRB:
I don't think anyone was suggesting strips. (Paul__B meant each rgb led is 3 leds in a single component, not 3 on a strip).

ws2812b leds are available on individual tiny pcbs or 5mm thru-hole leds or 8mm thru-hole leds as well as strips with 30, 60 or 144 leds per metre.

My mind automatically jumped to strips as I don't see too many people using the pcb board versions of them.