Go Down

Topic: My First Time With Adruino & LED Light Strips (Read 973 times) previous topic - next topic

PaulRB

#15
Apr 14, 2019, 08:38 am Last Edit: Apr 14, 2019, 08:41 am by PaulRB
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.

Paul__B

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?  :smiley-eek:

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.

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.  :smiley-lol:



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


PaulRB

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.

boolrules

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.

QuinnVaros

Ok let begin without a lot of quoting:

Paul__B:

I will be connecting the 6 strips using the three pin connector provided only for making sure all the lights light up and the way I want them to light up. As for connecting power, there are also 2 wires that are separate from that 3 pin connector that I will be connecting power to so from what I read, power should not be a problem. Also with the non addressable lights I have now, I rarely turn on the white and never at full power so that will not be an issue. I just simply want to be able to turn 1 light one color and the next a different color, again not at full intensity.

PaulRB:

I am not a coder so at this moment I can not give you what you are asking for. Those were going to be questions down the line anyways.

boolrules:

As I get better at using my Arduino, I may get more creative in what I do with these light but for now my requirements are about as simple as you can get. They will be as you say "Rock Solid" in what I suggested in my first post.

So if there is anymore question, again please just ask.

ieee488

Go to https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/#more-1681

get and modify Josh's code.

He was able to run an 11 m strip using 3 power supplies capable of 10 amps each.

.


PaulRB

He was able to run an 11 m strip using 3 power supplies capable of 10 amps each.
That's not really the point. The point is that Josh had over 1000 LEDs running without needing an Arduino with over 3000 bytes of ram.

1000 LEDs could need 60 amps, so Josh's PSU were not strictly adequate. But by keeping brightness low or by not lighting every led at once, he avoided overloading them. But that's not the clever thing he did. The clever thing was to do it with so little ram memory.

ieee488

#23
Apr 14, 2019, 07:54 pm Last Edit: Apr 14, 2019, 07:55 pm by ieee488
That's not really the point. The point is that Josh had over 1000 LEDs running without needing an Arduino with over 3000 bytes of ram.

1000 LEDs could need 60 amps, so Josh's PSU were not strictly adequate. But by keeping brightness low or by not lighting every led at once, he avoided overloading them. But that's not the clever thing he did. The clever thing was to do it with so little ram memory.
I understand perfectly the clever thing he did.

As I am not quite sure what the OP actually wants, I propose Josh's project as one possibility.





.

PaulRB


QuinnVaros

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.
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.  :smiley-lol:



And I have not even mentioned the need for the capacitors and series resistor.
So after thinking about this you may be right about this. So instead I plan to only hook up jumpers for the data line and that way the power supplies are not working against each other. As for the Resistors and Capacitors, those are question I have as well. What size of each do you think I might need. Will I only need 1 of each for the whole thing or would I need 1 for each supply. And how to connect them. Now treat me as child learning to walk because this is what it is like for me.

PaulRB

#26
Apr 16, 2019, 07:27 am Last Edit: Apr 16, 2019, 07:43 am by PaulRB
I plan to only hook up jumpers for the data line
And the ground lines. Just don't connect the 5V lines between the PSU.

For the caps, more is better . Ideally at least 1000uF per strip, close to where the power lines connect to the strip. They act as local "power reservoirs".

For resistors, something around 330R~500R between the Arduino and the first strip, close to the strip. Will there be long distances between the strips? If so, they may also need resistors.

QuinnVaros

And the ground lines. Just don't connect the 5V lines between the PSU.

For the caps, more is better . Ideally at least 1000uF per strip, close to where the power lines connect to the strip. They act as local "power reservoirs".

For resistors, something around 330R~500R between the Arduino and the first strip, close to the strip. Will there be long distances between the strips? If so, they may also need resistors.
So I should connect the ground and the data line between strips or to the Arduino? The PSU should already be grounded with the cord from the outlet to the PSU that I am using.

As for the Resistors, I plan to be a short as possible between strips without having to cut the wires and soldering. So I think the wires with the connector is about 3 inches long on each end so a total of about 6 inches between strips.

And as for the Capacitors, So you say to be as close to the strip as possible. With the two wires I am going to use, should I connect one end of the cap to 1 wire and the other end to the other wire or do both ends get connected to one wire? And instead of cutting to wires completely can I just slice the cover open and shove the cap in and heat shrink it closed? 

So with these question you can tell I have little to no idea as to what I am doing so please be gentle. I know I am a noob but even noobs have to learn somewhere.

PaulRB

The PSU should already be grounded with the cord from the outlet to the PSU that I am using.
That's the AC ground, its not the same thing. You must connect the DC grounds, between the Arduino and each/all strips.

As for the Resistors, I plan to be a short as possible between strips without having to cut the wires and soldering. So I think the wires with the connector is about 3 inches long on each end so a total of about 6 inches between strips.
You might get away without the resistors between the strips. If you don't use one, there is no risk of damage, its just that the signal may not be reliably received by the first led on the next strip. It will be easy enough to tell if that's happening, so hook them up temporarily, and if the data is not getting through, add more resistors.

And as for the Capacitors, So you say to be as close to the strip as possible. With the two wires I am going to use, should I connect one end of the cap to 1 wire and the other end to the other wire or do both ends get connected to one wire? And instead of cutting to wires completely can I just slice the cover open and shove the cap in and heat shrink it closed?   
The caps go accross the + and - wires. Caps of this size will be electrolyic type. You must connect them the right way around or they will probably explode. The cans are often marked with + symbol next to the positive terminal, but if not, there will be a white stripe next to the negative terminal.

QuinnVaros

That's the AC ground, its not the same thing. You must connect the DC grounds, between the Arduino and each/all strips.

So Connect a ground to Adruino?

You might get away without the resistors between the strips. If you don't use one, there is no risk of damage, its just that the signal may not be reliably received by the first led on the next strip. It will be easy enough to tell if that's happening, so hook them up temporarily, and if the data is not getting through, add more resistors.

I know I should use a resistor at the Arduino but I have not seen anything about using 1 for each strip if I am daisy chaining them. So I should put a resistor in-between each strip even though I am only connecting 1 strip to the Arduino and the rest are connected to each other?

The caps go accross the + and - wires. Caps of this size will be electrolyic type. You must connect them the right way around or they will probably explode. The cans are often marked with + symbol next to the positive terminal, but if not, there will be a white stripe next to the negative terminal.

OK so that answers that question.

Go Up