Go Down

Topic: Charlieplexing + Arduino Uno's 20 pins = Powering 380 LEDS ? (Read 2347 times) previous topic - next topic


Sep 14, 2012, 03:34 pm Last Edit: Sep 14, 2012, 03:44 pm by mixania Reason: 1
Hi Arduino Forum, Hi guys!  :~

Recently I've been looking on Internet for some ideas to start with my project. I wanted to make a LED cube in the beginning but then "Charlieplexing" got my attention. I'm not sure if this technique exactly is used in making LED cubes (or is it?) but "Charlie" made me want to make a controllable LED screen with few Arduino pins. I'm Using an Arduino Uno R3. I have a breadboard but I understand that its awkward to make something big with it. But thats not the question.

The Question is if it's possible to drive 380 LEDs with just 20 pins (14 DigitalPins + 6 AnalogPins) on and Arduino Uno without having any power problems (I mean to much current consumption or whatever). If yes then what are the options? How to maximize the power? I mean of course it would have enough power to light on LED at a once, but how about 100 at once? 200? 300? And 380? Doesn't it need additional power supply?

The formula of the maximum amount  LEDs usable per pin is: x2 - x
Where x is the amount of pins and the result of how many pins it's possible to hook up.
Plug in 20 and thats it! The Answer is 380 LED's! Cool! Now Is the Arduino thought enough?

OK, if thats possible then how to make 380 LEDs organized? I mean a circuit board is an essential, right? No breadboard is good enough for fitting 380 LED's. But would it be possible to order such a dense circuit board?

http://en.wikipedia.org/wiki/Charlieplexing- More Info
http://www.instructables.com/id/Creating-a-charlieplexed-LED-grid-to-run-on-ATTiny/ - Instructable


Sep 14, 2012, 06:28 pm Last Edit: Sep 14, 2012, 06:56 pm by JoeN Reason: 1

I mean of course it would have enough power to light on LED at a once, but how about 100 at once? 200? 300? And 380? Doesn't it need additional power supply?

http://en.wikipedia.org/wiki/Charlieplexing- More Info

I don't think you completely understood the article about Charlieplexing.  For normal charlieplexing, the duty cycle is 1/n where n is the number of LEDs, assuming all LEDs need to be independently controllable.  You can only light one LED at a time so you are never going to have to worry about exceeding the Arduinio's capacity to source or sink current.  However, good luck with a 1/380 duty cycle.  There seems to be a way to improve this at the cost of complexity:  http://www.edn.com/design/power-management/4313530/Charlieplexing-at-high-duty-cycle.  All the solutions that I have seen to improve the duty cycle beyond 1/n increase either the hardware of software complexity.  There are also software ways of lighting two LEDs at a time but ony certain combinations will work so you would have to frame buffer what you are trying to display and sort it out into subframes that can be displayed at a time using multiple LEDs, display those, and subframes of single pixels that are totally independent, display those, etc, all while making sure that all subframes get the same duty cycle and current per LED, etc.  That seems very complex.  The instructables demo you link uses the simplest method, it is a 1/20th duty-cycle which is doable, but 1/380 seems to me like it would not work well at all.  Like all multiplexing techniques you keep the processor busy updating all these LEDs.  Personally, I like the MAX7219 chip which handles 64 LEDs per chip, is daisy-chainable, and requires no CPU time after sending it the bit data.  With 7219s, four pins gets you n LEDs where n is whatever you like, all at a very reasonable 1/8 duty cycle.
I will never ask you to do anything that I wouldn't do myself.

Go Up