Not really the refresh rate and the on / off ratio would be rubbish. With an on off ratio of 64 : 1 the LEDs would be too dim. The 4051 has too much internal resistance to compensate for this by boosting the current and all the current has to come from the arduino pins. So while it would function it would be rubbish.

Not really the refresh rate and the on / off ratio would be rubbish. With an on off ratio of 64 : 1 the LEDs would be too dim. The 4051 has too much internal resistance to compensate for this by boosting the current and all the current has to come from the arduino pins. So while it would function it would be rubbish.

Ahh I see

So instead of using the 4051 you suggest I use something from the 74LS series or use a shift register?After reading your article thoroughly it seems the 74LS seems like you choice you suggest, but you also mention shift registers, and since I'm looking to reduce the output pins as much as I can, that looks like a better Idea as your article says I only need 3 pins which is amazing, I have to go to school now but I have one question before I go Do shift registers take inputs or should I just use the 4051 for the inputs since the sensors dont need to refresh as fast as the LED's, or even, should I use a 74LS series incase?

There are shift registers that output parallel data from a serial input and other types that output serial data from parallel inputs.But these are digital inputs, for your sensors you need an analogue input so go with the 4051.

There are shift registers that output parallel data from a serial input and other types that output serial data from parallel inputs.But these are digital inputs, for your sensors you need an analogue input so go with the 4051.

Alright cool,

I guess I can use shift registers and some transistors to make my matrix, I found an example here: http://www.instructables.com/files/orig/F7J/52X0/G1ZGOSRQ/F7J52X0G1ZGOSRQ.jpg

I find It kind of hard to follow your description but I think I know what you mean. Do I use the PNP current source or FET to power the LED's ad is it in a cmos chip or is it handmade? Also what do I do for a current sink, do I need one aswell as a current source? Ill draw a diagram up when I get home

Most instructables are very poor, that one is no exception. You should never use a common collector transistor configuration to source current, it shows the person who drew the circuit dosn't know what they are doing.You can get away with just a current sink if you only source one LED at a time from each pin. Otherwise you need both source and sink drivers. A PNP transistor or p-channel logic level FET shoul be used for the source.For the sink you can use NPN transistors or n-channel logic level FETs

Using these 74HC595's http://www.jaycar.com.au/productView.asp?ID=ZC4895&keywords=595&form=KEYWORDAnd Hopefully if I can these ULN2803's http://australianrobotics.com.au/products/darlington-driver-8-channel-uln2803-dip (I might not be able to use it because I need to be able to pay by check)if not this pricy one http://www.altronics.com.au/index.asp?area=item&id=Z3010

I was able to come up with a way that uses alot of shift registers and no multiplexing, and a way that uses heaps less shift registers and multiplexing

Anyway this is the multiplexing way I believe should work, I dont really know:

I guess to use this I will use the shift out command explained here (Not with same pins): http://www.youtube.com/watch?v=6lFi07CSXUY&feature=endscreen&NR=1and here:http://www.arduino.cc/en/Tutorial/ShiftOut

I believe I can make this so only 1 LED is on at a time, that should work correct? FOr instance, if I do:void setup() { pinMode(0, OUTPUT); pinMode(1, OUTPUT); pinMode(2, OUTPUT);}void loop() { digitalWrite(2, LOW); shiftout(0, 1, MSBFIRST, 0); shiftout(0, 1, MSBFIRST, 1); shiftout(0, 1, MSBFIRST, 1); digitalWrite(2, HIGH); delay(10); digitalWrite(2, LOW);}And the pins are:Data 0Clock 1Latch 2

That should output Column 1, Row 1, which is the bottom left, then If I change it to this: shiftout(0, 1, MSBFIRST, 4); shiftout(0, 1, MSBFIRST, 0); shiftout(0, 1, MSBFIRST, 3);

it would be Row 3 and Column 12, which is near the middle to the very right.

If this is correct I Yaaaay ( I have not put in resistors because the darlington array made me weary of how it works, if I did put resistors in, should I just need 1 per row/column, and have them at 90 Ohms [R=V/I, R=(5-3.2)/0.02, R=90], Or will they get hot?)

Also I figured out how to use the photodiodes, by this guy: http://www.instructables.com/id/Infrared-Proximity-Sensing-Coffee-Table-Module/

I guess you place them in reverse bias and they can be used as voltage dividers

Most instructables are very poor, that one is no exception. You should never use a common collector transistor configuration to source current, it shows the person who drew the circuit dosn't know what they are doing.You can get away with just a current sink if you only source one LED at a time from each pin. Otherwise you need both source and sink drivers. A PNP transistor or p-channel logic level FET shoul be used for the source.For the sink you can use NPN transistors or n-channel logic level FETs

Oh LOL I must have been typing my post at the same time as you

What do you mean by NPN transistors or N-Channel Logic level FETs, on your site you mention them as sources dont you? And yes I will only have 1 LED on at a time, yet it will be blinking supa fast so u cant tell

Also I figured out how to use the photodiodes, by this guy: http://www.instructables.com/id/Infrared-Proximity-Sensing-Coffee-Table-Module/

Most of the people who write instructables are in fact idiots. The only people more stupid are the people who read them, just look at some of the inane comments you get. Try not to get your facts from this source.

Most of the people who write instructables are in fact idiots. The only people more stupid are the people who read them, just look at some of the inane comments you get. Try not to get your facts from this source.

I understand this, you keep saying it , The only thing is that they have working examples sometimes, and that is easier to understand to see it in action than just to read text. I only keep linking back to examples from their because the way many people do it there looks much easier than other options, whether its good or bad is another question

You need the resistor in the line that is going to light up just 1 LED. In your case this is the lines from the first shift register. That first shift register should have the whole column of LEDs you want to turn on have a ones in the correct place for the pattern.The other two should have the walking one on them.We seemed to have switched now to an 8 by 12 array is this new? It never appeared in any of the other requirements.

Quote

he only thing is that they have working examples sometimes

I keep telling you that by and large they don't work, that is what leads many beginners astray and make us here pull out hair out. If you insist on looking at instructables then I am afraid I can't help you any more.

Quote

when you use them on your site, it looks very different to how I thought they are used

So your thinking was wrong then.

Quote

do you mean row scanning

No.

Quote

is it my example code

Yes it simply dose nothing very much. Also when posting code use the # icon next to the quote to stop the code being mangled by the forum software.

You need the resistor in the line that is going to light up just 1 LED.

Sorry I just switched because I didnt think that it would make much of a difference, I bought a pack of 100 LEDs because they were cheap, so I just thought I may as well use as many as I can. I can use just 8x8 though

I keep telling you that by and large they don't work, that is what leads many beginners astray and make us here pull out hair out. If you insist on looking at instructables then I am afraid I can't help you any more.

Yes it simply dose nothing very much. Also when posting code use the # icon next to the quote to stop the code being mangled by the forum software.

In your case this is the lines from the first shift register.That first shift register should have the whole column of LEDs you want to turn on have a ones in the correct place for the pattern.The other two should have the walking one on them.We seemed to have switched now to an 8 by 12 array is this new? It never appeared in any of the other requirements.

Sorry bout the code I forgot there was a button for it :3

Im really confused right now,If I want the matrix to turn on simply 1 LED (the bottom left) and keep it on, what do I do, do I make the first shift registers data [1,0,0,0,0,0,0,0], the first column(bottom left is selected) then at the same time have the second 1 in the row have [1,0,0,0,0,0,0,0] as its data, and the last all 0's

Then to make multiple LED's on, say a diagonal line from bottom left to top right, how would that work?

Like I say in my page you have an array containing the bit pattern of what you want to display. Then you have a refresh routine to put that memory onto the LEDs. You seprate the refresh program from what you want to display.Have a read of that page again.

Like I say in my page you have an array containing the bit pattern of what you want to display. Then you have a refresh routine to put that memory onto the LEDs. You seprate the refresh program from what you want to display.Have a read of that page again.

I understand what you are saying, but then what would I use to get enough amps flowing per column? Wont the shift register go kaboom if I power more than 1 LED, should I be using current sources? If I do it this way 160mA can be flowing through each time, can the ULN2803's take that on 1 pin?