Go Down

Topic: Large LED matrix? (Read 4064 times) previous topic - next topic

HarvesteR

Sep 01, 2010, 12:22 am Last Edit: Sep 01, 2010, 12:23 am by HarvesteR Reason: 1
Hello,

I'm trying to figure out if an Arduino could drive a large LED matrix... the matrix will be around 120x90, which means about 10800 LEDs.

I'm almost sure the regular Arduinos don't have enough pins for that, but what about the Mega? would it be possible to hook up that large a matrix into it's 54 pins?

We are still unsure if the LEDs will be single color or RGB... that of course would depend on pricing and how much more complex the matrix would get...

Anyways, if there are not enough pins on the Mega, what about hooking up more than one Mega via serial?

Any thoughts?

Cheers

aluminumati

You might want to consider using an LED matrix driver like the ones from MAXIM. I haven't seen one that can drive a matrix of the magnitude you're talking about, but if you "break up" your matrix into smaller matrices of say 8x8, you could use something like the MAX6960.

James C4S

Richard brings up memory, which the ATmega is very limited on.

Don't forget power requirements.  The microprocessor itself won't be able to drive more than 10 LEDs at any given moment.  The ATmega's VCC and GND pins are only rated for 200mA.

So you'll be driving them through some kind of external circuit.  Which is where the concept of "how many" and "how fast" are important.  You can use a driver like TI's TLC5940 (which has a great arduino library).  

But depending on what you want to do with that many LEDs, you may not have enough resources in the ATmega to actually achieve it.
Capacitor Expert By Day, Enginerd by night.  ||  Personal Blog: www.baldengineer.com  || Electronics Tutorials for Beginners:  www.addohms.com

Osgeld

#3
Sep 01, 2010, 02:59 am Last Edit: Sep 01, 2010, 02:59 am by Osgeld Reason: 1
I doubt you would even get a screen to refresh fast enough without dedicated drivers with some form of memory

Its barley doing it on my 1024 matrix driving a line at a time using the hardware SPI features of the chip and avrgcc code (aka shiftOut and some 595's aren't going to cut it)
http://arduino.cc/forum/index.php?action=unread;boards=2,3,4,5,67,6,7,8,9,10,11,66,12,13,15,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,86,87,89,1;ALL

HarvesteR

Hmm you guys bring up interesting points... refresh rate is something that hadn't occurred to me until now... not to mention memory restrictions...

Anyways, I'm not worried about current... we would probably use transistor array ICs, so the LEDs would have their own feed...

So, what occurred to me would be to split the matrix into several smaller, say 20x20 matrices, and each be controlled by an individual Arduino... A Master Arduino would be feeding serial data into each matrix controller from it's own data stream, this way they can team up to handle 'byte-sized' tasks  ;)

This would probably require a good deal of Arduinos... but it's still a lot cheaper than a full-size LED screen.

Thanks for the quick replies!! keep 'em coming!  :)

Cheers

Grumpy_Mike

#5
Sep 01, 2010, 05:48 pm Last Edit: Sep 02, 2010, 12:12 am by Grumpy_Mike Reason: 1
So 10800 LEDs at 20mA per LED is a grand total of 216 AMPS!

Of course multiplexing cuts this down but it is still not a project for a single controller. Also 10800 LEDs at $0.2 is $216, it's an expensive project.

[edit]Sorry an order of magnitude out it is $2160[/edit]

deSilva

#6
Sep 01, 2010, 06:02 pm Last Edit: Sep 01, 2010, 06:34 pm by mpeuser Reason: 1
I have checked one or the other (around) 16x16 multiplexed  LED matrix during the last years.

They are dim! Even pulsing 50mA @ 1/16 of time will give you 3mA average only. Of course there had never  been pulsed 16*50mA = 1A into the matrix,. Let's assume half of the LEDs are shining (if you want to call it so...) and the driver would provide 200mA, then it's only 1mA per LEDs. That is exactly how it looks like!

So multiplexing should be limited to 1/8, to my experience.

This would still mean for the power:
1/2 shining = 5,000
40 mA pulses = 200A
1/10 multiplex = 20A = 40W

Note that you by no means should have current limiting resistors but need true constant current sources...


deSilva

Quote
Also 10800 LEDs at $0.2 is $216, it's an expensive project.

Soldering one LED will take 30 seconds (I am a slow brazier :-) )
So I would need a full work week for it - also not cheap...

florinc

Quote
10800 LEDs at $0.2 is $216

It would be more like $2,160. Very expensive.

HarvesteR

Quote
It would be more like $2,160. Very expensive.


Yes, it's a big and expensive project... Thankfully I won't be the one paying for it ;)

I did the math, and everything rounds out to about 9 grand... quite a handful of cash, but this is supposed to be a commercial project, so this is actually pretty cheap, compared to what a full-blown LED screen normally costs, which is in the 6 figure range...

Anyways, my plan doesn't involve multiplexing... the idea is to split the matrix into manageable 20x20 modules, each with it's own Arduino Mega as a controller, and a master controller to feed data into them (or more than one, if a single Mega can't handle the data flow)...

So in the end we're looking at 35 Arduino Mega controllers and a 36th as the Master...  ;D

Each arduino will have it's own power supply, and there will be a 12v PSU for each module, so there shouldn't be any problems with astronomical current loads and all that...

Anyways, in the end the idea is starting to sound somewhat ludicrous with all these Arduinos and whatnot... So we're now looking to other options... namely a dedicated screen controller to drive all those LEDs... I mean, if a HDTV can do it with over 2 megapixels, and refresh 60 times a second, there should be some controller out there that can do it for a 120x90 pixel screen

I'm really no expert in any of this, so I don't know much about what can be done and what can't... I'm making this up as I go along...  ;)

Thanks for all the help so far  :D

Cheers

Go Up