Wiring Light Strip w/ Arduino

Hello,

My team is trying to power a light strip with an arduino.
This light strip
With This voltage regulator

How the system is wired:
The voltage regulator is plugged into the PDP with a 20 amp breaker. The output of the voltage regulator plugs into the power-injection wires on the light strip. This voltage regulator has been tuned to output 5v.
The arduino gets its power from a barrel plug connected to an FRC-standard VRM, running at 5v 0.5 amps.
A single data wire runs from pin 4 on the arduino to the data pin on the light strip. The code is not the problem.

When we first plugged this all together, it worked the first time. The light strip did exactly what we though it would. However, after changing one line of code, the light strip has not worked since. (Of course we changed this line of code back to the original.) We believe that something may have happened during the time that we redeployed code to the arduino.

A hypothesis that we have is that the 2 power wires which extend from the rear of the light strip may have contacted each other, causing a short (the other side of the light strip, which acts as a power-passthrough. Not the end where the power is given to the light strip). It is therefore possible that the light strip is electrically damaged.

  • Input power to the VRM has been confirmed at 12 volts
  • Output power from the voltage regulator linked above has been confirmed at 5 volts
  • Output power from the FRC-standard VRM which powers the arduino has been confirmed at 5 volts.
  • Voltage all the way at the end of the lightstrip, from the power-passthrough wires, has been confirmed at 5 volts.
  • We have also tried powering the arduino via a USB cable plugged into the roboRIO. Same results.

Does anybody have a suggestion?
Thank you!

These strips are very finicky and prone to dying due to overvoltage. One thing you might try, connect the grounds of the 5v regulator and the arduino together. Use a ~20ohm resistor to connect the arduino data pin to the strip’s data pin. Put a filter cap (I like 4700uF 10V, but anything rated for 10V plus should work fine) across the power lines. This is crucial to strip survival, as it prevents damaging surges due to how quickly the power consumption of the strips can change. What voltage are the arduino’s outputs rated for?

Some strips are very picky about their Vdd and Vcc being very close to each other. I like the Teensy LC for driving LED strips since it has 1 pin with a Vcc buffer.

It’s also worth having a short strip pre-wired for testing

If you are using WS2812’s, you can follow the Adafruit guide on wiring them. You can also follow these posts for wiring and troubleshooting.

Is the Arduino an Uno? It and some other Arduinos want 7 <= Vin <= 12 volts DC at the barrel plug input: https://store.arduino.cc/usa/arduino-uno-rev3 => Tech Specs. That doc says that the input voltage max range is 6 <= Vin <= 20 VDC.

The following assumes a 5V Arduino - its internal regulator is going to consume some voltage, the minimum voltage the regulator needs (this is the voltage across the regulator itself) is its “Dropout Voltage”, and 5V into its barrel plug, minus that Dropout Voltage will deliver <5V to the Arduino’s circuits.

The output voltage from the Arduino’s regulator can be measured at the Arduino’s “5V” pin, and some people power their Arduino by supplying 5VDC into that pin. This then bypasses that internal regulator and too high a voltage >5 will fry the Arduino. You can look at the specs for the VRM and decide. Or you could connect the barrel plug, given its 6-20V max range, to the bot’s PDP. Look at the rules for specifics. The minimum PDP fuse size is 20A, there’s an old electrical joke that circuits will burn out in order to protect their fuse; a shorted Arduino will go up in smoke long before a 20A fuse might blow. The rules allow a smaller fuse between the PDC and your Arduino, see R58’s box, but I’ve never seen anyone doing it.

Given all this, your Arduino may well work connected as you describe, circuits often do. But you can’t count on all Arduinos to work at all temperatures and for a long time if you run them out of spec. Your LEDs aren’t critical to the ‘bot, so you can take more risks, and cheap Internet crap may well do so, that’s a way to make it cheap. But good commercial products will never run components out of spec, and more often than not stay well within spec.

It is an uno. We were supplying 5v over the barrel plug, which could be a problem. However, we also ran the arduino being powered from a USB cable on our laptop, and it still did not work.

We’ll try it with 12v and see if there is any difference.

Thanks!

You could change the Arduino output pin from 4 to 13, that will do what you want and also drive the Uno’s internal LED. That’s what 13 is for.

Just to verify that we are outputting data to the pin? I’ll definitely try that too. I’ll get back to you tomorrow with results.

You should use a second wire from the Arduino ground to the same ground as the LED strip to make sure you have the same reference.

I.E. make sure you don’t have a floating ground between the controller and the led strip.

Sorry, i might have forgotten to mention that. We made a custom wire which splits from the lightstrip ground into the vrm ground and arduino ground. We also voltage tested this wire, and tried it with the arduino ground plugged straight into the lightstrip.

Wouldn’t the arduino already be on the ground? We were powering it from a vrm, from the pdp, and the lightstrip was being powered by another vrm, also from the PDP.

I would be running the Arduino and the light strip from the same +5V supply. Our 3A supply runs an Arduino and 340 WS2812B LEDs without issue.

Just don’t set them all to full-brightness white and leave them on forever.

I don’t think the VRM provides isolated ground but I’m not sure about the other voltage regualtor. I doubt it but its a good thing to check

We have a 5A voltage regulator - if we power the arduino & light strip from the same vrm, will we give too high of an amperage to the arduino?

Also, doesn’t the barrel pin on the arduino want more than 5v? Should I power the arduino directly to the 5v pin?

The current draw on the arduino is miniscule compared to the power consumed by the LED strip. I don’t know the barrel input but there is definitely a 5V input (USB) on the arduino.

The Arduino will take the current it needs and no more, and it’s a very small current relative to the LEDs. As far as I know, all Arduinos can be powered by regulated 5V through at least one of the I/O pins. You wouldn’t be using the barrel connector at all.

A benefit of using a single power supply is you won’t have any of the power-up sequence timing issues that tend to blow up Neopixels and their cousins.

Good point,

I’ll try that out today and get back to you.

Yes. There’s an example program in the Arduino dev. environment called Blink that blinks the built in LED that all Arduinos have. I think you could use Blink to test the LED strip too, but I haven’t used them so I’ll defer to others here.

And absolutely yes, the Arduino and LED thing must have a common ground. The referenced Adafruit instructions say this.

It may be better to find a 5VDC power supply (like a wall wart) and remove all the FRC stuff altogether. Use a multimeter to test the output of the power supply first, many are poorly regulated. Does your school’s physics class have good, regulated power supplies? Ours does.