Let's Make Robots!

An Intro to arrays

A way to control more LEDs than you have pins in your chip!

Update: I added a video with my grad cap hacked with 64 individually addressed LEDs! This multiplexing/matrixing/array-ing sure is fun :3

This is pretty barebones so far. Be assured, more infomation will be added as I push along.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

First I started with a really basic setup: 16 LEDs controlled by 16 pins. This is great, but leaves no pins left for output! Being limited makes me antsy, so I sat down and figured out how to get more.

Matrices.jpg

Here is the code(first video):

main:

for b0 = 0 to 7
high b0
pause 250
low b0
next b0

for b0 = 0 to 7
high pinsc b0
pause 250
low pinsc b0
next b0

goto main

 

Controlling 16 separate motors/lights/etc. is great and all, but what if you want to do more?

I removed one 8 LED output bank and set up two of the free pins as "enablers". The 8 led pins are pulldown pins, and each enabler pin supplies a logic on/off to a 2N3904 Transistor to supply a +5 voltage.

Matrices__2_.jpg

A small change in code, and we are back in business! (second video)

main:

high pinsc 0
for b0 = 0 to 7
high b0
pause 250
low b0
next b0

low pinsc 0 high pinsc 1

for b0 = 0 to 7
high b0
pause 250
low b0
next b0
low pinsc 1

goto main

 

10 pins to control 16 LEDs? Cool!

This can be worked further. How many can we control with 16 pins?

With mathematics, all you have to do take the total number of pins you can use, divide by two, and then square that number.

With 16 pins: 16/2=8, 8^2=64! That's pretty sweet if you ask me.

This is just with one Picaxe 28x1 chip, what could we use to multiply the out pins with other chips to control a multitude more?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

or you could maybe use one of these?

http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=296-8757-5-ND

I have not as yet, but it seems like it should allow you to make 16 outputs from 4.  Seems nifty anyways...

:-)

you could also use nothing but 8 pins to control 16 leds! 

Think about arranging them in columns and rows. That's gonna give you a 4x4 matrix. Now you just need to connect all the anodes of every row (opposite would work as well: cathodes of every row, no change) to an output and every cathode of every column to an output. (hope i made myself clear) Then what you want to do is rapidly activate HIGHs and LOWs to control all of them! 

But still charlieplexing is better... if you're using similar LEDs (similar voltage drops to be more precise)

Funny how I miss that... I guess I was just lazy and didn't want to make lots of changes, since I was planning on hooking up 64 LEDs with the current circuit.

ooh, I might have to try some of these out!

I'm preparing a digi-key order right now, so I'll have to add one of these on :)

Thanks for the link!