Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

need help with pcb for led matrix

Status
Not open for further replies.

mrenemy25

New Member
So my project invovles a 16x8 LED display, using common anode RGB LEDs but only 2 colors. I want to control the display with an Arduino, which i also planned on using the 5Volt out as my source(not sure it's gonna be enough the more i get into the project??).

So i want to use a pcb because i think bread or perf board would be to bulky and too many chances for mistakes. Through research I've decided to chain 2-74HC595 registers to source the leds, and 2-ULN2803 transistor arrays controlled by 2 chained 74HC595. From my understanding i can link the clocks for each register together but need 2 seperate lines for data to each pair.

I've created a pcb through a design program and everything looks good, but not sure if its done properly, or will work when produced? Are my lines from the registers to arrays to complicated/long? Looking for opinions and suggestions.
 
schematic would be more helpful. btw you can run power traces under instead of around ICs. that way you will have fewer crossing and jumpers.
 
View attachment 67321


this is a quick look at what i think i want/need to do. after some more thought i'm gonna need more power to drive the led's than the 5volts. so can i use a seperate source run through transistor either + to load to collector, or + to collector and emitter to load? i put 4 leds/transistors in the order of each option. either way am i able to switch the transistor from the register?(with the right resistor ofcourse). i have left out resistor just to simplify the layout for now.
 
it is possible but will require different way to drive those transistors. if they are wired as common collector (voltage follower) you need level shifting. (arduino>resistor>npn transistor>resistor>pnp transistor>Vcc). you can reduce number of components by using UDN series driver. they are like ULN but use positive rail as common. as with any device, read datasheet. UDN chips can drive significant current (half an amp per output) but the voltage drop is in the order of 2V (depends on load). for example if the drop is 1V and Vf of each of the 4 Leds is 2.5V, you need at least 1+4*2.5=11V.
 
@mrenemy25 - on your schematic, it appears that the four transistors on the upper left side of the drawing (can't read the ref designators) are connected in such a way that they will short the +5v line directly to ground when any one of them are turned on.

Re: your pcb layout - I thinks it looks pretty good, but I agree with panic mode about eliminating the jumper wires by re-routing traces under the chips
 
thanks for the help! working on a new schematic and pcb using the UDN and ULN, its working out a lot better with your tips. I'll post it when i finish to see what you think.
 
You might also find that you need a resistor for each LED. I realize this will significantly increase the parts count, but if you use only one resistor per column, the brightness of the LED's in that column will be directly related to how many are lit at any given time.

For example: if your resistor is sized to allow 25ma of current to pass and you have only one LED on the column lit, it will be very bright, as it will be using the entire 25ma. However, if you have 5 LED's on the column lit, the available 25ma will be distributed among them and each will use 5ma. If all 8 on the column are lit, the current available for each drops to 3.125ma.

Something to consider.
 
that is correct. one has to decide on method to control leds and then come up with a way to protect LEDs.
in circuit example i posted, current is limited by resistor network RP1 (can be replaced by bunch of individual resistors).
since RP1 is on columns which are driven by U1/U3, any output of U1/U3 can be turned on simultaneously, but
rows outputs (U2/U4) should be only ONE at a time.

note that each resistor in RP1 should only limit current to one LED (or string of LEDs connected in series). this means that
turning more than one output on U2/U4 would cause multiple LEDs to share current and they would be dimmer.

one could move RP1 to be on rows (placed after U4 instead of U3) but then the control method must be modified as well
(only one output active on U1/U3 and any combination of outputs on U2/U4).

note, if reducing component count is one of goals, consider shift registers with current limiting outputs.
in this example i drew A6279 because i was using it in past. it is now obsolete and may be hard to get but there is ton of similar chips like AS1113 or TLC5940 for example.
 
Latest attempt. Using the UDN will really bring down the parts counts, but i am planning on using resistors at each LED. As far as i can understand the max input voltage to the UDN is 15v? also in the schematic i just used the uln2803 as it is similar layout and the UDN was not available in my parts list. also, having no experience with using shift registers, can i send 2 different data outputs or do i need to use 1?

View attachment 67481
 
don't guess, check datasheet. my copy of UDN2981 says that the output is rated 5-50V. ULN2803A has same rating so there is nothing in a way to drive loads using up to 50V.
.
you can but don't have to have separate data lines, you could just cascade shift registers (connect pin9 from second one to pin14 of third shift registers). this will take more clocks to load shift registers. if you you want to save few clocks and have spare pins on your micro controller, you can use use them to drive UDN inputs directly. if you don't have so many spare I/O, you can use just three outputs to drive 3-to-8 decoder such as 74HC238 and connect it's outputs directly to UDN inputs. two such decoders can be combined to get 4-to-16 equivalent (or just use one 74HC154). by driving UDNs this way you are saving on shift registers and clock cycles needed to manipulate display.
 
Status
Not open for further replies.

Latest threads

Back
Top