PCB issues

ok so basically i want to make my own shield! :slight_smile: not for mass production or anything, just for fun and the concept that (i can get it done)! lol

i have followed this tutorial and it was extremely useful!

i learned some of the usage of the tools and parts list...

i also downloaded the sparkfun.lbr to have a parts list so i think i have everything? oh yeah and im using the Eagle program. :stuck_out_tongue_closed_eyes:

My question is: I have looked around this site and i have found useful information on charlieplexing and multiplexing and all that stuff but i dont know how to start out. i want to make my own LED matrix, similar to the LOL Shield that jimmie rodgers created. But i wouldnt even know what resistors to use and how many to use.

i would like to make a 20x10 or maybe bigger im not sure...(my plan here is to put it into a helmet i will make daft punk) or (make a tie shaped pcb to wear while i use my deadmau5 head)

is there any website out there that has a tutorial on these kinds of things? i searched the internet but with no success as i have no idea what to search...

it would be very awesome if you can help. :slight_smile:

well, there IS something called instructables you can search there. But I just made a PCB design today that basically puts together a 3x3x3 LED cube so no need to use a perfboard. I mean this might help you understand how matrices work and such before you go onto a 20x10 display. 20x10 would be hard due to there not being enough pins on the arduino! But there are ways to make it lower if you read the right things. There is a guy on youtube that explains that a bit . search : How multiplexing works or how to multiplex.
Well the PCB program I wrote is in the making (not yet tested) but in theory it should work cause its just a cleaner version of the one I saw on instructables. If you want me to attach it just tell me.

thanks dude!

it would be awesome if you can just paste the instructable link to the tutorial please.

you see that is what i dont want to do, i dont want the perf board. i kinda want to design and make the PCB all on its own. instructables uses almost all those copperboards, ive seen very little PCB's that have been made by the authors, and the ones ive seen arent matices.

but i guess your right, i SHOULD understand the fundamentals first before even beginning to design.

thanks a lot dude.

omar4578:
thanks dude!

it would be awesome if you can just paste the instructable link to the tutorial please.

you see that is what i dont want to do, i dont want the perf board. i kinda want to design and make the PCB all on its own. instructables uses almost all those copperboards, ive seen very little PCB's that have been made by the authors, and the ones ive seen arent matices.

but i guess your right, i SHOULD understand the fundamentals first before even beginning to design.

thanks a lot dude.

ok here's the link:

and heres my design for that exact project. open it with Fritzing ( a great free tool for circuit design)

wow! lol just downloaded the program, and it looks good! lol

but i dont see your design

Is your 20 x 10 matrix single color or multi-color (as in 2 or 3 color LEDs - just means a lot more connections)?
You are basically talking about creating this, but twice as wide.

To turn an LED on, you need the combination of an Xrow being high, and a Y column being low to put voltage across an LED.
To multiplex it you will quickly set up the Ys, turn on X1, then turn off the X1.
Set up the next Ys, turn on X2, turn off X2
Set up the next Ys, turn on X3 turn off X3.
Do this rapidly enough and it will look smooth.
You can make the array however big you want.
The Ys can be driven by a regular shift register as they only see 1 LED being turned on at a time if you drive the Xs correctly.
The Xs however must be able to source 10-20mA for each Y as potentially every Y could be enabled at the same time, unless you multiplex the Ys also.
So you probably want shift registers controlling transistors to let 5V be applied to the X lines.

You could also look into displays like this to cut down on the wiring needed, here's a 2-color matrix 5x7 matrix
You could arrange 6 of these to make a 10 x 21 matrix.
http://www.mpja.com/prodinfo.asp?number=16784+OP

Or maybe 2 of these for a 24 x 10
http://www.mpja.com/prodinfo.asp?number=18050+OP

Check out the datasheets, browse around. Wouldn't be that difficult to put several of these and some chips to drive it on a PCB, vs 200 3mm or 5mm LEDs.

I have to ask, how would fritzing do with 200 LEDs and a bunch of shift registers, transistors, and resistors?

these are awesome and very cheap! but how would i go by connecting 6 of them to an arduino?!

I have to ask, how would fritzing do with 200 LEDs and a bunch of shift registers, transistors, and resistors?

i have no clue, this is all very new to me. but very eager to learn lol

6 of which? The 5 x 7s?

yes, 6 of the 5x7's

Okay Omar,
Here's what I suggest.
Connect the Row pins of Unit A to Unit B
Connect the Row pins of Unit C to Unit D
Connect the Row pins of Unit E to Unit F (not pictured)
You will need current limit resistor on these pins, 300 ohm or higher for 10mA.
You will need 72 pins worth of shift register output for these such as 74HC595. They will be putting out (sourcing) +5V.
Connect the Column pins of Unit A to Unit C and to Unit E.
Connect the Column pins of Unit B to Unit D and ti Unit F.
These will need a high current capable device since it will be sinking the current for up to 72 LEDs: 72 x 10mA = 720mA.
I would recommend either individual transistors drivers here, or a part like ULN2803 and use 2 outputs to drive every pin.

To turn on LEDs, you will shift out the 72 bits that you want Hi/Lo for Column 1. When all are loaded, you will clock them into the output register together. Then you will turn on Column 1, which will bring the Cathodes low, and every LED with a high Anode will turn on.
While that is being displayed, you will be shift in the 72 bits for Column 2. Turn off Column 1, clock the 72-bits output register, turn on Column 2.
Repeat for the remaining 18 columns.
To turn off a column, I'd suggest using the Output Enable pin on the column shift register and put pull down registers on the output pins.
Thus you could shift a 1, Enable it to turn on the 2803, disable it, shift that 1 by 1 position, enable it to turn on the 2803, etc.

Since the LEDs are arranged in color pairs, it might make more sense to have 2 sets of column drivers, one for the Red pins and one for Green.
Then instead of just turning the output on for a colomn, you could use a PWM and control the intensity of the two or do fading kind of things.

I'll draw that up & post it next for a section.

This making sense to you?

Here's the start of the drive control.
Shift in across the top.
Shift in on the right, burst of OE/ (or PWM) to turn on the LEDs.

You may have to develop your own library part for the LED matrix in Eagle.

CrossRoads:
This making sense to you?

not really dude, i see the pins on the back of the LED displays but are they plug and play with the arduino? or do they require modifications?

i see your schematics but im barely learning to read those things as well...sorry dude :blush:

Okay, so lets start smaller.
Print out this schematic. And we will be using schematics because I am a real engineer and will not be using Fritzing.

Start out by wiring up the resistors & LEDs on pins D2-D9. Use 270 ohm, 330 ohm resistors, something in that range.

Then will write a sketch with D2-9 as outputs.
You will add some digitalWrites and make it do this:
To turn on LED at D6 (which I will just call LED6) you write High to D6 and Low to D5.
To turn it off, you will either: write low to D6, or write Hi to D5. Both will work, try it both ways.

Do the same for LED7, LED8, LED9.
Report back when you get that working. This is the basis behind driving the Matrix.
Next step will be moving the Hi/Low driving out to shift registers to expand our size capability, as clearly 8 pins for 4 LEDs is not too efficient.

Go wire & program grasshopper ...