World Map with slightly less than 128 individually controllable LEDs

Hi all,

First of all I would like to say what a great community this is. I've enjoyed wandering through this forum gathering bits and pieces of information relevant to my current project and other future projects. I hope you guys will be able to give me some advice as I've seen being given to others. As so many others before me I am rather new to Arduino and electronics in general, however, I am eager and willing to learn.

The project: The goal is to have a large (antique-looking) world map with LEDs to indicate the places me and my girlfriend have visited or would like to visit. We first thought of simply using pins to do this but I've always wanted to step into electronics so we quickly decided to go for LEDs.

So far I've landed on the following (rough) solution: Using a ATtiny84 (programmed by an Arduino Uno R3) to control 48 (16 per color) daisy-chained 8-bit 74HC595 Shift-Registers each connected to a ULN2803A darlington array to sink common-anode RGB LEDs (Uf(RGB): 2.0V - 3.2V - 3.2V). From various posts that I will have to attach a push-pull line driver (e.g. http://www.elcojacobs.com/wp-content/uploads/2012/08/push_pull_line_driver.jpg) in between each pair of shift-registers (to connect the latch,clock and data lines) to prevent erratic behaviour.

Open questions:

LEDs: When using the above setup I require common-anode LEDs, right? Also, when calculating the value of the resistors between the LEDs and the darlington arrays I should take into consideration the voltage drop by the darlington array, right?

Power supply: When using RGB LEDs rated at max. 20mA for each pin I calculate a required (20mA * 3) * 128 = 7.86 Amps of current. Am I making a mistake here? This is too much for any normal power supply (e.g. 5 volt dc at ±1.5A) to handle, right? Any advice on how I should power all these LEDs? I do not require extreme brightness but even at 5mA I calculate a required 1.92A of current (if all LEDs are on).

General: Is the rough design I thought of feasible at all? Would it be smarter to use a multiplexed design (Especially given the estimated power requirements)?

So far these are the questions I can think of at the moment, I would very much appreciate any advice you can offer me.

Thanks in advance!

Best,

Jim

Take a look at WS2803 instead. Each can control 6 RGB LEDS and buffers the control signals to pass on to the next chip.
Here's the single RGB version of it, the WS2801

I don't know where you get a datasheet - their website never seems to open for me

I have this board with 12 8-bit shift registers for 96 LEDs, you could use 2 and have some expansion room as well. Each would control 32 common anode RGB LEDs.
(sorry about the size, I keep meaning to post a smaller version).
$6/board mailed to you. You'd connect current limit resistor & LED to each pin.
Design is flexible, can be powered from 5V.

Not much to do about the current draw. You could limit the current as you say. 2A is not much, 4A even. Wallwarts are readily available that can handle that.
Or lower the current per LED. I'm not aware of any chips that mulitplex RGB LEDs.
I suppose you could finagle something - use 2 or 3 MAX7219/7221, treat 2 common cathode RGB LEDs like they were 6 segments of a 7-segment common cathode display. Each would drive 16 RGB LEDs as 8 sets of 2 pairs. You would write to a register to control the color of each LED.

http://www.dipmicro.com/store/DCA-0520
http://www.mpja.com/5VDC-4A-Regulated-Plug-Supply-Openpeak/productinfo/18520+PS/

Have you seen the POV LED Globes, they are awesome -

Its obviously more than an Arduino runing this one, but there are lots of Arduino ones about.

Duane B

rcarduino.blogspot.com

Thanks for the information CrossRoads.

I managed to open the website for the WS2803 and downloaded the datasheet (I've attached it to this post should it be of interest to you).

The board you designed looks quite interesting to me. The shift-registers you used are able to provide enough current per output (and in total) to remove the necessity of using some form of transistor to switch higher currents using the 74HC595 shift-registers, right? Since I see that you are using an ATmega328P? chip + clock, etc. can I assume that each board handles itself as an individual Arduino? So in principle I should be able to use 4 of these to be able to control 128 RGB LEDs? (The 6$ per board, is this including all of the TPIC6B595s?)

@DuaneB: Simply amazing! Perhaps a project for the future!

WS2803-preliminary-En.pdf (437 KB)

Hi jimher, thanks for the datasheet.

Yes, the board is basically an arduino clone with 96 pins of high capacity current sinks.
96/3 = 32 * 4 = 128, so you've got the math right :slight_smile:
End pin on each header can connect to +5 or Vin (jumper select by the 7805) to supply the common anode.
I would go with 5V wallwart and 5V, not install the 7805, size the current limiting resistors for the 3 colors accordingly on the cathodes. (Blue is usually higher Vf than Red & Green).
I have to check, but I think I ran a PWM line to the shift register OE/ pin also, you can use that as dimming feature when you decide 384 LEDs all on is too bright 8)

The $6 is the bare PCB, basically the board cost + mailing costs, you need to install whatever you plan to use - sockets for the ICs or no, male/female headers or none, barrel jack or screwjack for power, etc. If I have 4 left (and I can order more, just takes a few weeks) I can send them out with your paypal payment and include the schematc & PL (which I don't think I've gotten around to posting on my webpage yet. No sinister plot there, just busy.)

Thanks CR, I've sent you a pm.