Background:
I'm a pc modder. I'm currently trying to design an rgb (3 pin 5v addressable) controller using my trinket pro. Why i'm doing this is because the majority of led controllers are not robust enough and doens't have enough plugs for the amount of "strips" i'm wanting to control for this build.
For example, this build i'm doing will have around 8 strips with varying numbers of leds on each strip.
Project:
With that being said, I want to create a controller using a browser or any interface developer in the playground that will allow me to selectively choose which pin (that pertains to a specific strip) and be able to apply an animation (since those codes already exist) to that specific pin/out put and be able to do the other individual strips the same.
I kinda have the gist based on doing plenty of research on how to interface with the arduino over serial/usb (my consider an esp8266 if I want to go wifi), and reading through fastled's github and their coding practices for multiple strips.
Eng goal:
When in my windows environment, I want to open up a browser/app that will allow me to control the led's that are in the computer calling and applying unique animations to them individually.
Example:
I have one strip that lights the power button (1led) and another that lights up the GPU waterblock about 40 leds. The interface I want would be menu style where I can select the strip and the animation to apply to it.
In the code the strips and how many led's will already be designated (though having a cool setup that will allow users to designate strips and how many leds would be righteous in the future). It's just making the rest of it and how I want it to work is where it's stuck in my head but unable to make it a realization.
I'll be designing the pcb that will mount the trinket pro and make a somewhat archaic trace design that will make sure that resistors go to every data pin a strip runs to and the ability to supply enough 5v amperage from the computers psu. The one I have is rated at 5v 15amps which should power about 250 leds (on brightest settings and white which isn't going to happen, just putting that out there).
In principle, your app (that controls the LED strips) could send commands on serial port to an arduino (the actual LED controller). Arduino reads the commands and does what it is told.
There is another way to connect your 8 strips that you may not have considered. You can daisy-chain them. Only strip #1 is connected to an Arduino pin. Strip #2 is connected to the output of strip #1 and so on. This may make wiring the strips more simple for your design, with fewer, shorter wires.
Beginners sometimes believe that daisy-chaining means that you cannot have different animations running on different parts of the strip. This is not true. With careful coding, it can be done just as the same.
Beginners also often believe that the animation will be slower if the strips are daisy-chained. In general, this is also not true. If all strips need to be animated together, then the speed will be exactly the same. However, if only one or a few of the strips need to be animated while others show a stationary pattern & colours, then there could be an advantage to wiring the strips separately. But this will only be an advantage where the strips are hundreds of LEDs long, and I don't think your strips will be that long. So for you, the animation speed will be the same for a daisy-chained strip.
Thanks for the reply. I've considered having a single strip. Only problem would be if any where along the strip something happens to said strip, the rest of the strip after would die, correct? And having the per pin assignment is based on what i've seen so far in my research and wanting some sort of web UI to control each pins animation and so fort.
I know i'm being a pain, but i'm very focused on how I want it to act. Though I do appreciate everyones input, it could spark something that I wasn't thinking or have found before.
killRMODZ:
I've considered having a single strip. Only problem would be if any where along the strip something happens to said strip, the rest of the strip after would die, correct?
Well, if your assembly is in any respect so shoddy that "any where along the strip something happens", then segregating things will be of no help.
Now a little caveat regarding cutting and wiring pieces of strip together - clearly you have to extend it with a three wire ribbon cable (all connections, power and data, must run tightly together) but if you have a significant number of LEDs - you did not really quantify this - you need to provide power in parallel to both ends of each strip every 20 LEDs or so.
As to controlling different sections separately - as PaulRB fully explains - that is what you use the library to do.
This has nothing to do with shoddy, I would just like to use separate strips. I was just pointing out possible single points of failures though very unlikely.
I have a custom pcb that will provide dedicate 5v to the strips along with the esp module.
I've been going over the fastled library so i'm going in that directions.
And having the per pin assignment is based on what i've seen so far in my research and wanting some sort of web UI to control each pins animation and so fort.
The point I was trying to make is that chaining the sections into a single strip does not prevent you from using a web UI to control the animation of each section separately. Using several pins will not allow you to do anything you cannot do with a single strip. Using several pins will make the wiring more complex, probably longer, and more prone to breakage. But, as you pointed out, a failure in the wiring of a single strip, or the failure of one led, will prevent the remaining LEDs after the break from working. With a single strip, that failure is likely to affect more LEDs because it will affect the LEDs in later sections, not just that section. Another advantage of using separate strips is that no strip needs to carry the current/power for other strips, so extra power wires are less likely to be needed, if at all.
So there are advantages and disadvantages to both chaining your strips and to using separate pins. I wanted you to know you had that choice, and what the implications of each technique are, and to understand that chaining does not restrict what can be done in terms of animating the sections independantly, as many newbies seem to believe it does.
As for a single strip, I thought I saved a post where it was broken out how to assign different animations to different leds down the strip through identifying the pixel count.
I was going to defer to that if I went the route of a single strip.
Thanks for the input PaulRB, it's much appreciated.
What else was I going to say... Oh yes: WiFi won't work inside the pc case. Metal blocks the signal. So esp8266 is probably out (and wouldn't have enough pins for your strips on separate pins anyway).
Where will the web UI be hosted? It's probably on the edge of or beyond what your trinket Pro is capable of. So you will have to host the UI on the pc and communicate with it via usb/serial. But Adafruit make similar sized boards that probably can host a web UI without breaking a sweat. Have a look at the Itsy Bitsy M0 & M4. You will need an ethernet adaptor also, and some way to connect it to the network...
I actually went with the NodeMCU 12e for the reasons you mentioned for the trinket. Since i'm nodding the case, a lot of the metal panels have been replaced with custom acrylic panels. I've tested it with basic controller code from the fastled wiki and have 9 pins I can work with.
So I have a starting point as I was able to send different signals to each pin for differing colors. Was pretty cool to get that far. I would really like to use wifi, but if I can't... serial will have to go. I've seen someone make a visual studio ui and will have to defer to that if I have to.
I wanted the UI hosted on the esp board (webserver interacting with the uploaded fastled sketch). I'm eye balling Jasons's setup here: esp8266-fastled-webserver which i'm having problems compiling and tweaking for all located here: TweakingforAll which is straight forward though missing the UI portion.
I know I have my job cut out for me... LOLOL to say the least.