[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y ] [Home]
4chanarchives logo
Neopixel LEDs
Images are sometimes not shown due to bandwidth/network limitations. Refreshing the page usually helps.

You are currently reading a thread in /diy/ - Do It yourself

Thread replies: 4
Thread images: 1
File: 2659-03.jpg (506 KB, 970x728) Image search: [Google]
2659-03.jpg
506 KB, 970x728
can someone please explain to me how these things actually work? all the instructions i've found online so far have just left me with more questions than answers

the arduino libraries allow you to daisy-chain them together and address each one individually. how is that possible? from what i understand so far, the only control signal they accept is a 24-bit RGB value. there's no back and forth communication with the microcontroller. each one has only one input and output, so how can they be individually controlled if all they do is accept a value and then hand it to the next LED?
>>
>>939613
If you check the datasheet for the ws2811 ic that is used you see that you send three bytes and that sets the first pixel. The next three bytes the first pixel is already set so it sends them to the next in line.
A reset resets everything.

At first I thought it was just a shift register type deal but the datasheet is such shit engrish its one way or the other.

So not exactly addressable, you have to throw everything out and reprogram all of them to change one led
>>
>>939613
>address each one individually.

Simple. You send a string of 24 bit values to te first LED input. Each 24 bit 'word' is 8 bits each of RGB values. The first LED picks the first 24 bits off the string and sends the rest to the daisychained LEDs. Each one picks 24 bits off and sents the rest on.

So you can set each LED to a unique RGB value. You cannot send a single RGB value down the string addrressed to one LED in the middle. You have to pack the string with at least the RGB values for all the LEDs ahead of the one you want to change.
>>
>>939625
>>939627
thanks for the responses, it makes a lot more sense to me now.

so if i'm interpreting this correctly, each LED has a 24 bit input buffer that retains its contents temporarily so long as it's receiving a data/clock signal. once the buffer is full, the overflow gets passed to the output until the signal stops, then the buffer automatically clears after a specified period

for example if you had three leds you wanted to first make red, green, and blue, then change to cyan, yellow, and magenta, you would have your microcontroller simply tap out

FF0000 00FF00 0000FF

then wait at least 50us and tap out

00FFFF FFFF00 FF00FF

and after another 50us the LEDs remain lit, but their input buffers will be cleared and ready to be refreshed

this is actually such a simple and elegant solution. i wish i got to design things like this
Thread replies: 4
Thread images: 1

banner
banner
[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y] [Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
If a post contains personal/copyrighted/illegal content you can contact me at [email protected] with that post and thread number and it will be removed as soon as possible.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com, send takedown notices to them.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.