1

Here's the scenario: We have 1 arduino uno accepting DMX and converting that to a signal that is being sent out digitally (PIN 3). The digital signal then goes to several IR LED senders that control 3,200 IR, color-changing candles. I've recently added some more senders, and now some of the senders are not working (even some that were working before). I assume this is because the digital signal has been weakened due to me splitting it so many times.

I'd like to add another arduino to control half of the IR senders. I obviously already have a cable running to every device, but I know of a perfect place to "interject" the new arduino. Is this possible? Can the second arduino essentially "repeat" or decode and re-encode the digital signal? If so, what pins am I looking at and will I need any special code?

Thanks for the help!

  • Or - can I use a different PIN on the current Arduino to power the other half of the senders? It needs to be PWM capable. – Ed Olivett Dec 12 '17 at 17:44
  • @AltAir - We use a custom built IR sender using LED Bucks from Sparkfun. We used these last year without a problem. The problem is now happening after adding 6 additional bucks this year. – Ed Olivett Dec 12 '17 at 18:09
  • Can you provide a link to the devices you use in your senders? – Majenko Dec 12 '17 at 18:36
  • @Majenko - sparkfun.com/products/13716 – Ed Olivett Dec 12 '17 at 21:55
1

The scenario you are referring to - connecting one output to many devices - is called the fan-out. Yes, a GPIO pin has a limited amount of drive which limits the number of devices in the fan-out.

There are two problems that are caused by excess fan-out:

  1. Excess current draw from resistive loads
  2. Excess capacitance from logic loads

The former is evident when you have too many LEDs connected directly to an output (with resistors, of course). The combined current draw of the LEDs exceeds the current the IO pin can provide and either damage the pin or the LEDs go dimmer than would be desired.

The latter is more evident when working with communication signals. The excess capacitance imposed by each gate attached to the output causes a low-pass filter effect which can filter out high-frequency signals or corrupt the waveforms by removing higher frequency components and "curving off" the nice clean square waves.

In normal logic systems it's common to use line drivers or buffers to allow the connection of more devices to a single signal. Devices such as the 74HC244, which is 8 buffers in one chip, are commonly employed. You can connect the inputs of all 8 buffers to one Arduino output, and each output from the buffer mirrors the input exactly and can connect to more devices than an Arduino can (each output has an extra 10mA steady-state drive capacity than the Arduino).

And yes, you can even connect the output of one buffer to the inputs of other buffers to give even more capacity.

schematic

simulate this circuit – Schematic created using CircuitLab

  • So it sounds like I could use some of these buffers. Is this something I buy or build? – Ed Olivett Dec 12 '17 at 21:59
  • It's a chip you buy and build into your design. – Majenko Dec 12 '17 at 22:00
  • ok. So basically I would buy one of those devices and then put that between the Arduino and the led bucks? – Ed Olivett Dec 12 '17 at 22:11
  • Yep. That's right. – Majenko Dec 12 '17 at 22:12
  • I have 28 bucks powering 4 IR LEDs each. – Ed Olivett Dec 12 '17 at 22:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.