Yes I sort of get the idea but how does the THIRD led know that it is NO 3 in the list?
Maybe I am just over thinking this , there must be something else going on.
It's like a roll of candies going around a room. Everyone takes the at that point top candy from the roll and passes on the roll to the next.
That's why you need to initialize how many "leds" there are, so that you start with a roll of candies that has just enough for everyone.
No, you are not.
The confusion comes from the fact that they are referred to as "addressable", when they really are not. The pixels do not have addresses. Just put the term "addressable" out of your head.
Stop with "instructables", their explanations are rot, more often than not.
Maybe this will help. You have a stack of 10 envelopes. You walk down the street, putting one in each door, starting with the one on the top of the stack. Each "address" has received it's message.
Your array of 30 bytes(or 10 LEDs) is your 10 envelopes. The "addressing" is, as others said, meaningless, because who gets what is determined completely by the order of the array.
No... It's serial data. You are only feeding the 1st door with one envelope one at time and everybody will pass-on the envelope when they receive another one.
I'm not actually sure if the LEDs flash the data for a few microseconds (faster than you can see it) as it passes-through, but I think so.
There are serial addressing modes where the data can be ignored as it passes through but they usually require more than one "data" connection.
You send 10 pixels worth of data and the 1st pixel you send ends-up wherever you stop. The 2nd pixel ends-up next to the end, etc.
If you send 11 pixels, the 1st one will be lost when there is no device (LED & chip) to receive the data.
If you wire it as a new strip, or in parallel with the 1st strip, it's No. 1 because it's the 1st LED in the strip.
The library takes care of that for you. If you wrote the code yourself without using the library you would find that you do indeed need to include 3 and 4
The WS28xx is an integrated circuit. Here is a paragraph from the WS28xx datasheet...
The data transfer protocol use single NZR communication mode. After the pixel power-on reset, the DIN port receive data from controller, the first pixel collect initial 24bit data then sent to the internal data latch, the other data which reshaping by the internal signal reshaping amplification circuit sent to the next cascade pixel through the DO port. After transmission for each pixel,the signal to reduce 24bit. pixel adopt auto reshaping transmit technology, making the pixel cascade number is not limited the signal transmission, only depend on the speed of signal transmission.
Using the library, you will define and declare the type and size (number of LEDs) of the WS2812 and create an "instance" (also called an object). In your sketch, you will load the WS2812 object/instance with colors for every WS2812 LED. Then, with a Library call, you will "shift-out" all that data into the WS2812 string. The first WS2812 chip will strip the first 24 bits and pass the rest. The next WS2812 will strip the new "first 24" bits and pass the rest... and so on.
No, the data can be either more, or less than number of leds. It doesn't matter.
It doesn't. Every led in the row " thinks" that he is the first. So it get THE first data from the sequence and pass the rest to the next led.
The critical fact for understanding how the addressable leds work is that the data do not transmitted unchanged. Every led in row cut the first packet and transmit the sequency from the second packet only.