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:
- Adafruit 36mm 12V LEDs (http://www.adafruit.com/products/683)
- 12V 5A power supply for the LEDs (https://www.adafruit.com/products/352)
- Two IR transmitters (https://www.sparkfun.com/products/10732)
- Two IR receivers (https://www.sparkfun.com/products/10266)
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:
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!