Go Down

Topic: [Fixed]WS2812B Data is not sending? (Read 2947 times) previous topic - next topic

Runeaged

Jul 07, 2015, 12:03 am Last Edit: Jul 07, 2015, 04:14 am by Runeaged
This has been fixed, thanks to Ray. I had the wrong resistor.
I am using Arduino Pro Mini 5v with the neopixel library to work the LEDs. I am working with a 2 meter strip. 30 leds per meter
When I plug in the ground and power for the leds it blinks red and blue then turns off. Then when I attach the data wire to the arduino nothing happens. I have uploaded the test script from the website that is supposed to do the chase animation using a couple leds. Ive been trying to figure out what is going on i have also plugged the LEDs into the wall using a 5V 2A wall plug. as well as using a portable USB charger that provides 3A  and it still doesn't work. I plugged it into the VCC pin. I tried using the RAW pin but one of the capacitors blew up when i used a 5v power supply. I don't know if thats the problem or not but i think the main problem is coming from the data pin im using which is pin 6 i have used all other digital pins as well and no result. Hopefully someone could help me out thanks :)

Code I am using:
Code: [Select]
// Simple NeoPixel test.  Lights just a few pixels at a time so a
// 1m strip can safely be powered from Arduino 5V pin.  Arduino
// may nonetheless hiccup when LEDs are first connected and not
// accept code.  So upload code first, unplug USB, connect pixels
// to GND FIRST, then +5V and digital pin 6, then re-plug USB.
// A working strip will show a few pixels moving down the line,
// cycling between red, green and blue.  If you get no response,
// might be connected to wrong end of strip (the end wires, if
// any, are no indication -- look instead for the data direction
// arrows printed on the strip).
 
#include <Adafruit_NeoPixel.h>
 
#define PIN      6
#define N_LEDS 60
 
Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800);
 
void setup() {
  strip.begin();
}
 
void loop() {
  chase(strip.Color(255, 0, 0)); // Red
  chase(strip.Color(0, 255, 0)); // Green
  chase(strip.Color(0, 0, 255)); // Blue
}
 
static void chase(uint32_t c) {
  for(uint16_t i=0; i<strip.numPixels()+4; i++) {
      strip.setPixelColor(i  , c); // Draw new pixel
      strip.setPixelColor(i-4, 0); // Erase pixel a few steps back
      strip.show();
      delay(25);
  }
}

Here is my arduino pro mini, the blown capacitor is on the right.

My power supply line I use has 16V 1000uF capacitor.

My data line which has the 300 K resistor.

Here is the wall power supply im using. I found it around the house.

Hackscribble

#1
Jul 07, 2015, 12:55 am Last Edit: Jul 07, 2015, 12:58 am by Hackscribble
Hi Runeaged

Can you post your program?  Please use code tags (the </> button on the toolbar above the reply window).

Do you have a resistor (330R - 470R) in series between the Arduino digital pin and the data input on the LEDs?  Also an electrolytic capacitor (220uF or more) across 5V and GND of the LEDs?

Check that you have connected the Din pin to the Arduino not Dout.

Quote
i have also plugged it into the wall using a 5V 2A wall plug. as well as using a portable USB charger that provides 3A  and it still doesn't work. I plugged it into the VCC pin. I tried using the RAW pin but one of the capacitors blew up when i used a 5v power supply.
What is the "it"?  The Arduino or the LED strip? The Vcc pin on the Pro Mini is an output, not an input.

Regards

Ray
Hackscribble.  Writing about making things.
arduino@hackscribble.com | www.hackscribble.com

Runeaged

Hi Runeaged

Can you post your program?  Please use code tags (the </> button on the toolbar above the reply window).

Do you have a resistor (330R - 470R) in series between the Arduino digital pin and the data input on the LEDs?  Also an electrolytic capacitor (220uF or more) across 5V and GND of the LEDs?

Check that you have connected the Din pin to the Arduino not Dout.

What is the "it"?  The Arduino or the LED strip?

Regards

Ray

Thanks for the reply Ray. I plugged the LEDs into the wall charger. I have posted the program above and i do have resisters on the data wire and I should move the capacitor onto the led strip. I have posted some pictures above as well.

Hackscribble

#3
Jul 07, 2015, 01:15 am Last Edit: Jul 07, 2015, 01:17 am by Hackscribble
To correct something I got wrong in my previous post, Vcc is the input for a regulated 5V supply.  RAW is the input for an unregulated supply up to 12V.  To blow up a capacitor, either the supply is putting out a higher voltage or maybe was connected the wrong way round.

It might be good to test the Arduino without the neopixels.  Load the Blink sketch and modify it to use pin 6. Attach an ordinary LED with series resistor and check that you can load and run the sketch.

When you tried with the neopixels, did you have Arduino GND connected to LED GND?

If you do get the neopixels working, be careful not to run a program that turns them all on at the same time.  Full brightness white draws about 60mA per neopixel, and you have 60 of them.
Hackscribble.  Writing about making things.
arduino@hackscribble.com | www.hackscribble.com

Runeaged

To correct something I got wrong in my previous post, Vcc is the input for a regulated 5V supply.  RAW is the input for an unregulated supply up to 12V.  To blow up a capacitor, either the supply is putting out a higher voltage or maybe was connected the wrong way round.

It might be good to test the Arduino without the neopixels.  Load the Blink sketch and modify it to use pin 6. Attach an ordinary LED with series resistor and check that you can load and run the sketch.

When you tried with the neopixels, did you have Arduino GND connected to LED GND?

If you do get the neopixels working, be careful not to run a program that turns them all on at the same time.  Full brightness white draws about 60mA per neopixel, and you have 60 of them.

I must of switched the polarities when I plugged the power supply into the raw. There is 2 vcc pins on the arduino mini so I use one for input and one for output. I tested the blink command on pin 6 and it worked flawlessly on the led
Code i used:
Code: [Select]
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at http://arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(6, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(6, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(6, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

Ive connected arduino gnd to led gnd and just that flash of all leds. And the code i was using to attempt to light the leds was just a simple chase that does not light all leds.

Heres a picture of the blink led i used a 100k resister for the digital pin:

Hackscribble

Blink works so Arduino is OK.

Looks like you are powering it from the USB-serial converter. Keep it like that when you try with the neopixels again. Use your other power supply just for the neopixels - but join GND to Arduino GND.

Your earlier post said you had a 300K resistor between pin 6 and neopixel Din. Did you mean 300K or 300 ohm?

Can you post a picture of your connections to the neopixel strip?



Hackscribble.  Writing about making things.
arduino@hackscribble.com | www.hackscribble.com

Runeaged

Blink works so Arduino is OK.

Looks like you are powering it from the USB-serial converter. Keep it like that when you try with the neopixels again. Use your other power supply just for the neopixels - but join GND to Arduino GND.

Your earlier post said you had a 300K resistor between pin 6 and neopixel Din. Did you mean 300K or 300 ohm?

Can you post a picture of your connections to the neopixel strip?




Here is my connection the way you told me to do it, no results. and the package for the resistor says 300k ohm on it.


I also have a video for the leds flashing when i plug it into the power. It just does that and when i plug the data in, nothing.
Video

Hackscribble

It should be 300 ohm not 300 kilohm.

There only need to be 2 wires from neopixels to Arduino: GND and data.
Hackscribble.  Writing about making things.
arduino@hackscribble.com | www.hackscribble.com

Runeaged

It should be 300 ohm not 300 kilohm.

There only need to be 2 wires from neopixels to Arduino: GND and data.
Oh is that probably the reason why? and I plugged in the GND and data only, the red wire was not plugged in.

Runeaged

It should be 300 ohm not 300 kilohm.

There only need to be 2 wires from neopixels to Arduino: GND and data.
Thank you very much, I got it to work, it was the resistor. Appreciate all the help Ray!

denmark219

Would a 1k ohm resistor work in this situation? I don't have a 300ohm sitting around.

Go Up