Controlling 6 LED strips of different lengths

Hi,

Nick Newbie here. I want to set up six LED strips (two each of 12, 16 and 20 feet) and be able to control them individually, in pairs, and in two sets of three. I'll have 900 pixels to control overall in sections of 108, 150, and 192 pixels. I could reduce that by a third if I opt for 3 LEDs per pixel but I'd prefer the fidelity of the individual pixels if possible.

How feasible is this? I'm pretty much a newb with arduino and the last programming I did was for a Fortran class in the '80s that used punch cards to load the program but I'm game for that challenge. Power isn't an issue and my soldering skills are above average. Plus I know how to follow a schematic and how to troubleshoot. My real question is how well can the arduino hardware handle this type project? Would multiple boards be more suited to having responsive system? Would I use a single control line for all six strips or two lines controlling three each, or would it work better to have six separate control lines (maybe using a Mega)? What hardware would best handle the processing load? Anything I should be looking at to enhance the stability and capability of the system? What are going to be my main problem areas?

I guess what I'm looking for is a good starting place that I can easily build on rather than going through a bunch of painful trial and error. I'm building a house and need to plan for wiring and such in my walls so I'm trying to get ahead of any problems before I cover everything up. I figure I'm going to have to learn a bunch of programming as well so the whole thing is gonna take time. I plan on buying some extra boards and stuff for side projects and experimenting to bring up my basic skills.

I appreciate any and all insight from anyone that's worked through similar projects.

Thanks.

Steve

Use the magnifier symbol up to the right in this window and search for Arduino + LED strips.

Would multiple boards be more suited to having responsive system?

Yes it would. Basically because these strips need precise timing so it doesn’t matter how powerful your processor is, it is still going to take the same amount of time to pump out the data to your strips.
What is important is the amount of memory it will take and this leaves you with only the Mega, as an option for a 5V powered processor.

You can use the 3V3 class of processors but you need a logic level shifter to make the output into a 5V output. Do not use the bi-directional type of level shifter designed for I2C signals.

Power isn't an issue

Yes it is. You might not think it is but it is not only getting the power but getting it to the right place. The wiring in the strip is not sufficient, you have to run extra power wires to prevent voltage drops being a problem.

Thanks for the response, Mike. I understand the power issue. I plan on feeding all the ends and middles with power to reduce voltage drop to a minimum. The 5V 80A (60A continuous) power supply I sourced should be more than adequate.

My biggest issue for sure will be programming. But making sure I have the right stuff to start will help. I appreciate the tip that the Mega should do what I want.

Toward that end, I'm looking at getting the Arduino Starter Kit (which includes an Uno) to help me learn the programming and loading basics. More importantly, the Uno has 6 digital PWM outputs. if I set up the Uno (adding a separate power supply) with 48 addressable LEDs split into six groups, one connected to each output, would programming the Uno be similar to programming the Mega to do the same things but with much longer strips? Is it reasonable to assume that, for the most part, scaling would simply involve changing the LED parameters associated with each output? If so, then by getting the starter kit and a few other things I can realistically get started trying to do the things I want with the Mega without immediately going full scale. I can always use the Uno for another project and doing some of the beginner projects sounds like fun.

Does that sound like it would work the way I think? I'm not necessarily a great thinker.

Thanks again for putting up with the newb questions. If this is a good path forward I can soon move on to more advanced stuff.

Steve

What does PWM pins have to do with controlling addressable (WS2812/ NeoPixel or similar) strips? :roll_eyes:

Yes it is the memory capacity of the Mega that you need. Each LED in the strip takes three bytes of memory. The PWM capability of any pin is irrelevant when driving a WS2812 strip. You can use any pin, it doesn’t have to be PWM capable.

Start off by getting a short addressable strip and playing with the library examples. The two big players in the library field are the FastLED, and the Adafruit Neopixels one.
Then cut the strip into smaller pieces and experiment with multiple strips. This requires a step up in your developing software skills because you will need to code the whole thing as a state machine. When you get to that point there are plenty of tutorials to help you.

Personally I think the Adafruit is simpler to understand but many would disagree and go for the other one, as it has more options.

I read somewhere I needed the pwm pins but I realize now that's silly. Thanks for the correction.

Grumpy_Mike:
This requires a step up in your developing software skills because you will need to code the whole thing as a state machine.

By state machine I'm guessing you mean a number of articles (lights) on separate outputs run by a single processor designed to work together. In other words, not a simple one leg system? Learning the lingo is important.

Grumpy_Mike:
Yes it is the memory capacity of the Mega that you need.

If memory is the real issue and it's 3 bits per pixel, if I used 60 pixels/m instead of 30 I'd have 1800 pixels and need 5.4K memory for them leaving 2.6K for programming and overhead. I'd guess that's enough headroom to do what I want, isn't it? At that point power is probably the limiting issue for an effective display, not capacity.

Grumpy_Mike:
Start off by getting a short addressable strip...

Mike, that's my plan. I'm ordering the starter kit today along with some extras to play with.

Grumpy_Mike:
Personally I think the Adafruit is simpler to understand but many would disagree and go for the other one, as it has more options.

I think I'm okay. Complicated isn't necessarily bad if you can make sense of it. And I've always liked learning new languages so this should be fun.

Thanks, Mike, for all your help in getting me started.

Just looked up state machine. One way of looking at it is a system that's stable in a number of states depending on inputs. Makes more sense than what I said.

One way of looking at it is a system that's stable in a number of states depending on inputs.

No.

An example of a state machine is in the blink without delay example in the IDE.
You also have the doing several things at once tutorial we have as a stick post in some Arduino sections.
Finally I wrote a tutorial about it.
http://www.thebox.myzen.co.uk/Tutorial/State_Machine.html

I have also posted examples of using a state machine with WS2812 strips in the LED section of the forum. :slight_smile:

livewire56:
Just looked up state machine. One way of looking at it is a system that's stable in a number of states depending on inputs. Makes more sense than what I said.

Not quite. It means that it cycles through a procedure that repeatedly - without ever stopping and that is important - examines the combination of the current "state" - which may have a number of different, possibly related or not related components - together with a number of measurable factors which may include the current time, in order if necessary to update that current "state" and determine outputs before repeating the cycle.