One RGB LED to rule them all?

My project seems simple enough:

A single RGB LED is the master to multiple slave RGB LEDs.

However not knowing where to begin a friend suggested that an Arduino might be the answer.

So where I am looking for guidance at this time is how to best wire and read the values of the master RGB LED with an Arduino.

I have already successfully attached wires to the master RGB LED in question and can successfully read the voltages across the red, green, and blue LEDs with my multimeter.

So is it possible to successfully read the values of the independently powered RGB LED with an Arduino?
If so would one try reading the RGB LED values as a PWM or analog signal?
If there is a choice which would be best for lowest latency?
How would one go about connecting the Arduino to the RGB LED?

Thank you so much for your time and helping this newbie out.
Cheers, Steven

Spies:
My project seems simple enough:

A single RGB LED is the master to multiple slave RGB LEDs.
.....
read the values of the master RGB LED with an Arduino.
....

What are you trying to do ? Please describe the real life situation and your goal.

The magic word is PWM, Pulse Width Modulation. Intesity (PWM value) of the three colors, Red, Green and Blue result in a color.

Reading a PWM value from a master LED.... hmm, that sounds like putting sensors on the hood of a car to try and find out how the motor works :slight_smile:

What is this mysterious "Master LED" ?

So would a RGB strip repeater do what you want to do as in a item like this.

Yeah... You probably don't need an Arduino... Just something to boost/repeat the 3 PWM values. That's assuming there is some dimming. If the 3 colors are only turned on/off there's no PWM, but the circuit would work the same.

I have already successfully attached wires to the master RGB LED in question and can successfully read the voltages across the red, green, and blue LEDs with my multimeter.

Is that an analog meter? An analog meter will usually average the PWM (because of the mechanical inertia of the movement) but digital meters usually are not reliable with PWM or any kind of pulse.

If you are measuring voltage directly across the LED it will be less than 5V. More than 5V can damage the Arduino, so let us know if you're getting more than 5V.

See the [u]Analog Read Serial Example[/u]. With the Arduino, you'd need a [u]low-pass RC filter[/u] for each color to measure PWM. (A ~10Hz filter should be fast-enough to respond to color changes but slow-enough to filter the PWM.) Note that the Arduino reads voltage relative to it's ground.

So is it possible to successfully read the values of the independently powered RGB LED with an Arduino?

Yes. There are multiple analog inputs.* The Uno has 6 analog inputs.

If so would one try reading the RGB LED values as a PWM or analog signal?

With a filter you can read the analog PWM average. That's a lot easier than "decoding" the PWM.

If there is a choice which would be best for lowest latency?

If you don't have any delays in your code it will respond in microseconds. (The filter will add some delay.)

How would one go about connecting the Arduino to the RGB LED?

A "regular little" RGB LED is connected just like 3 regular LEDs with 3 current-limiting resistors, Except, you do have to connect it correctly depending on if it's common-anode or common-cathode. (It's 3 LEDs with 4 wires coming out.)

High-power LEDs need a driver circuit. For an RGB, that's 3 constant-current** drivers.

An LED strip needs 3 MOSFET (or transistor) drivers (and usually a 12V power supply).

  • There is one multiplexed (shared) analog-to-digital converter and there is some "settling time". When you change inputs, it's common to take an extra reading and throw-it away. The 2nd reading is more accurate. (This only takes microseconds.)

** Technically, controlled current if there is PWM dimming.

mrExplore:
What is this mysterious "Master LED" ?

The RGB LED in a Sony PlayStation DualShock 4 controller.

The video game Rock Band 4 utilizes the RGB LED in the DualShock 4 as a light show that is in sync with the music that is being played in game.
The use case is that I would like to expand the light show to additional lights.
I thought the most expedient way to do this was to tap into the RGB LED directly and use it as a source to drive other LEDs with the Arduino or perhaps another device as the go between.
Example of the effect DualShock 4 Light Show - Rock Band 4
Thank you for asking!

Slumpert:
So would a RGB strip repeater do what you want to do as in a item like this.

Maybe? Had not considered those. If it did work it would make this project quite simple. I would still need to figure out how to hook it up and if it could be driven by the RGB LED in the controller. I would not really have any control of the output LEDs but that might be worth giving up if it works and was that simple.
Thank you for sharing!

Thank you very much DVDdoug! Let me see if I can process all of this.

DVDdoug:
Yeah... You probably don't need an Arduino... Just something to boost/repeat the 3 PWM values. That's assuming there is some dimming. If the 3 colors are only turned on/off there's no PWM, but the circuit would work the same.

The source RGB LED is being used as a light show programmed in time with the music in the video game Rock Band 4 so there is certainly a lot of PWM values going on. I posted a link to a YouTube video showing the effect in my previous post if you are curious what it looks like.

DVDdoug:
Is that an analog meter? An analog meter will usually average the PWM (because of the mechanical inertia of the movement) but digital meters usually are not reliable with PWM or any kind of pulse.

If you are measuring voltage directly across the LED it will be less than 5V. More than 5V can damage the Arduino, so let us know if you're getting more than 5V.

I am currently using an old Micronta Digital Multimeter as it is the only thing I have on hand at the moment and yes I am measuring voltage directly across the LED. I am getting readings of about 3.11 volts max across each element when they appear to be full bright and as low as 1 volt or so when dim.

DVDdoug:
See the [u]Analog Read Serial Example[/u]. With the Arduino, you'd need a [u]low-pass RC filter[/u] for each color to measure PWM. (A ~10Hz filter should be fast-enough to respond to color changes but slow-enough to filter the PWM.) Note that the Arduino reads voltage relative to it's ground.

Yes. There are multiple analog inputs.* The Uno has 6 analog inputs.
With a filter you can read the analog PWM average. That's a lot easier than "decoding" the PWM.
If you don't have any delays in your code it will respond in microseconds. (The filter will add some delay.)

Sounds like going the analog in route will be the way to go if I move forward with the Arduino for this project.

DVDdoug:
A "regular little" RGB LED is connected just like 3 regular LEDs with 3 current-limiting resistors, Except, you do have to connect it correctly depending on if it's common-anode or common-cathode. (It's 3 LEDs with 4 wires coming out.)

High-power LEDs need a driver circuit. For an RGB, that's 3 constant-current** drivers.

An LED strip needs 3 MOSFET (or transistor) drivers (and usually a 12V power supply).

Sorry I was not clear in my question here. I was wondering how to hook up the input RGB LED safely to the Arduino inputs. For example could I physically hook up the Arduino analog inputs across the LEDs along with the low pass RC filter circuit just like I have with the multimeter as long as the polarity is correct? I suspect it is not that easy.

Thanks again,
Steven