My First Time With Adruino & LED Light Strips

Hello all:

This is my first post here because I can't seem to find answers or the right guide to help me do what I want to do. So as the title suggest, I am new to Arduino and have no clue as to what I am doing. I will try to explain as much as I can so maybe you all can help me. I started off with some light strips that I thought were addressable but turned out not to be. So I did some research (yes I know I should have done that first) and I started to buy the right lights for what I want to do. I also bought a Uno R3(clone I think) although it has the Arduino symbol on the back side of it. I am also going to buy 6 sets of Alitove RGB Addressable Light Strips with 300 led's on 16.4ft, 3 of which are already bought. I will also be buying Six Alitove 5v - 20 amp power supplies, also 3 of which are already bought, to power the lights alone and run the Arduino separate though the USB outlet.

To give you an Idea of what I want to do is simple. I want to be able to program each light separately to match the season. Say for Christmas, I want to do Red, Green, Red, Green and so forth. For the 4th, Red, White, Blue, and so forth. You should get the point. I have tried to find a wiring diagram to show me how to hook these up but there are so many. And some show without resistor and capacitors and other show with so I am confused about this. I plan to hook all 6 in a row but still each have there own power. Also trying to figure out the coding is making my head spin. I have the latest driver and the latest Fast LED but I do not know what I am doing. SO that is all I can think of right now because it is late for me. If you need more info, please just ask and I will do my best. Thanks!

Problem: Uno may not be able to deal with that many LEDs. It depends how you wire them. If you wire them all to the same Arduino pin, then it should be ok, but all 6 strips will show identical patterns, because the Arduino thinks there is only one strip of 300 leds. If you wire them in a chain, or wire them to separate Arduino pins, then you would be able to have different patterns on each strip, but the Uno will not have enough RAM memory. For 1,800 LEDs to be controlled independently, 5,400 bytes of ram memory will be needed. Uno only has 2,000 bytes.

I've never used one myself, but I would suggest upgrading to something like a Trinket M0.

PaulRB:
Problem: Uno may not be able to deal with that many LEDs. It depends how you wire them. If you wire them all to the same Arduino pin, then it should be ok, but all 6 strips will show identical patterns, because the Arduino thinks there is only one strip of 300 leds. If you wire them in a chain, or wire them to separate Arduino pins, then you would be able to have different patterns on each strip, but the Uno will not have enough RAM memory. For 1,800 LEDs to be controlled independently, 5,400 bytes of ram memory will be needed. Uno only has 2,000 bytes.

I've never used one myself, but I would suggest upgrading to something like a Trinket M0.

I am not really going to do anything that requires the lights to do fancy things like a snake thing or starting flashing at both ends and move towards the middle. My projects are going to be very simplistic. Most of the time the lights are going to be static (just one color, no blinking or flashing) and If I want to do something like that I am going to get a separate controller (maybe). I just want to control which light is what color. Especially when the Mountaineers play so I can make the lights Blue and Gold on Game Days. But you say that the Uno will not handle all the lights and I should go with the Trinket M0 because of memory?

You still have not answered the question of how these 6 LED strips are to be connected.
Are you going to solder all 6 strips into one long strip or not?

QuinnVaros:
I just want to control which light is what color.

Then Uno does not have enough RAM memory. It makes no difference if the pattern is complex or simple. Only if all 6 strips show identical patterns & colours will the Uno have enough RAM.

ieee488:
You still have not answered the question of how these 6 LED strips are to be connected.
Are you going to solder all 6 strips into one long strip or not?

I am going to connect them with the provided wires so I do not have to solder them together but it will be 1 long line like it was an 1800 LED strip

PaulRB:
Then Uno does not have enough RAM memory. It makes no difference if the pattern is complex or simple. Only if all 6 strips show identical patterns & colours will the Uno have enough RAM.

Yes they all are going to show an Identical pattern with no deviation. Like I said it will be just a constant stay on light, just 1/2 will be 1 color and the other will be another color in a repeating pattern, Red, Green, Red, Green, all the way down the line. Except on the 4th it will be three different colors.

One strip of 1800 LEDs should be doable.
Cannot say for sure because I have only used one 5 meter strip connected to the Uno.

.

ieee488:
One strip of 1800 LEDs should be doable.

With Uno? If you know a way, please explain, both the OP and I will be interested to know how to do this.

PaulRB:
With Uno? If you know a way, please explain, both the OP and I will be interested to know how to do this.

I guess I am wrong. LOL.

I have never done it. What do I know? LOL.

ieee488:
What do I know?

Well, I know you read post #1, because you commented in post #3 that the OP had not answered my question. So I was wondering if you know of a way to avoid the problem I described in post #1, like some code or library which does not require 3 bytes of ram per led, but instead allows generating those 3 bytes "on the fly" just before they are sent to the strip. I know that's possible, I remember reading that someone had achieved that in the past, but I can't find that thread.

PaulRB:
Well, I know you read post #1, because you commented in post #3 that the OP had not answered my question. So I was wondering if you know of a way to avoid the problem I described in post #1, like some code or library which does not require 3 bytes of ram per led, but instead allows generating those 3 bytes "on the fly" just before they are sent to the strip. I know that's possible, I remember reading that someone had achieved that in the past, but I can't find that thread.

I think I misunderstood your first post.

I would be interested if you find that thread again.

Ok I am starting to get confused here. So to ask a couple of questions to be sure. PaulRB you are saying that I can not use 1 Arduino for my six light strips that will be daisy chained (hooked together using the attachments that are already hooked to the wires) equaling up to 1800 led's? And if this is the case you are suggesting that I use the Trinket M0 in order to make this work like I want? Or, I will be able to use the Arduino since with the hook ups, it will seem like the 6 strips will be like one and I will not be doing a lot of color changing?

This will only answer part of my original post but I can back to the rest of it later once I get this settled.

QuinnVaros:
I can not use 1 Arduino for my six light strips that will be daisy chained... equaling up to 1800 led's?

Correct, if by Arduino you mean Uno.

Only if all 6 strips are connected directly to the same pin would it look to the Arduino that there were only 300 leds. Then, Uno would be enough, because only 900 bytes of ram would be needed. But the effect would be that each of the 6 strips would have to show the same colour/pattern at all times. In other words, led #1 of all 6 strips would be the same colour and led #299 of all 6 strips would be the same colour. Always.

Unless... there is some code/library that does not require 3 bytes of ram per led, relying on the fact that the patterns were simple and repetitive. FastLED and AdaFruit Neopixel libraries need 3 bytes per led.

It seems that the color patterns you want to use are extremely simple.
So simple that a value could be computed for each LED with very limited memory usage.
But more explicit detail would be helpful.

I would also say that you could hook up one strip and just use, say, the first 10 LEDs to learn what you are doing.

boolrules:
It seems that the color patterns you want to use are extremely simple.
So simple that a value could be computed for each LED with very limited memory usage.
But more explicit detail would be helpful.

I would also say that you could hook up one strip and just use, say, the first 10 LEDs to learn what you are doing.

What details would you like to know. I though I explain everything in the first post but by the sounds of it I missed something. Please let me know what you need.

Maybe it would be less ambiguous if you described some examples using numbers rather than English. For example:

Pattern "XYZ":
LEDs 0 to 299: red
LEDs 300 to 599: gold
LEDs 600 to 899: blue
LEDs 900 to 1049: green
LEDs 1050 to 1199: purple
etc... to 1799

This will be useful whichever solution you go with. Meaning if we can find a way to do it with Uno, or if we can't and you have to buy a Trinket M0 or whatever so that FastLED/NeoPixel libraries can be used. Because when you code up the patterns, this is the level of detail you will need to have worked out.

QuinnVaros:
I am going to connect them with the provided wires so I do not have to solder them together but it will be 1 long line like it was an 1800 LED strip

Wait on!

You say "so I do not have to solder them together", but you also mention requiring Six Alitove 5v - 20 Amp power supplies so let's look at the matter of power supply. 300 LEDs at 60 mA each comes to 18 A, so you do indeed require one such power supply for each strip. Do you imagine you can simply connect the power supply to one end of the strip? :astonished:

Well, there are two problems with this. The first is that while the advertising promotes this strip as more rugged than most, I doubt the foil on the strips will tolerate the full 18 Amps if you were to program all LEDs on white at once - it is likely to burn out like a fuse.

But even if it does not, there will be a substantial voltage drop along the strip at anything approaching full power, so that the LEDs furthest from the power connection will turn yellow because the blue (and then green) LEDs have a higher operating voltage and will dim before the reds as the voltage drops.

This might not matter if you only ever illuminated a small proportion - no more than 15% - of the LEDs at any one time but when you refer to Christmas decorations, I suspect you will at some point want to show all white and presumably at full power. At the very least you must supply power to both ends (which explains why there are the second pair of wires for power at each end), buy you probably really want to feed in power in parallel to at least two other evenly spaced points along the strip, from a separate, heavy duty (2.5 mm2) cable.

So then you have a power supply for each of six strips. If you chain them all together using the three pin JST connectors, you will necessarily be connecting all six separate power supplies in parallel. This also may be a problem as it is possible the supplies may interact. It would be better if you only chained the ground and data from one section to another - and this of course if you can resolve the memory requirement for 1800 LEDs as has been discussed so far.

boolrules:
It seems that the colour patterns you want to use are extremely simple.
So simple that a value could be computed for each LED with very limited memory usage.

The limitation of that is that it would require "on the fly" computation of the data stream. This would generally require more computational power than an ATmega328 running at 16 MHz, so you may need a faster processor, but then the faster processor would just as likely have more memory as well so you would not need the "on the fly" processing anyway. :grinning:


And I have not even mentioned the need for the capacitors and series resistor.

Found it!

Paul__B:
The limitation of that is that it would require "on the fly" computation of the data stream. This would generally require more computational power than an ATmega328 running at 16 MHz, so you may need a faster processor, but then the faster processor would just as likely have more memory as well so you would not need the "on the fly" processing anyway.

Paul, the OP had stated that no animations will be required, only pre-defined patterns consisting of large blocks of a small selection of pre-defined colours. So "on the fly" might be possible. That's what the code I linked to above does.

My concern now is that the code I linked to it not as user-friendly as the FastLED/NeoPixel libraries, and the OP is a beginner.

QuinnVaros:
What details would you like to know. I though I explain everything in the first post but by the sounds of it I missed something. Please let me know what you need.

It's just that "beginners" are notorious for stating their requirements in a simple manner
only to later start modifying those requirements without realizing the impact on thier
project. If you are sure your first description is "rock solid" then no problem. I'm just
checking.