Hello there,
I plan to create quite a large project using approximately 140 meters of LEDs with a density of 60LEDs/m. I have done smaller projects of up to 5 meters, but this requires more thinking on my part. I have more or less planned the power supply, but I am wondering what module to use for it.
I am grateful for any help.
Is this a serial input type of strip like the WS2812b or are there separate RGB connections?
Will it be one continuous strip or several smaller strips?
Have you read the Adafruit Uber Guide?
You'll at-least need multiple power connections between the power supply(s) and to the strip(s). You can't run that much current through the strip or through a single-pair of power & ground wires. And you'll probably need multiple power supplies.
And if they will all be individually-addressable, check your memory requirements. You'll need an Arduino with lots of memory, or maybe multiple Arduinos.
And check the time it's going to take to update the whole strip.
Sorry, I forgot to mention it - I use WS2812b. I would like each strip to have 20 LEDs, giving a total of 420 strips.
Actually, I haven't read it, but from what I've seen now, theoretically I can connect the segments into one long strip, but I don't know how exactly this will affect the delays, and I would like the LEDs to respond to capacitive sensors, so the delays should be as small as possible.
As for the power supply, I plan to buy several Meanwell RSPs and inject power approximately every 5 meters
So you will need 420 separate wires going to an Arduino.
Is there a possibility to put some of the strips in series, so as to reduce the number of wires?
So…
Have you read the Adafruit Uber Guide ?
as suggested? You can calculate the memory required for 8400 RGB LEDs, and the total time for an update of all strips.
You can use multiple strips, but if you have to update them all, it will take all the time.
Unless you use more powerful hardware. I haven't but I think a Teensy or a module can do 8 channels unparalleled in parallel.
You could switch to APA102 LEDs, they use SPI so you wouldn't need storage for the LED data. It would mean more visible refreshing, but might not be a deal breaker.
Unless of course you already have 8400 WS2812B LEDs. ![]()
a7
They are serially addressed and the data goes-through all of them so you have to write to all LEDs every time you change one (or more) and I suspect it will take a "noticeable" amount of time to get-to the last one in the string.
You can check the WS2812 datasheet for the timing but you might have to experiment to see how fast the Arduino can actually run. You can experiment with a shorter LED strip and then program a loop and a timer to see how long it takes to run 1000 loops, or something like that.
...I assume you are experimenting on a smaller scale before buying all of this stuff!
And you may have to use interrupts, or maybe another microcontroller for your capacitive sensor and whatever else the code is doing. The WS2812 code is processor intensive.
If you have multiple strings all with the same pattern, the data can be sent to all of the strings in parallel, but of course that means all of the LEDs are not individually addressable.
Adafruit recommends every meter.
...If you don't know this, there are 12V LEDs strips where the LEDs are addressed in groups of 3. If that's acceptable in your application, it will run 3 times as fast, you can use 1/3rd of the memory, 1/3rd of the memory, and you can space-out the power injection farther. But it would still be a HUGE project!!!
What do you mean by module? Arduino board?
Update of a single pixel will take 30 microseconds; multiply by 8400 pixels ![]()
If that is not acceptable, one option is to use a processor that is capable of outputting the data over 8 pins (at the same time); have a look at teensys and OctoWS2811 LED Library, Driving Hundreds to Thousands of WS2811 LEDs with Teensy 3.0
That's the method I couldn't put my finger on.
@kowal1234 one strip will take 250 milliseconds to update.
I am a bad scientist, so I am totally willing to be slam/corrected, but I did extensive experiments with the WS2812 strip.
Each LED reforms the data line, and is passing the data stream along way before that LED has clocked in all 24 bits it needs.
So the last pixel is not delayed by 250 milliseconds, but a very shorter yet non-zero time time.
Not until the sync pulse happens (data line low for X microseconds) does a pixel broadside load its PWM registers, so the change from, say, all off to all, will happen at the same time, or much more like the same time than 250 milliseconds.
There will be a ripple, and due to pixel to pixel differences, some will recognize the sync pulse sooner than others no matter they are to the left downstream or not.
It wouldn't be pretty if you saw it in super slow motion. For a few hundred pixels, no real issue.
a7
Sorry, I must have misunderstood you. I meant that they would be cut into strips of 20 LEDs, but what I really want is for them to be connected in series.
I really want to use the WS2812b. I won't go into that much detail, but I spent a few hours comparing different types of LEDs and these are the ones that best suit the nature of my project long term.
I was planning to connect this whole thing to the server. Maybe it would be possible to reduce the load on the board to communicate with the server and receive commands from it?
I have been playing with sensors, LEDs and Arduino nano for some time now. I set 5 meters to white, halfway through there was a voltage drop and a shift towards yellow. After adding power to the other side, I got a beautiful, bright white color on the entire strip.
I really want to use the WS2812b. I know this can use up the board's resources a lot, but maybe there is a way to divide the tasks. I was thinking about one board receiving the signal from the sensors, the second (or several if necessary) being a kind of connector between the first one, the server and the LEDs. I don't know if I've messed things up too much, I hope you can more or less understand what's going on.
Yes, I mean Arduino board
Well, if the response time is really that low, that's at least one problem solved ![]()
Minor delays don't bother me, in fact I'll accept anything less than 0.5 seconds. When you started writing about delays, I was afraid that I would find out about, for example, 5 seconds ![]()
Maximum neopixels on Uno/Nano is just over 600.
What makes you think that? You still need somewhere to store the data of what you want each LED to do.
Each LED needs at least three bytes of data to define them.
So for 8400 LEDs you need 8400 * 3 = 25200 bytes of static memory to define them. This rules out most of the Arduinos you can get.
It is not necessary to use storage when you can choose to compute the pixel values as you ship them out.
a7
Well that is going to be a nightmare of coding then. Good luck in implementing that sort of algorithm.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.