Welcome!
Lot’s to cover.
But before I address all those questions maybe it’s worth digging in to how commercial addressable LED strips work. That might give us some inspiration
So you want to build an Addressable LED Strip…
Commercial strips like this WS2812b strip are made up of these “Intelligent LED modules”.
They are connected * in series * like this :
Then they listen for a 24bit colour codes.
Once they receive their 24bit colour code, they latch that 3 bytes and and carry the next 24bits are sent to the neighboring WS2812 LED. This way, you can send a single data_stream through the entire strip, controlling all of them at once.
This datastream is handled by a microcontroller, like your ESP32 or sometimes a chip like the WS2801 below. (and WS2811 like you mentioned).
So what about me?
The key takeaway from the above is that the commercial LEDs have a latch-carry option. I did some searches through the X LAMP XM-L3 datasheet and it doesn’t seem like these are addressable in the same way.
The answer to your questions above, in my opinion, depend on how many LEDs you want to control. Are we talking 2 dozen or 6 dozen?
I think 24-36 would be doable… an epic undertaking, but doable.
If you want to go higher… I dunno maybe someone else will weigh in with a fantastic idea.
Let’s tackle those questions.
RGB LEDs.
Some of the models are RGB and they receive data.
For instance, this one is colourable
If you can send data to each of them individually, then setting them to black will reduce the current towards zero. Have a look at this datasheet below. You can see that the current decreases in a near-linear relationship to the brightness (kinda, luminous flux is tied to current so it’s not that simple but you get the idea).
This will mean you don’t need to cut power to the LED to turn it “off”, just set each colour to zero. This means you won’t need dozens of Mosfets
GPIO is going to be a premium. but they make boards that have lot’s of pins!
You could try multiple ESP32s that are synchronized.
That’s a solution Lot’s of code, but it’d work.
Buddy system
Another option is to buddy up the LEDS. So maybe you have 36 LEDs, but only 12 data pins to go around. It’s cool, each GPIO controls THREE LEDs. That means those buddy LEDS are going to be the same colour. If they’re evenly spaced, that means your patern repeats every 12 leds in your 36 led chain. Maybe that doesn’t matter to you. Lot’s of patterns have repeats.
What if we just… build a WS2812 system.
You could build you own latch and carry system using D Flip like the 74LS74 with some AND gates (maybe the 74LS08
Each LED has a gate, which means it is it’s turn to receive the colour data. When it’s done, you bang the resets on the chain of latches, and then increment the chain of D flip flop latches (shift it). A rolling cycle of LATCH and CARRY. That would be awesome. (do it I dare you).
Mono-colour Leds.
Ok, but maybe the LEDs you’re using are single colour… ON or OFF.
If that’s the case, you could use the MOSFETS.
SAVING PINS
Suppose we have a row of LEDs each with a mosfet for power. So to turn on the LED, we can just bring the GATE of the MOSFET HIGH (depending on the FET).
To save pins, you might want to use something like 74HC595. This can be controlled with a few as 4 pins and allows you to control 8 BUS outs. You can dovetail them to produce as many dataouts as you need (2 dozen for example). That allows us to addressable power an arbitrary number of MOSFETs with only 4 pins. Voilà! You have addressable LEDs. This will allow you to use more affordable boards that don’t have 36 GPIOs. (although they do exist).
RELAYS
Alternative you could use RELAYS.
You’d need a lot of them, and again, you may run out of pins depending on your board.
In exchange, it might be cheaper and easy.
Should my LEDs be in series or parallel?
Almost certainly series but this can depend on the specs of your power supply.
Feel free to post a photo of the power supply you have in mind
Good Luck. Pix