I've got a few questions about these LEDs (WS2812C). According to what I understand in the data sheet, they are adressable RGB LEDs with 4 pins: VCC, GND, DIN,DOUT. I'm working on a project that is an LED cube, and these LEDs are a very good candidate for my project, but I'm trying to figure out how I'm supposed to wire them (like how the circuit diagram should be).
So I have three questions:
-
is 1111 the maximum number of LEDs I can have in series? because the datasheet says that the maximum transfer rate is 800Kbps, and if I have to refresh the LEDs at a rate of 30 fps, and if my math is correct, 800Kbps/30fps/24bits = 1111 pixels. So please let me know if my math is correct on that, because that would imply that I would need two rows of LEDs if I were to make a 20x10x10 LED cube.
-
In the cicuit diagram of the datasheet there was only a capacitor and no resistor. According to what I know, you should always have a resistor in series with your LED, so that you don't blow it out. It is still the case with these?
-
Can I have one big capacitor instead of many small ones in parallel? I'd think that it would be equivalent but I'm not an expert so I don't know.
If any of you can help me figure out the answer to these questions I would highly appreciate it. Thanks.
The [u]Adafruit guide[/u] recommends one "big" capacitor and one resistor in the data line. You don't need a current-limiting resistor for each LED. The current control is part of the built-in chip.
I don't completely understand the timing so I can't help with that. From what I understand, there are some limitations to the number of Neopixels that you can address, related to available memory, at least when using the library. The library may require all of the data for all of the LEDs to be stored in RAM, but I'm not sure about that.
Why would you imagine a need to refresh a LED cube at 30 times per second? Do you plan to show movies on it?
You only need to refresh it when you need to change the pattern.
Wire data as an S pattern that snakes through the whole cube.
Wire power in parallel so you don't have power snaking through a lot of LEDs. Bring power to one side (bottom?) of the cube and distribute across all the strips from there.
Yes each individual LED should have its own 0.1uF ceramic capacitor on it as well as the large capacitor overall. When you get these in strips the capacitors are soldered alongside the chip.
Having said that the other day I got a strip that only had this capacitor on one in every 15 chips and that seemed to work OK.
You only need a resistor on the connector from the Arduino to the first LED in the string.
When you get these chips individually mounted on a PCB there is a resistor but it is only 10 ohms a bit useless in my opinion.
Grumpy_Mike:
When you get these chips individually mounted on a PCB there is a resistor but it is only 10 ohms a bit useless in my opinion.
On the data line?
I thought it might be in series with the Vcc before the capacitor.
Yes on the data line, it surprised be too. Just found it last week. Read the value and couldn’t believe it so I measured it.
I guess some one recons it is enough if it is the first resistor and not too much between LEDs.
Each WS218 refreshes the data signal. If you have a really long run to the first LED and it is picking up interference, put one LED in the middle of that wire to boost the signal.