Dozens of chasing LEDs as fancy text

Hey All,

I’m relatively new to Arduino. I have successfully done a couple of projects, one involved implementing an H-Bridge for motor control. I’ve been casually tinkering since I was a kid, so my knowledge is at a beginner/intermediate level.

Here’s my situation. I need to make an awesome Valentine for my wife (long irrelevant story), so as a part of it, I wanted to make a sign with dozens of red LEDs that chase in different patterns. My original thought just to use all 16 digital output pins and turn them on/off in order to achieve the “chasing” effect. I would hook them up to the LEDs in each symbol/letter different orders to achieve different patterns, but each pattern would have to be limited to the 16 pin sequence. I’m not sure how efficient that is. I’m also not sure if I can even hook that many LEDs up in parallel. Or would I hook them up in serial?

The design would be simple. Probably: heart BE MINE heart or something similar. Perhaps a heart with the word LOVE inside.

Anyways…I have two questions:

  1. What’s the best way to hook up so many LEDs? Solder wires directly to the LED leads? I wouldn’t even know where to start with this.
  2. Is there a different approach to hook up and “chase” this large quantity of LEDs I should/could use that I’m not aware of because of my lack of experience?

Any and all help appreciated! I have an Arduino Duemilanove.

Thanks for the help!

What's the best way to hook up so many LEDs

Get yourself a 8x8 red LED matrix. It is easy to connect, lots of links to schemartics/tutorials out there. You can display hearts on it, scrolling text etc etc. You will impress your wife :)

Any quick links or quick tips? Do I need a multiplexer? I don’t even know what that is. I’ll Google around, but if you or anyone has any solid references handy, I would greatly appreciate it.

I found this:

…and I bought these:
LED Display Driver (8-Digit) - MAX7219CNG
LED Matrix - Dual Color - Medium
Arduino Uno SMD

I suppose that’s all I need? Do I need any other components (capacitors, resistors, et. al.)? I’m not good at reading spec sheets or schematics.

Thanks for the suggestion, florinc.

The article you pointed to has a link to another article that has a schematic: I personally never used MAX7219 chips, so I am no expert, but I see from the schematic that you only need a couple of resistors (26K?) and a couple of capacitors (100nF). Ask questions here and I am sure the author of that article, brohogan, will help you.

In my searching, I think I discovered that I don't need a multiplexer for one 8x8 display.

Now I have two extra multiplexers on hand (of course I bought a second as a backup). Oh well! I'll have to find another project for it!

If anyone is still reading this thread, can you please tell me how to determine what resistance to use in front of an LED? I've always just hooked it directly to the Arduino with no this bad? Please advise! Thanks!

Any number between 150 and 560 ... give or take. For most things it really is not that much of importance.

( 5V - voltagedrop ) / recomended current = Ohm.

5V - 1,5(yellowLED) / 15mA = 233 Ohm (ie use a 220 resistor)

Interesting...(and thank you!)...

Quick follow up, please...

I found this spec sheet for the 8x8 I ordered from SparkFun:

Please let me know if I'm reading this correctly. It seems to indicate that for red color, I need 2.0 volts @ 20 mA. Does this mean that I do: (5V - 3V) / 20mA = 100 ohms

...and then I'll just need to put a 100 ohm resistor in front of each of the contacts?

Looks good to me. Though your sum has 3V in it but the result is correct for a Vf of 2V. It's also good practice to always round up to the nearest standard value even if your within a couple of ohms of a lower value. It looks like you need 16 resistors for the column pins only. 8 for red 8 for the green.



Yeah - whatever he wrote ;)

Thanks everyone! I get the parts today! I'll post my steps along the way and final project when it's done.

Stay tuned...

Here's a question. I'm looking at the example on the page:

Looking in the does the Arduino know that using digital pins 14-17 correspond to Analog IN pins 0-3? Is this in one of the manuals/tutorials/reference pages somewhere? I guess I'm a little lost about that. Can someone fill me in?

EDIT - I found this: (Section Analog Pins)

This should be more clearly/prominently documented somewhere, I think, for newbies like me. :)

Oh my God. What a friggin’ night. That Direct Drive nonsense does not work. I have it hooked up exactly right, and all I get is a blank screen. The FrequencyTimer2 library seems like it’s notorious for not working. There were some good threads out there, but ultimately, not helpful at all. This is driving me insane.

I wrote a test app to make sure the matrix worked and that more terrible soldering skills didn’t kill it. It works. This moves a dot down the matrix.

void setup() {
  // all connected pins are outputs
  for (int i = 1; i <= 17; i++) {
    pinMode(i, OUTPUT);

  // 2 - 5 are cathodes
  for (int j = 2; j <= 5; j++) {
    digitalWrite(j, HIGH);

  // 14 - 17 are also cathodes
  for (int k = 14; k <= 17; k++) {
    digitalWrite(k, HIGH);

void loop() {
  // 6 - 13 are the anodes
  for(int i = 6; i <= 13; i++) {
    digitalWrite(3, LOW);
    digitalWrite(i, HIGH);

    delay (50);

    digitalWrite(3, LOW);
    digitalWrite(i, LOW);

So, I mean, I can get it to display things manually by writing HIGH and LOW to different anode/cathode pins, but I’d like to make use of what’s out there. I have that 7219 multiplexer, but I don’t see any examples with scrolling text. I’m afraid I might have to do this all from scratch, but I see so many examples on YouTube (below), so it just blows my mind as to why I can’t find anything on this or get it to work. If I do, I’ll be sure to post. Meanwhile, I’m exhausted and headed to bed. If someone wants to be my hero, please send me a email or something or respond here…I’m almost out of time and energy…thanks…