Hello
My project worked fine before I accidentally connected the power supply of the ws1812 LED strip to 12v instead of 5v.
+12v power to +5v ws1812, 0v power to 0v ws1812 and arduino, the data wire was only directly connected to the arduino.
The ws1812 strip is 5 m, 60 leds per meter, and the program only used the first 90 leds.
The ws1812 LED strip no longer works much.
Before cutting the leds one by one and doing a test on the following ones (it's long and tedious), can you help me find out how many LEDs have become unusable?
All the 5 meter strip?
Only the first 90?
More or less than 90?
Thank you.
Welcome to the forum
You applied 12V to the whole strip so I would expect that all of them are damaged
The most efficient way to test whether any are still working would be to cut the strip successively in half and to test each half (a binary search) . If one half works then good. If not then cut the non working strip in half again and test the parts again. Keep doing this until you have small, possibly single LED strips that work or do not work, but I am not hopeful
Is your uC working?
If so;
- do not cut the LED strip
- make a minimal sketch
#include <FastLED.h>
#define DATA_PIN 2
#define NUM_LEDS 1
CRGB led[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(led, NUM_LEDS);
FastLED.clear();
FastLED.setBrightness(255);
FastLED.show();
}
void loop() { // three primary colors in case one color is bad
led[0] = CRGB(255,0,0); FastLED.show(); delay(250);
led[0] = CRGB(0,255,0); FastLED.show(); delay(250);
led[0] = CRGB(0,0,255); FastLED.show(); delay(250);
}
- solder Vcc and GND to the LED strip (GND must be shared by uC, power supply and WS2812)
- make a short probe for the data pin.
- probe the DIN pad of every WS2812
- if that fails to find any good WS2812, follow @UKHeliBob
Sorry for my poor english !
Thank you UkHeliBob for your answer.
But Cut half of half of half ... is too hard !
Thank you xfpd, your answer is in my mind's way.
My uC is working, and I have an other.
I think add a variable i and increment it :
led[i] = CRGB(255,0,0); FastLED.show(); delay(250);
led[i] = CRGB(0,255,0); FastLED.show(); delay(250);
led[i] = CRGB(0,0,255); FastLED.show(); delay(250);
I will try this sunday ...
Have twice a good we.
What's hard about it ?
If you start with strip of say 64 LEDs and they don't work then you cut it in half and test the two 32 LEDs strips. If they don't work then you cut them in half and test the four 16 LED strips and so on
I think this method will not bring anything, because all the diodes in the strip are connected in series. If the first one burns out, none of the next ones will work, even if they are all not damaged.. In this case, the only method is to physically cut off the first diode and connect to the second.
Even if this is difficult, then the easiest thing would be not to bother with checking the old strip, but simply buy a new one
5 x 60 = 300 leds
leds are serial only for data, not for power.
If I plug ws2812 only to power (nothing on data wire), Some leds don't glow, others a little, some a lot. A little green, purple, cyan.
The last lighting led is 45th.
I do nor remember if I put 12v on data wire or 5v power wire of ws2812.
It doesn't change much. If the led is damaged, it prevent you to test any leds after damaged in sequence.
What prevent you from testing the strip in parts?
It seems to me that the most productive idea is to connect to the strip after the 45th diode and check whether subsequent pixels work.
You don’t have to cut the strip into pieces to do this - there are pads between the diodes where you can easily solder wires or even attach probes.
I am thinking of testing the strip from the top to the good place at each data pad with a needle to pierce the waterproof protection, and after I will cut the strip.
If you leave "[i]" as zero, you only test one LED. That is the purpose. To find the first good LED. After finding that first good LED, use the array "[i]" to test the rest.
That would be a fun WS2812 Probe project to make.
Thank you all for your comments and suggestions.
I tested the sketch, for num_leds = 10
With a needle I pierced the insulation to make contact with the data pad.
I started on the first LED on the strip, no change.
Then on the 44th, 45th 46th, no change.
I continued from the end, on the 300th led, the 299th, 290th, 289th, no change. Except that led n-1 had a very faint blue glow, which was not there with the first 46 leds.
With my principle of using a needle to inject the data into the middle of the ribbon, I wonder if the first LED used must also be the first LED on the ribbon?
I ordered a new identical ribbon, I will test it in a few weeks...
Do all ws2812b have the same structure and the same parameter
CRGB led[NUM_LEDS];
?
Have a good day
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.