1
\$\begingroup\$

I have an Arduino Uno connected to two IR transmitters and respective receivers. Basically, when one of the receivers detects a beam break, I have a strand of LEDs display a pattern. This all works in principle, but the problem is that when the IR transmitters and receivers are connected to the Arduino, the LEDs flicker with random colors.

The specific parts I'm using:

Here's a video of exactly what's happening. At first, the IR transmitters and receivers are disconnected and everything is fine, then I connect the IR receivers and the flickering begins at around 8 seconds. http://www.youtube.com/watch?v=REAp5rODYUs. The flickering will continue even when I disconnect the IR receiver, albeit at a reduced rate.

Here's my wiring diagram:

Wiring Diagram

In the above diagram, the Arduino is powered via USB (I tried with a 12V power supply too), and the LED strand is powered from an external 12V power supply (I couldn't find a diagram for an LED strand).

If it matters, I should mention that I'm using the IRremote library to control the IR transmitters (http://www.righto.com/2010/03/detecting-ir-beam-break-with-arduino-ir.html) and the strandtest example from the Adafruit WS2801 LED library (https://github.com/adafruit/Adafruit-WS2801-Library) to test everything right now.

The strange thing is that I also have another strand of similar LEDs (http://www.adafruit.com/products/322) and they do not experience the flickering regardless of if the IR transmitters and receivers are connected or not. So the only thing I can think of is to use an external power supply for the IR so as it avoid connecting them to the Arduino. Is that a valid solution? If so, how do I got about determining what power supply I would need (in terms of voltage and amperage output)?

Finally, I'm more of a software engineer (ie, spend most of my time on StackOverflow) so laymen's terms are better if it all possible. Thank you!

\$\endgroup\$
  • 1
    \$\begingroup\$ Since it works some of the time, the hardware is apparently wired correctly, although it's impossible to tell what exactly your circuit is without a schematic. It looks like you have a firmware bug. Beyond that, there isn't much to say. \$\endgroup\$ – Olin Lathrop Apr 3 '13 at 18:20
  • 1
    \$\begingroup\$ I think it might be useful to have the arduino code here. But even before that, here's a quick suggestion: what if put your LED-enabling and IR-detetion enabling code in setup() only, leaving loop() to do nothing. If flickering persists we know it is a hardware issue, if not it is a software issue. \$\endgroup\$ – angelatlarge Apr 3 '13 at 18:26
  • \$\begingroup\$ I'm not so sure it's wired correctly because when the IR transmitters and receivers are disconnected, the LEDs work perfectly. It's when they are connected that the LEDs flicker. This suggests a wiring problem, yes? I just don't know enough about circuits to be able to say yes or no. And since I'm able to swap out the LEDs with another very similar strand (basically just less bright), and everything still works right even with the IR transmitters and receivers connected says to me that the software is fine. Is that a bad assumption? \$\endgroup\$ – shanet Apr 3 '13 at 18:32
  • 1
    \$\begingroup\$ @shanet: If your code responds to IR receiver data, then could be software (and possibly + hardware issue). If other types of LEDs work fine, this biases things in favor of the hardware issue, possibly insufficient power? \$\endgroup\$ – angelatlarge Apr 3 '13 at 18:37
  • 2
    \$\begingroup\$ Measure the power supply while the flickering is going on. Do you have steady power of the correct voltage or not? \$\endgroup\$ – Olin Lathrop Apr 3 '13 at 18:54

protected by W5VO Apr 4 '13 at 1:55

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Browse other questions tagged or ask your own question.