8 X 8 RGB LED Matrix project amateur

Before I start, let me explain why I'm trying to get into this hobby. I will be taking my first C programming class this coming semester and I thought programing a RGB LED matrix would be the best way to get my self familiarized with coding. I also enjoy doing projects like these, for some reason I really enjoy messing around with LEDs. I'm not sure if this too much of a project for a beginner like myself, but I enjoy challenges.

I have a few questions:

*How can I calculate which resistors to use on a 8 x 8 RGB Matrix through Arduino? *

I currently have a few 100 ohm 1/4w resistors in hand, but I really don't want to ruin my LED Matrix by using the wrong resistors to run the LEDs.

Any books or websites you recommend for me to read?

I've been reading the arduino reference, instructables and just purchased the "Arduino Cook Book."

Thanks much for your time.

Resistor = (Vsource - Vf(LED) - Vtransistor)/desired current

So, making some assumptions: Vsource = 5V Vf(LED) = 2.2V (assumed minimum voltage drop for a red LED, read your specs) Vtransistor = 0.5 (there will be a transistor somewhere that turns on/off to control the LED) desired current = 20mA (max continuous for most LEDs) then R = (5-2.2-0.5).02 = 115 ohm 120 is a standard value, use that.

What is your control method? Common anode per layer, with current controlled via P-channel MOSFET, and 8x8x3 = 192 cathode sinks in parallel among the 8 layers (24 8-bit shift registers) I have a board with 12 shift registers/board, could use 2 of them daisychained to do the current sinking, and then 1 more more TPIC6B595 to sink current from the P-channel Gate to turn the layers on 1 at a time. To keep current down, maybe only turn on 1 color at a time. 20mA * 64 LEDs = 1.28A, vs .3.84A. Still a 5V, 4A supply could do that too. If you wanted PWM control of all colors, need a PWM chip like WS2801/2803/2811 (one of them has 18 outputs, so you'd need 64*3/18 = 11 of them, and then transfer a lot more data per layer, instead of 24 bits (1 bit/per LED/layer) you'd send 1536 bits (1 byte/LED/Layer), so your refresh rate will be slower: 64 LEDs x 3 colors x 8 bits PWM info/LED x 1/8,000,000 max SPI rate + 500uS hold time = 0.692mS * 8 layers = 5.536mS (180Hz) plus time to read data from memory to transfer out, plus time to turn each layer off before turning next layer on. During the 500uS you need to make any memory updates for pattern changes (reading from serial port, responding to button pushes, whatever).

Cross Roads Electronics PL & schematic

WS2803-preliminary-En.pdf (437 KB)

CrossRoads: What is your control method?

Thank-you so much for your comments and your help! :)

Here's a link to the type of LED Matrix I bought: http://www.nooelec.com/files/GTM2088ARGB-28.pdf

I was thinking of taking the easy way out with a Rainbowduino but then I decided that wouldn't be much of a learning experience. I'm trying to control the whole LED panel similar to what Rainbowduino does, I just didn't know what I really needed to drive that LED Matrix.

To be honest, I'm a very ignorant on that subject and it's a bit overwhelming but I really want to learn this.

I'm hoping the Arduino Cook book allows me to understand all this indepth, that way I don't ask so many questions.

Your comments have really helped me understand this much more and I thank you for taking your time to help out a novice me like myself.

I'll read up on the information you provided that way I completely understand it. You don't have to explain yourself any furthure as you've already provided me with suffice information to get this project going and I thank you deeply.

I do apologize for the late response.

I'm going for a full control of the LED matrix and I honestly didn't have a clue of what I needed to drive the LED Matrix properly. Like stated before I was afraid to burn the LED Matrix.

I'll be using the USB cable to power my LED Matrix for now, so yes, I'll be using 5V.

I eventually want to see if I can run the LED Matrix through batteries; but that's later down the road.

Ok, standing by then.